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/12/18 14:56:48 UTC

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

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site d0f540a20 -> 4f8b84247


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
index f1c0bc3..88147e4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
@@ -610,585 +610,588 @@
 <span class="sourceLineNo">602</span>      return false;<a name="line.602"></a>
 <span class="sourceLineNo">603</span>    }<a name="line.603"></a>
 <span class="sourceLineNo">604</span>    LOG.info("Processing expiration of " + serverName + " on " + this.master.getServerName());<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    master.getAssignmentManager().submitServerCrash(serverName, true);<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>    // Tell our listeners that a server was removed<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    if (!this.listeners.isEmpty()) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      for (ServerListener listener : this.listeners) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        listener.serverRemoved(serverName);<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>    // trigger a persist of flushedSeqId<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (flushedSeqIdFlusher != null) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      flushedSeqIdFlusher.triggerNow();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    return true;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
-<span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>  @VisibleForTesting<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  public void moveFromOnlineToDeadServers(final ServerName sn) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    synchronized (onlineServers) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      if (!this.onlineServers.containsKey(sn)) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span>        LOG.trace("Expiration of {} but server not online", sn);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      // Remove the server from the known servers lists and update load info BUT<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      // add to deadservers first; do this so it'll show in dead servers list if<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // not in online servers list.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      this.deadservers.add(sn);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      this.onlineServers.remove(sn);<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      onlineServers.notifyAll();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    this.rsAdmins.remove(sn);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>  }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>  /*<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * Remove the server from the drain list.<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   */<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  public synchronized boolean removeServerFromDrainList(final ServerName sn) {<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.641"></a>
-<span class="sourceLineNo">642</span><a name="line.642"></a>
-<span class="sourceLineNo">643</span>    if (!this.isServerOnline(sn)) {<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.644"></a>
-<span class="sourceLineNo">645</span>               "Removing from draining list anyway, as requested.");<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // Remove the server from the draining servers lists.<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    return this.drainingServers.remove(sn);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>  /**<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * Add the server to the drain list.<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   * @param sn<a name="line.653"></a>
-<span class="sourceLineNo">654</span>   * @return True if the server is added or the server is already on the drain list.<a name="line.654"></a>
-<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  public synchronized boolean addServerToDrainList(final ServerName sn) {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>    if (!this.isServerOnline(sn)) {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.661"></a>
-<span class="sourceLineNo">662</span>               "Ignoring request to add it to draining list.");<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      return false;<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    // Add the server to the draining servers lists, if it's not already in<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // it.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    if (this.drainingServers.contains(sn)) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      LOG.warn("Server " + sn + " is already in the draining server list." +<a name="line.668"></a>
-<span class="sourceLineNo">669</span>               "Ignoring request to add it again.");<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      return true;<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    LOG.info("Server " + sn + " added to draining server list.");<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    return this.drainingServers.add(sn);<a name="line.673"></a>
-<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
-<span class="sourceLineNo">675</span><a name="line.675"></a>
-<span class="sourceLineNo">676</span>  // RPC methods to region servers<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>  private HBaseRpcController newRpcController() {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>    return rpcControllerFactory == null ? null : rpcControllerFactory.newController();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  }<a name="line.680"></a>
-<span class="sourceLineNo">681</span><a name="line.681"></a>
-<span class="sourceLineNo">682</span>  /**<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   * Sends a WARMUP RPC to the specified server to warmup the specified region.<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * &lt;p&gt;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * A region server could reject the close request because it either does not<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * have the specified region or the region is being split.<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * @param server server to warmup a region<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   * @param region region to  warmup<a name="line.688"></a>
-<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  public void sendRegionWarmup(ServerName server,<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      RegionInfo region) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (server == null) return;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    try {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      AdminService.BlockingInterface admin = getRsAdmin(server);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      HBaseRpcController controller = newRpcController();<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      ProtobufUtil.warmupRegion(controller, admin, region);<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    } catch (IOException e) {<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      LOG.error("Received exception in RPC for warmup server:" +<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        server + "region: " + region +<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        "exception: " + e);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>  }<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span>  /**<a name="line.704"></a>
-<span class="sourceLineNo">705</span>   * Contacts a region server and waits up to timeout ms<a name="line.705"></a>
-<span class="sourceLineNo">706</span>   * to close the region.  This bypasses the active hmaster.<a name="line.706"></a>
-<span class="sourceLineNo">707</span>   */<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  public static void closeRegionSilentlyAndWait(ClusterConnection connection,<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    ServerName server, RegionInfo region, long timeout) throws IOException, InterruptedException {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    AdminService.BlockingInterface rs = connection.getAdmin(server);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    HBaseRpcController controller = connection.getRpcControllerFactory().newController();<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    try {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      ProtobufUtil.closeRegion(controller, rs, server, region.getRegionName());<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    } catch (IOException e) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      LOG.warn("Exception when closing region: " + region.getRegionNameAsString(), e);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    }<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    long expiration = timeout + System.currentTimeMillis();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    while (System.currentTimeMillis() &lt; expiration) {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      controller.reset();<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      try {<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        RegionInfo rsRegion =<a name="line.721"></a>
-<span class="sourceLineNo">722</span>          ProtobufUtil.getRegionInfo(controller, rs, region.getRegionName());<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        if (rsRegion == null) return;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      } catch (IOException ioe) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>        if (ioe instanceof NotServingRegionException) // no need to retry again<a name="line.725"></a>
-<span class="sourceLineNo">726</span>          return;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        LOG.warn("Exception when retrieving regioninfo from: "<a name="line.727"></a>
-<span class="sourceLineNo">728</span>          + region.getRegionNameAsString(), ioe);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      }<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      Thread.sleep(1000);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    }<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    throw new IOException("Region " + region + " failed to close within"<a name="line.732"></a>
-<span class="sourceLineNo">733</span>        + " timeout " + timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>  }<a name="line.734"></a>
-<span class="sourceLineNo">735</span><a name="line.735"></a>
-<span class="sourceLineNo">736</span>  /**<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * @param sn<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * @return Admin interface for the remote regionserver named &lt;code&gt;sn&lt;/code&gt;<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   * @throws IOException<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   * @throws RetriesExhaustedException wrapping a ConnectException if failed<a name="line.740"></a>
-<span class="sourceLineNo">741</span>   */<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  public AdminService.BlockingInterface getRsAdmin(final ServerName sn)<a name="line.742"></a>
-<span class="sourceLineNo">743</span>  throws IOException {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    AdminService.BlockingInterface admin = this.rsAdmins.get(sn);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    if (admin == null) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      LOG.debug("New admin connection to " + sn.toString());<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      if (sn.equals(master.getServerName()) &amp;&amp; master instanceof HRegionServer) {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        // A master is also a region server now, see HBASE-10569 for details<a name="line.748"></a>
-<span class="sourceLineNo">749</span>        admin = ((HRegionServer)master).getRSRpcServices();<a name="line.749"></a>
-<span class="sourceLineNo">750</span>      } else {<a name="line.750"></a>
-<span class="sourceLineNo">751</span>        admin = this.connection.getAdmin(sn);<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      }<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      this.rsAdmins.put(sn, admin);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    return admin;<a name="line.755"></a>
-<span class="sourceLineNo">756</span>  }<a name="line.756"></a>
-<span class="sourceLineNo">757</span><a name="line.757"></a>
-<span class="sourceLineNo">758</span>  /**<a name="line.758"></a>
-<span class="sourceLineNo">759</span>   * Calculate min necessary to start. This is not an absolute. It is just<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * a friction that will cause us hang around a bit longer waiting on<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * RegionServers to check-in.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   */<a name="line.762"></a>
-<span class="sourceLineNo">763</span>  private int getMinToStart() {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>    if (master.isInMaintenanceMode()) {<a name="line.764"></a>
-<span class="sourceLineNo">765</span>      // If in maintenance mode, then master hosting meta will be the only server available<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      return 1;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    int minimumRequired = 1;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    if (LoadBalancer.isTablesOnMaster(master.getConfiguration()) &amp;&amp;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>        LoadBalancer.isSystemTablesOnlyOnMaster(master.getConfiguration())) {<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      // If Master is carrying regions it will show up as a 'server', but is not handling user-<a name="line.772"></a>
-<span class="sourceLineNo">773</span>      // space regions, so we need a second server.<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      minimumRequired = 2;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>    int minToStart = this.master.getConfiguration().getInt(WAIT_ON_REGIONSERVERS_MINTOSTART, -1);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    // Ensure we are never less than minimumRequired else stuff won't work.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    return Math.max(minToStart, minimumRequired);<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>  /**<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * Wait for the region servers to report in.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * We will wait until one of this condition is met:<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   *  - the master is stopped<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   *  - the 'hbase.master.wait.on.regionservers.maxtostart' number of<a name="line.786"></a>
-<span class="sourceLineNo">787</span>   *    region servers is reached<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   *  - the 'hbase.master.wait.on.regionservers.mintostart' is reached AND<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   *   there have been no new region server in for<a name="line.789"></a>
-<span class="sourceLineNo">790</span>   *      'hbase.master.wait.on.regionservers.interval' time AND<a name="line.790"></a>
-<span class="sourceLineNo">791</span>   *   the 'hbase.master.wait.on.regionservers.timeout' is reached<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   *<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   * @throws InterruptedException<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   */<a name="line.794"></a>
-<span class="sourceLineNo">795</span>  public void waitForRegionServers(MonitoredTask status) throws InterruptedException {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    final long interval = this.master.getConfiguration().<a name="line.796"></a>
-<span class="sourceLineNo">797</span>        getLong(WAIT_ON_REGIONSERVERS_INTERVAL, 1500);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    final long timeout = this.master.getConfiguration().<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        getLong(WAIT_ON_REGIONSERVERS_TIMEOUT, 4500);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    // Min is not an absolute; just a friction making us wait longer on server checkin.<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    int minToStart = getMinToStart();<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    int maxToStart = this.master.getConfiguration().<a name="line.802"></a>
-<span class="sourceLineNo">803</span>        getInt(WAIT_ON_REGIONSERVERS_MAXTOSTART, Integer.MAX_VALUE);<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    if (maxToStart &lt; minToStart) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      LOG.warn(String.format("The value of '%s' (%d) is set less than '%s' (%d), ignoring.",<a name="line.805"></a>
-<span class="sourceLineNo">806</span>          WAIT_ON_REGIONSERVERS_MAXTOSTART, maxToStart,<a name="line.806"></a>
-<span class="sourceLineNo">807</span>          WAIT_ON_REGIONSERVERS_MINTOSTART, minToStart));<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      maxToStart = Integer.MAX_VALUE;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>    long now =  System.currentTimeMillis();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    final long startTime = now;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    long slept = 0;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    long lastLogTime = 0;<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    long lastCountChange = startTime;<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    int count = countOfRegionServers();<a name="line.816"></a>
-<span class="sourceLineNo">817</span>    int oldCount = 0;<a name="line.817"></a>
-<span class="sourceLineNo">818</span>    // This while test is a little hard to read. We try to comment it in below but in essence:<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    // Wait if Master is not stopped and the number of regionservers that have checked-in is<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    // less than the maxToStart. Both of these conditions will be true near universally.<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    // Next, we will keep cycling if ANY of the following three conditions are true:<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    // 1. The time since a regionserver registered is &lt; interval (means servers are actively checking in).<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    // 2. We are under the total timeout.<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    // 3. The count of servers is &lt; minimum.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    for (ServerListener listener: this.listeners) {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      listener.waiting();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    while (!this.master.isStopped() &amp;&amp; !isClusterShutdown() &amp;&amp; count &lt; maxToStart &amp;&amp;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        ((lastCountChange + interval) &gt; now || timeout &gt; slept || count &lt; minToStart)) {<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // Log some info at every interval time or if there is a change<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      if (oldCount != count || lastLogTime + interval &lt; now) {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        lastLogTime = now;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>        String msg =<a name="line.833"></a>
-<span class="sourceLineNo">834</span>            "Waiting on regionserver count=" + count + "; waited="+<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                slept + "ms, expecting min=" + minToStart + " server(s), max="+ getStrForMax(maxToStart) +<a name="line.835"></a>
-<span class="sourceLineNo">836</span>                " server(s), " + "timeout=" + timeout + "ms, lastChange=" + (lastCountChange - now) + "ms";<a name="line.836"></a>
-<span class="sourceLineNo">837</span>        LOG.info(msg);<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        status.setStatus(msg);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      }<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>      // We sleep for some time<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      final long sleepTime = 50;<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      Thread.sleep(sleepTime);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      now =  System.currentTimeMillis();<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      slept = now - startTime;<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span>      oldCount = count;<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      count = countOfRegionServers();<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      if (count != oldCount) {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        lastCountChange = now;<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      }<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    // Did we exit the loop because cluster is going down?<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    if (isClusterShutdown()) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      this.master.stop("Cluster shutdown");<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    LOG.info("Finished waiting on RegionServer count=" + count + "; waited=" + slept + "ms," +<a name="line.857"></a>
-<span class="sourceLineNo">858</span>        " expected min=" + minToStart + " server(s), max=" +  getStrForMax(maxToStart) + " server(s),"+<a name="line.858"></a>
-<span class="sourceLineNo">859</span>        " master is "+ (this.master.isStopped() ? "stopped.": "running"));<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>  private String getStrForMax(final int max) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    return max == Integer.MAX_VALUE? "NO_LIMIT": Integer.toString(max);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  /**<a name="line.866"></a>
-<span class="sourceLineNo">867</span>   * @return A copy of the internal list of online servers.<a name="line.867"></a>
-<span class="sourceLineNo">868</span>   */<a name="line.868"></a>
-<span class="sourceLineNo">869</span>  public List&lt;ServerName&gt; getOnlineServersList() {<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    // TODO: optimize the load balancer call so we don't need to make a new list<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    // TODO: FIX. THIS IS POPULAR CALL.<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    return new ArrayList&lt;&gt;(this.onlineServers.keySet());<a name="line.872"></a>
-<span class="sourceLineNo">873</span>  }<a name="line.873"></a>
-<span class="sourceLineNo">874</span><a name="line.874"></a>
-<span class="sourceLineNo">875</span>  /**<a name="line.875"></a>
-<span class="sourceLineNo">876</span>   * @param keys The target server name<a name="line.876"></a>
-<span class="sourceLineNo">877</span>   * @param idleServerPredicator Evaluates the server on the given load<a name="line.877"></a>
-<span class="sourceLineNo">878</span>   * @return A copy of the internal list of online servers matched by the predicator<a name="line.878"></a>
-<span class="sourceLineNo">879</span>   */<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  public List&lt;ServerName&gt; getOnlineServersListWithPredicator(List&lt;ServerName&gt; keys,<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    Predicate&lt;ServerMetrics&gt; idleServerPredicator) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    List&lt;ServerName&gt; names = new ArrayList&lt;&gt;();<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (keys != null &amp;&amp; idleServerPredicator != null) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      keys.forEach(name -&gt; {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        ServerMetrics load = onlineServers.get(name);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        if (load != null) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>          if (idleServerPredicator.test(load)) {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>            names.add(name);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>          }<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
-<span class="sourceLineNo">891</span>      });<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    }<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    return names;<a name="line.893"></a>
-<span class="sourceLineNo">894</span>  }<a name="line.894"></a>
-<span class="sourceLineNo">895</span><a name="line.895"></a>
-<span class="sourceLineNo">896</span>  /**<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @return A copy of the internal list of draining servers.<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   */<a name="line.898"></a>
-<span class="sourceLineNo">899</span>  public List&lt;ServerName&gt; getDrainingServersList() {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    return new ArrayList&lt;&gt;(this.drainingServers);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>  }<a name="line.901"></a>
-<span class="sourceLineNo">902</span><a name="line.902"></a>
-<span class="sourceLineNo">903</span>  public boolean isServerOnline(ServerName serverName) {<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    return serverName != null &amp;&amp; onlineServers.containsKey(serverName);<a name="line.904"></a>
-<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   * Check if a server is known to be dead.  A server can be online,<a name="line.908"></a>
-<span class="sourceLineNo">909</span>   * or known to be dead, or unknown to this manager (i.e, not online,<a name="line.909"></a>
-<span class="sourceLineNo">910</span>   * not known to be dead either. it is simply not tracked by the<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * master any more, for example, a very old previous instance).<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   */<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  public synchronized boolean isServerDead(ServerName serverName) {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return serverName == null || deadservers.isDeadServer(serverName);<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<a name="line.915"></a>
-<span class="sourceLineNo">916</span><a name="line.916"></a>
-<span class="sourceLineNo">917</span>  public void shutdownCluster() {<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    String statusStr = "Cluster shutdown requested of master=" + this.master.getServerName();<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    LOG.info(statusStr);<a name="line.919"></a>
-<span class="sourceLineNo">920</span>    this.clusterShutdown.set(true);<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    if (onlineServers.isEmpty()) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      // we do not synchronize here so this may cause a double stop, but not a big deal<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      master.stop("OnlineServer=0 right after cluster shutdown set");<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    }<a name="line.924"></a>
-<span class="sourceLineNo">925</span>  }<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>  public boolean isClusterShutdown() {<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    return this.clusterShutdown.get();<a name="line.928"></a>
-<span class="sourceLineNo">929</span>  }<a name="line.929"></a>
-<span class="sourceLineNo">930</span><a name="line.930"></a>
-<span class="sourceLineNo">931</span>  /**<a name="line.931"></a>
-<span class="sourceLineNo">932</span>   * start chore in ServerManager<a name="line.932"></a>
-<span class="sourceLineNo">933</span>   */<a name="line.933"></a>
-<span class="sourceLineNo">934</span>  public void startChore() {<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    Configuration c = master.getConfiguration();<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    if (persistFlushedSequenceId) {<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      // when reach here, RegionStates should loaded, firstly, we call remove deleted regions<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      removeDeletedRegionFromLoadedFlushedSequenceIds();<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      int flushPeriod = c.getInt(FLUSHEDSEQUENCEID_FLUSHER_INTERVAL,<a name="line.939"></a>
-<span class="sourceLineNo">940</span>          FLUSHEDSEQUENCEID_FLUSHER_INTERVAL_DEFAULT);<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      flushedSeqIdFlusher = new FlushedSequenceIdFlusher(<a name="line.941"></a>
-<span class="sourceLineNo">942</span>          "FlushedSequenceIdFlusher", flushPeriod);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      master.getChoreService().scheduleChore(flushedSeqIdFlusher);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Stop the ServerManager.<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   */<a name="line.949"></a>
-<span class="sourceLineNo">950</span>  public void stop() {<a name="line.950"></a>
-<span class="sourceLineNo">951</span>    if (flushedSeqIdFlusher != null) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      flushedSeqIdFlusher.cancel();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    if (persistFlushedSequenceId) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      try {<a name="line.955"></a>
-<span class="sourceLineNo">956</span>        persistRegionLastFlushedSequenceIds();<a name="line.956"></a>
-<span class="sourceLineNo">957</span>      } catch (IOException e) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        LOG.warn("Failed to persist last flushed sequence id of regions"<a name="line.958"></a>
-<span class="sourceLineNo">959</span>            + " to file system", e);<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      }<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    }<a name="line.961"></a>
-<span class="sourceLineNo">962</span>  }<a name="line.962"></a>
-<span class="sourceLineNo">963</span><a name="line.963"></a>
-<span class="sourceLineNo">964</span>  /**<a name="line.964"></a>
-<span class="sourceLineNo">965</span>   * Creates a list of possible destinations for a region. It contains the online servers, but not<a name="line.965"></a>
-<span class="sourceLineNo">966</span>   *  the draining or dying servers.<a name="line.966"></a>
-<span class="sourceLineNo">967</span>   *  @param serversToExclude can be null if there is no server to exclude<a name="line.967"></a>
-<span class="sourceLineNo">968</span>   */<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  public List&lt;ServerName&gt; createDestinationServersList(final List&lt;ServerName&gt; serversToExclude){<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    final List&lt;ServerName&gt; destServers = getOnlineServersList();<a name="line.970"></a>
-<span class="sourceLineNo">971</span><a name="line.971"></a>
-<span class="sourceLineNo">972</span>    if (serversToExclude != null) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      destServers.removeAll(serversToExclude);<a name="line.973"></a>
-<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>    // Loop through the draining server list and remove them from the server list<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    final List&lt;ServerName&gt; drainingServersCopy = getDrainingServersList();<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    destServers.removeAll(drainingServersCopy);<a name="line.978"></a>
-<span class="sourceLineNo">979</span><a name="line.979"></a>
-<span class="sourceLineNo">980</span>    return destServers;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>  }<a name="line.981"></a>
+<span class="sourceLineNo">605</span>    long pid = master.getAssignmentManager().submitServerCrash(serverName, true);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    if(pid &lt;= 0) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      return false;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    } else {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      // Tell our listeners that a server was removed<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      if (!this.listeners.isEmpty()) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        for (ServerListener listener : this.listeners) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>          listener.serverRemoved(serverName);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      }<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      // trigger a persist of flushedSeqId<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      if (flushedSeqIdFlusher != null) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        flushedSeqIdFlusher.triggerNow();<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      return true;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>  @VisibleForTesting<a name="line.623"></a>
+<span class="sourceLineNo">624</span>  public void moveFromOnlineToDeadServers(final ServerName sn) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    synchronized (onlineServers) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      if (!this.onlineServers.containsKey(sn)) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        LOG.trace("Expiration of {} but server not online", sn);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      // Remove the server from the known servers lists and update load info BUT<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      // add to deadservers first; do this so it'll show in dead servers list if<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      // not in online servers list.<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      this.deadservers.add(sn);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      this.onlineServers.remove(sn);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      onlineServers.notifyAll();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    this.rsAdmins.remove(sn);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>  }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>  /*<a name="line.639"></a>
+<span class="sourceLineNo">640</span>   * Remove the server from the drain list.<a name="line.640"></a>
+<span class="sourceLineNo">641</span>   */<a name="line.641"></a>
+<span class="sourceLineNo">642</span>  public synchronized boolean removeServerFromDrainList(final ServerName sn) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>    if (!this.isServerOnline(sn)) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.647"></a>
+<span class="sourceLineNo">648</span>               "Removing from draining list anyway, as requested.");<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    // Remove the server from the draining servers lists.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    return this.drainingServers.remove(sn);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>  }<a name="line.652"></a>
+<span class="sourceLineNo">653</span><a name="line.653"></a>
+<span class="sourceLineNo">654</span>  /**<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   * Add the server to the drain list.<a name="line.655"></a>
+<span class="sourceLineNo">656</span>   * @param sn<a name="line.656"></a>
+<span class="sourceLineNo">657</span>   * @return True if the server is added or the server is already on the drain list.<a name="line.657"></a>
+<span class="sourceLineNo">658</span>   */<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  public synchronized boolean addServerToDrainList(final ServerName sn) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>    if (!this.isServerOnline(sn)) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.664"></a>
+<span class="sourceLineNo">665</span>               "Ignoring request to add it to draining list.");<a name="line.665"></a>
+<span class="sourceLineNo">666</span>      return false;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    }<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    // Add the server to the draining servers lists, if it's not already in<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    // it.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    if (this.drainingServers.contains(sn)) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      LOG.warn("Server " + sn + " is already in the draining server list." +<a name="line.671"></a>
+<span class="sourceLineNo">672</span>               "Ignoring request to add it again.");<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      return true;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>    LOG.info("Server " + sn + " added to draining server list.");<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    return this.drainingServers.add(sn);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>  // RPC methods to region servers<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>  private HBaseRpcController newRpcController() {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    return rpcControllerFactory == null ? null : rpcControllerFactory.newController();<a name="line.682"></a>
+<span class="sourceLineNo">683</span>  }<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>  /**<a name="line.685"></a>
+<span class="sourceLineNo">686</span>   * Sends a WARMUP RPC to the specified server to warmup the specified region.<a name="line.686"></a>
+<span class="sourceLineNo">687</span>   * &lt;p&gt;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>   * A region server could reject the close request because it either does not<a name="line.688"></a>
+<span class="sourceLineNo">689</span>   * have the specified region or the region is being split.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>   * @param server server to warmup a region<a name="line.690"></a>
+<span class="sourceLineNo">691</span>   * @param region region to  warmup<a name="line.691"></a>
+<span class="sourceLineNo">692</span>   */<a name="line.692"></a>
+<span class="sourceLineNo">693</span>  public void sendRegionWarmup(ServerName server,<a name="line.693"></a>
+<span class="sourceLineNo">694</span>      RegionInfo region) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    if (server == null) return;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    try {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>      AdminService.BlockingInterface admin = getRsAdmin(server);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      HBaseRpcController controller = newRpcController();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      ProtobufUtil.warmupRegion(controller, admin, region);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    } catch (IOException e) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>      LOG.error("Received exception in RPC for warmup server:" +<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        server + "region: " + region +<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        "exception: " + e);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
+<span class="sourceLineNo">708</span>   * Contacts a region server and waits up to timeout ms<a name="line.708"></a>
+<span class="sourceLineNo">709</span>   * to close the region.  This bypasses the active hmaster.<a name="line.709"></a>
+<span class="sourceLineNo">710</span>   */<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  public static void closeRegionSilentlyAndWait(ClusterConnection connection,<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    ServerName server, RegionInfo region, long timeout) throws IOException, InterruptedException {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    AdminService.BlockingInterface rs = connection.getAdmin(server);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    HBaseRpcController controller = connection.getRpcControllerFactory().newController();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    try {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>      ProtobufUtil.closeRegion(controller, rs, server, region.getRegionName());<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    } catch (IOException e) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      LOG.warn("Exception when closing region: " + region.getRegionNameAsString(), e);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span>    long expiration = timeout + System.currentTimeMillis();<a name="line.720"></a>
+<span class="sourceLineNo">721</span>    while (System.currentTimeMillis() &lt; expiration) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      controller.reset();<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      try {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        RegionInfo rsRegion =<a name="line.724"></a>
+<span class="sourceLineNo">725</span>          ProtobufUtil.getRegionInfo(controller, rs, region.getRegionName());<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        if (rsRegion == null) return;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>      } catch (IOException ioe) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        if (ioe instanceof NotServingRegionException) // no need to retry again<a name="line.728"></a>
+<span class="sourceLineNo">729</span>          return;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        LOG.warn("Exception when retrieving regioninfo from: "<a name="line.730"></a>
+<span class="sourceLineNo">731</span>          + region.getRegionNameAsString(), ioe);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      Thread.sleep(1000);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    }<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    throw new IOException("Region " + region + " failed to close within"<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        + " timeout " + timeout);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>  }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>  /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * @param sn<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * @return Admin interface for the remote regionserver named &lt;code&gt;sn&lt;/code&gt;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * @throws IOException<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * @throws RetriesExhaustedException wrapping a ConnectException if failed<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>  public AdminService.BlockingInterface getRsAdmin(final ServerName sn)<a name="line.745"></a>
+<span class="sourceLineNo">746</span>  throws IOException {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    AdminService.BlockingInterface admin = this.rsAdmins.get(sn);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    if (admin == null) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>      LOG.debug("New admin connection to " + sn.toString());<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      if (sn.equals(master.getServerName()) &amp;&amp; master instanceof HRegionServer) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        // A master is also a region server now, see HBASE-10569 for details<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        admin = ((HRegionServer)master).getRSRpcServices();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>      } else {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>        admin = this.connection.getAdmin(sn);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      this.rsAdmins.put(sn, admin);<a name="line.756"></a>
+<span class="sourceLineNo">757</span>    }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    return admin;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>  }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>  /**<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * Calculate min necessary to start. This is not an absolute. It is just<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * a friction that will cause us hang around a bit longer waiting on<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   * RegionServers to check-in.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>  private int getMinToStart() {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    if (master.isInMaintenanceMode()) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      // If in maintenance mode, then master hosting meta will be the only server available<a name="line.768"></a>
+<span class="sourceLineNo">769</span>      return 1;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>    }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>    int minimumRequired = 1;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>    if (LoadBalancer.isTablesOnMaster(master.getConfiguration()) &amp;&amp;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        LoadBalancer.isSystemTablesOnlyOnMaster(master.getConfiguration())) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>      // If Master is carrying regions it will show up as a 'server', but is not handling user-<a name="line.775"></a>
+<span class="sourceLineNo">776</span>      // space regions, so we need a second server.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      minimumRequired = 2;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>    }<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>    int minToStart = this.master.getConfiguration().getInt(WAIT_ON_REGIONSERVERS_MINTOSTART, -1);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    // Ensure we are never less than minimumRequired else stuff won't work.<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    return Math.max(minToStart, minimumRequired);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>  }<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>  /**<a name="line.785"></a>
+<span class="sourceLineNo">786</span>   * Wait for the region servers to report in.<a name="line.786"></a>
+<span class="sourceLineNo">787</span>   * We will wait until one of this condition is met:<a name="line.787"></a>
+<span class="sourceLineNo">788</span>   *  - the master is stopped<a name="line.788"></a>
+<span class="sourceLineNo">789</span>   *  - the 'hbase.master.wait.on.regionservers.maxtostart' number of<a name="line.789"></a>
+<span class="sourceLineNo">790</span>   *    region servers is reached<a name="line.790"></a>
+<span class="sourceLineNo">791</span>   *  - the 'hbase.master.wait.on.regionservers.mintostart' is reached AND<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   *   there have been no new region server in for<a name="line.792"></a>
+<span class="sourceLineNo">793</span>   *      'hbase.master.wait.on.regionservers.interval' time AND<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   *   the 'hbase.master.wait.on.regionservers.timeout' is reached<a name="line.794"></a>
+<span class="sourceLineNo">795</span>   *<a name="line.795"></a>
+<span class="sourceLineNo">796</span>   * @throws InterruptedException<a name="line.796"></a>
+<span class="sourceLineNo">797</span>   */<a name="line.797"></a>
+<span class="sourceLineNo">798</span>  public void waitForRegionServers(MonitoredTask status) throws InterruptedException {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    final long interval = this.master.getConfiguration().<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        getLong(WAIT_ON_REGIONSERVERS_INTERVAL, 1500);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    final long timeout = this.master.getConfiguration().<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        getLong(WAIT_ON_REGIONSERVERS_TIMEOUT, 4500);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    // Min is not an absolute; just a friction making us wait longer on server checkin.<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    int minToStart = getMinToStart();<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    int maxToStart = this.master.getConfiguration().<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        getInt(WAIT_ON_REGIONSERVERS_MAXTOSTART, Integer.MAX_VALUE);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    if (maxToStart &lt; minToStart) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>      LOG.warn(String.format("The value of '%s' (%d) is set less than '%s' (%d), ignoring.",<a name="line.808"></a>
+<span class="sourceLineNo">809</span>          WAIT_ON_REGIONSERVERS_MAXTOSTART, maxToStart,<a name="line.809"></a>
+<span class="sourceLineNo">810</span>          WAIT_ON_REGIONSERVERS_MINTOSTART, minToStart));<a name="line.810"></a>
+<span class="sourceLineNo">811</span>      maxToStart = Integer.MAX_VALUE;<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    long now =  System.currentTimeMillis();<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    final long startTime = now;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    long slept = 0;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    long lastLogTime = 0;<a name="line.817"></a>
+<span class="sourceLineNo">818</span>    long lastCountChange = startTime;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>    int count = countOfRegionServers();<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    int oldCount = 0;<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    // This while test is a little hard to read. We try to comment it in below but in essence:<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    // Wait if Master is not stopped and the number of regionservers that have checked-in is<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    // less than the maxToStart. Both of these conditions will be true near universally.<a name="line.823"></a>
+<span class="sourceLineNo">824</span>    // Next, we will keep cycling if ANY of the following three conditions are true:<a name="line.824"></a>
+<span class="sourceLineNo">825</span>    // 1. The time since a regionserver registered is &lt; interval (means servers are actively checking in).<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    // 2. We are under the total timeout.<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    // 3. The count of servers is &lt; minimum.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    for (ServerListener listener: this.listeners) {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      listener.waiting();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    while (!this.master.isStopped() &amp;&amp; !isClusterShutdown() &amp;&amp; count &lt; maxToStart &amp;&amp;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        ((lastCountChange + interval) &gt; now || timeout &gt; slept || count &lt; minToStart)) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>      // Log some info at every interval time or if there is a change<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      if (oldCount != count || lastLogTime + interval &lt; now) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>        lastLogTime = now;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>        String msg =<a name="line.836"></a>
+<span class="sourceLineNo">837</span>            "Waiting on regionserver count=" + count + "; waited="+<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                slept + "ms, expecting min=" + minToStart + " server(s), max="+ getStrForMax(maxToStart) +<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                " server(s), " + "timeout=" + timeout + "ms, lastChange=" + (lastCountChange - now) + "ms";<a name="line.839"></a>
+<span class="sourceLineNo">840</span>        LOG.info(msg);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        status.setStatus(msg);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</span>      // We sleep for some time<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      final long sleepTime = 50;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>      Thread.sleep(sleepTime);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      now =  System.currentTimeMillis();<a name="line.847"></a>
+<span class="sourceLineNo">848</span>      slept = now - startTime;<a name="line.848"></a>
+<span class="sourceLineNo">849</span><a name="line.849"></a>
+<span class="sourceLineNo">850</span>      oldCount = count;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      count = countOfRegionServers();<a name="line.851"></a>
+<span class="sourceLineNo">852</span>      if (count != oldCount) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        lastCountChange = now;<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      }<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    // Did we exit the loop because cluster is going down?<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    if (isClusterShutdown()) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      this.master.stop("Cluster shutdown");<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    LOG.info("Finished waiting on RegionServer count=" + count + "; waited=" + slept + "ms," +<a name="line.860"></a>
+<span class="sourceLineNo">861</span>        " expected min=" + minToStart + " server(s), max=" +  getStrForMax(maxToStart) + " server(s),"+<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        " master is "+ (this.master.isStopped() ? "stopped.": "running"));<a name="line.862"></a>
+<span class="sourceLineNo">863</span>  }<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>  private String getStrForMax(final int max) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    return max == Integer.MAX_VALUE? "NO_LIMIT": Integer.toString(max);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>  }<a name="line.867"></a>
+<span class="sourceLineNo">868</span><a name="line.868"></a>
+<span class="sourceLineNo">869</span>  /**<a name="line.869"></a>
+<span class="sourceLineNo">870</span>   * @return A copy of the internal list of online servers.<a name="line.870"></a>
+<span class="sourceLineNo">871</span>   */<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  public List&lt;ServerName&gt; getOnlineServersList() {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    // TODO: optimize the load balancer call so we don't need to make a new list<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    // TODO: FIX. THIS IS POPULAR CALL.<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    return new ArrayList&lt;&gt;(this.onlineServers.keySet());<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>  /**<a name="line.878"></a>
+<span class="sourceLineNo">879</span>   * @param keys The target server name<a name="line.879"></a>
+<span class="sourceLineNo">880</span>   * @param idleServerPredicator Evaluates the server on the given load<a name="line.880"></a>
+<span class="sourceLineNo">881</span>   * @return A copy of the internal list of online servers matched by the predicator<a name="line.881"></a>
+<span class="sourceLineNo">882</span>   */<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  public List&lt;ServerName&gt; getOnlineServersListWithPredicator(List&lt;ServerName&gt; keys,<a name="line.883"></a>
+<span class="sourceLineNo">884</span>    Predicate&lt;ServerMetrics&gt; idleServerPredicator) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    List&lt;ServerName&gt; names = new ArrayList&lt;&gt;();<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (keys != null &amp;&amp; idleServerPredicator != null) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      keys.forEach(name -&gt; {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>        ServerMetrics load = onlineServers.get(name);<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        if (load != null) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>          if (idleServerPredicator.test(load)) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>            names.add(name);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>          }<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>      });<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    return names;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>  /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @return A copy of the internal list of draining servers.<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   */<a name="line.901"></a>
+<span class="sourceLineNo">902</span>  public List&lt;ServerName&gt; getDrainingServersList() {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    return new ArrayList&lt;&gt;(this.drainingServers);<a name="line.903"></a>
+<span class="sourceLineNo">904</span>  }<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>  public boolean isServerOnline(ServerName serverName) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>    return serverName != null &amp;&amp; onlineServers.containsKey(serverName);<a name="line.907"></a>
+<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   * Check if a server is known to be dead.  A server can be online,<a name="line.911"></a>
+<span class="sourceLineNo">912</span>   * or known to be dead, or unknown to this manager (i.e, not online,<a name="line.912"></a>
+<span class="sourceLineNo">913</span>   * not known to be dead either. it is simply not tracked by the<a name="line.913"></a>
+<span class="sourceLineNo">914</span>   * master any more, for example, a very old previous instance).<a name="line.914"></a>
+<span class="sourceLineNo">915</span>   */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  public synchronized boolean isServerDead(ServerName serverName) {<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return serverName == null || deadservers.isDeadServer(serverName);<a name="line.917"></a>
+<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>  public void shutdownCluster() {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    String statusStr = "Cluster shutdown requested of master=" + this.master.getServerName();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    LOG.info(statusStr);<a name="line.922"></a>
+<span class="sourceLineNo">923</span>    this.clusterShutdown.set(true);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    if (onlineServers.isEmpty()) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      // we do not synchronize here so this may cause a double stop, but not a big deal<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      master.stop("OnlineServer=0 right after cluster shutdown set");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>    }<a name="line.927"></a>
+<span class="sourceLineNo">928</span>  }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>  public boolean isClusterShutdown() {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    return this.clusterShutdown.get();<a name="line.931"></a>
+<span class="sourceLineNo">932</span>  }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>  /**<a name="line.934"></a>
+<span class="sourceLineNo">935</span>   * start chore in ServerManager<a name="line.935"></a>
+<span class="sourceLineNo">936</span>   */<a name="line.936"></a>
+<span class="sourceLineNo">937</span>  public void startChore() {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    Configuration c = master.getConfiguration();<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    if (persistFlushedSequenceId) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      // when reach here, RegionStates should loaded, firstly, we call remove deleted regions<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      removeDeletedRegionFromLoadedFlushedSequenceIds();<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      int flushPeriod = c.getInt(FLUSHEDSEQUENCEID_FLUSHER_INTERVAL,<a name="line.942"></a>
+<span class="sourceLineNo">943</span>          FLUSHEDSEQUENCEID_FLUSHER_INTERVAL_DEFAULT);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      flushedSeqIdFlusher = new FlushedSequenceIdFlusher(<a name="line.944"></a>
+<span class="sourceLineNo">945</span>          "FlushedSequenceIdFlusher", flushPeriod);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      master.getChoreService().scheduleChore(flushedSeqIdFlusher);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span>  }<a name="line.948"></a>
+<span class="sourceLineNo">949</span><a name="line.949"></a>
+<span class="sourceLineNo">950</span>  /**<a name="line.950"></a>
+<span class="sourceLineNo">951</span>   * Stop the ServerManager.<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   */<a name="line.952"></a>
+<span class="sourceLineNo">953</span>  public void stop() {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>    if (flushedSeqIdFlusher != null) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      flushedSeqIdFlusher.cancel();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    }<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (persistFlushedSequenceId) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      try {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        persistRegionLastFlushedSequenceIds();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } catch (IOException e) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        LOG.warn("Failed to persist last flushed sequence id of regions"<a name="line.961"></a>
+<span class="sourceLineNo">962</span>            + " to file system", e);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>      }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>  }<a name="line.965"></a>
+<span class="sourceLineNo">966</span><a name="line.966"></a>
+<span class="sourceLineNo">967</span>  /**<a name="line.967"></a>
+<span class="sourceLineNo">968</span>   * Creates a list of possible destinations for a region. It contains the online servers, but not<a name="line.968"></a>
+<span class="sourceLineNo">969</span>   *  the draining or dying servers.<a name="line.969"></a>
+<span class="sourceLineNo">970</span>   *  @param serversToExclude can be null if there is no server to exclude<a name="line.970"></a>
+<span class="sourceLineNo">971</span>   */<a name="line.971"></a>
+<span class="sourceLineNo">972</span>  public List&lt;ServerName&gt; createDestinationServersList(final List&lt;ServerName&gt; serversToExclude){<a name="line.972"></a>
+<span class="sourceLineNo">973</span>    final List&lt;ServerName&gt; destServers = getOnlineServersList();<a name="line.973"></a>
+<span class="sourceLineNo">974</span><a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (serversToExclude != null) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      destServers.removeAll(serversToExclude);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>    }<a name="line.977"></a>
+<span class="sourceLineNo">978</span><a name="line.978"></a>
+<span class="sourceLineNo">979</span>    // Loop through the draining server list and remove them from the server list<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    final List&lt;ServerName&gt; drainingServersCopy = getDrainingServersList();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>    destServers.removeAll(drainingServersCopy);<a name="line.981"></a>
 <span class="sourceLineNo">982</span><a name="line.982"></a>
-<span class="sourceLineNo">983</span>  /**<a name="line.983"></a>
-<span class="sourceLineNo">984</span>   * Calls {@link #createDestinationServersList} without server to exclude.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>   */<a name="line.985"></a>
-<span class="sourceLineNo">986</span>  public List&lt;ServerName&gt; createDestinationServersList(){<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return createDestinationServersList(null);<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * To clear any dead server with same host name and port of any online server<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   */<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  void clearDeadServersWithSameHostNameAndPortOfOnlineServer() {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    for (ServerName serverName : getOnlineServersList()) {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      deadservers.cleanAllPreviousInstances(serverName);<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><a name="line.998"></a>
-<span class="sourceLineNo">999</span>  /**<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>   * Called by delete table and similar to notify the ServerManager that a region was removed.<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>   */<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  public void removeRegion(final RegionInfo regionInfo) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    final byte[] encodedName = regionInfo.getEncodedNameAsBytes();<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    storeFlushedSequenceIdsByRegion.remove(encodedName);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    flushedSequenceIdByRegion.remove(encodedName);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span><a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  @VisibleForTesting<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  public boolean isRegionInServerManagerStates(final RegionInfo hri) {<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    final byte[] encodedName = hri.getEncodedNameAsBytes();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    return (storeFlushedSequenceIdsByRegion.containsKey(encodedName)<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        || flushedSequenceIdByRegion.containsKey(encodedName));<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span><a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  /**<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>   * Called by delete table and similar to notify the ServerManager that a region was removed.<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   */<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  public void removeRegions(final List&lt;RegionInfo&gt; regions) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    for (RegionInfo hri: regions) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      removeRegion(hri);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  /**<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   * May return 0 when server is not online.<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>   */<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  public int getVersionNumber(ServerName serverName) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    return serverMetrics != null ? serverMetrics.getVersionNumber() : 0;<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>  /**<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * May return "0.0.0" when server is not online<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  public String getVersion(ServerName serverName) {<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>    return serverMetrics != null ? serverMetrics.getVersion() : "0.0.0";<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>  public int getInfoPort(ServerName serverName) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    return serverMetrics != null ? serverMetrics.getInfoServerPort() : 0;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>  }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span><a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  /**<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>   * Persist last flushed sequence id of each region to HDFS<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>   * @throws IOException if persit to HDFS fails<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   */<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  private void persistRegionLastFlushedSequenceIds() throws IOException {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    if (isFlushSeqIdPersistInProgress) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      return;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    }<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    isFlushSeqIdPersistInProgress = true;<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    try {<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>      Configuration conf = master.getConfiguration();<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      Path rootDir = FSUtils.getRootDir(conf);<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>      Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      FileSystem fs = FileSystem.get(conf);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (fs.exists(lastFlushedSeqIdPath)) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Rewriting .lastflushedseqids file at: "<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            + lastFlushedSeqIdPath);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>        if (!fs.delete(lastFlushedSeqIdPath, false)) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>          throw new IOException("Unable to remove existing "<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>              + lastFlushedSeqIdPath);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      } else {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>        LOG.info("Writing .lastflushedseqids file at: " + lastFlushedSeqIdPath);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      FSDataOutputStream out = fs.create(lastFlushedSeqIdPath);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      FlushedSequenceId.Builder flushedSequenceIdBuilder =<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>          FlushedSequenceId.newBuilder();<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      try {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>        for (Entry&lt;byte[], Long&gt; entry : flushedSequenceIdByRegion.entrySet()) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>          FlushedRegionSequenceId.Builder flushedRegionSequenceIdBuilder =<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>              FlushedRegionSequenceId.newBuilder();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>          flushedRegionSequenceIdBuilder.setRegionEncodedName(<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>              ByteString.copyFrom(entry.getKey()));<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>          flushedRegionSequenceIdBuilder.setSeqId(entry.getValue());<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeSeqIds =<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>              storeFlushedSequenceIdsByRegion.get(entry.getKey());<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>          if (storeSeqIds != null) {<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>            for (Entry&lt;byte[], Long&gt; store : storeSeqIds.entrySet()) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>              FlushedStoreSequenceId.Builder flushedStoreSequenceIdBuilder =<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>                  FlushedStoreSequenceId.newBuilder();<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>              flushedStoreSequenceIdBuilder.setFamily(ByteString.copyFrom(store.getKey()));<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>              flushedStoreSequenceIdBuilder.setSeqId(store.getValue());<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>              flushedRegionSequenceIdBuilder.addStores(flushedStoreSequenceIdBuilder);<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>          flushedSequenceIdBuilder.addRegionSequenceId(flushedRegionSequenceIdBuilder);<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>        }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>        flushedSequenceIdBuilder.build().writeDelimitedTo(out);<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      } finally {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        if (out != null) {<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>          out.close();<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>        }<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    } finally {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      isFlushSeqIdPersistInProgress = false;<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span><a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>  /**<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>   * Load last flushed sequence id of each region from HDFS, if persisted<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>   */<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  public void loadLastFlushedSequenceIds() throws IOException {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    if (!persistFlushedSequenceId) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>      return;<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    Configuration conf = master.getConfiguration();<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    FileSystem fs = FileSystem.get(conf);<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>    if (!fs.exists(lastFlushedSeqIdPath)) {<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>  

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 f25572f..fdb1c64 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/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/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/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>
 <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/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/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 015ba48..80bf29f 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/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/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/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/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/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/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>
 </ul>
 </li>
 </ul>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index d641e5e..af66de1 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
       <title>File: 3823,
-             Errors: 14724,
+             Errors: 14663,
              Warnings: 0,
              Infos: 0
       </title>
@@ -2435,7 +2435,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  2
                 </td>
               </tr>
                           <tr>
@@ -2673,7 +2673,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  11
                 </td>
               </tr>
                           <tr>
@@ -2771,7 +2771,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  1
                 </td>
               </tr>
                           <tr>
@@ -3121,7 +3121,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  6
+                  1
                 </td>
               </tr>
                           <tr>
@@ -5977,7 +5977,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  11
+                  10
                 </td>
               </tr>
                           <tr>
@@ -6719,7 +6719,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  27
+                  21
                 </td>
               </tr>
                           <tr>
@@ -8595,7 +8595,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  12
+                  11
                 </td>
               </tr>
                           <tr>
@@ -16057,7 +16057,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  4
                 </td>
               </tr>
                           <tr>
@@ -17868,20 +17868,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.mob.MobCacheConfig.java">org/apache/hadoop/hbase/mob/MobCacheConfig.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  2
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.http.HttpServer.java">org/apache/hadoop/hbase/http/HttpServer.java</a>
                 </td>
                 <td>
@@ -25269,7 +25255,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  2
                 </td>
               </tr>
                           <tr>
@@ -32815,7 +32801,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  0
                 </td>
               </tr>
                           <tr>
@@ -33347,7 +33333,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  52
+                  26
                 </td>
               </tr>
                           <tr>
@@ -34173,7 +34159,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  2
                 </td>
               </tr>
                           <tr>
@@ -42055,7 +42041,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  1
                 </td>
               </tr>
                           <tr>
@@ -43847,7 +43833,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  16
+                  15
                 </td>
               </tr>
                           <tr>
@@ -43973,7 +43959,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  0
                 </td>
               </tr>
                           <tr>
@@ -44664,6 +44650,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.java">org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.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.regionserver.HeapMemoryTuner.java">org/apache/hadoop/hbase/regionserver/HeapMemoryTuner.java</a>
                 </td>
                 <td>
@@ -50511,7 +50511,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  209
+                  208
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 184cc20..6981c82 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -385,7 +385,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-12-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-12-18</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index f276a00..24daa3a 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <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" />
@@ -450,7 +450,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-12-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-12-18</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 6d9696f..b6c0676 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <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" />
@@ -680,7 +680,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-12-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-12-18</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 6d90173..2fe8d35 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <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" />
@@ -323,7 +323,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-12-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-12-18</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 9b9ea01..4587929 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <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" />
@@ -1009,7 +1009,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-12-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-12-18</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index b77126f..a0a3df0 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -273,6 +273,8 @@
 <li><a href="org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter" target="classFrame">BitComparator.BitwiseOp</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/store/BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store" target="classFrame">BitSetNode</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile" target="classFrame"><span class="interfaceName">BlockCache</span></a></li>
+<li><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCacheFactory</a></li>
+<li><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCacheFactory.ExternalBlockCaches</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCacheKey</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCachesIterator</a></li>
 <li><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver" target="classFrame">BlockCacheTmpl</a></li>
@@ -388,7 +390,6 @@
 <li><a href="org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile" target="classFrame"><span class="interfaceName">CacheableDeserializer</span></a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">CacheableDeserializerIdManager</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">CacheConfig</a></li>
-<li><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">CacheConfig.ExternalBlockCaches</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile" target="classFrame"><span class="interfaceName">CachedBlock</span></a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket" target="classFrame">CachedEntryQueue</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/CachedMobFile.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">CachedMobFile</a></li>
@@ -1648,7 +1649,6 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/querymatcher/MinorCompactionScanQueryMatcher.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher" target="classFrame">MinorCompactionScanQueryMatcher</a></li>
 <li><a href="org/apache/hadoop/hbase/master/MirroringTableStateManager.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">MirroringTableStateManager</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/policies/MissingSnapshotViolationPolicyEnforcement.html" title="class in org.apache.hadoop.hbase.quotas.policies" target="classFrame">MissingSnapshotViolationPolicyEnforcement</a></li>
-<li><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">MobCacheConfig</a></li>
 <li><a href="org/apache/hadoop/hbase/master/MobCompactionChore.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">MobCompactionChore</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/MobCompactionRequest.html" title="class in org.apache.hadoop.hbase.mob.compactions" target="classFrame">MobCompactionRequest</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/MobCompactionRequest.CompactionType.html" title="enum in org.apache.hadoop.hbase.mob.compactions" target="classFrame">MobCompactionRequest.CompactionType</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index ec4e67f..2dba490 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -273,6 +273,8 @@
 <li><a href="org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter">BitComparator.BitwiseOp</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/store/BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store">BitSetNode</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="interfaceName">BlockCache</span></a></li>
+<li><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></li>
+<li><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCachesIterator</a></li>
 <li><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl</a></li>
@@ -388,7 +390,6 @@
 <li><a href="org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="interfaceName">CacheableDeserializer</span></a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheableDeserializerIdManager</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></li>
-<li><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="interfaceName">CachedBlock</span></a></li>
 <li><a href="org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">CachedEntryQueue</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/CachedMobFile.html" title="class in org.apache.hadoop.hbase.mob">CachedMobFile</a></li>
@@ -1648,7 +1649,6 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/querymatcher/MinorCompactionScanQueryMatcher.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher">MinorCompactionScanQueryMatcher</a></li>
 <li><a href="org/apache/hadoop/hbase/master/MirroringTableStateManager.html" title="class in org.apache.hadoop.hbase.master">MirroringTableStateManager</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/policies/MissingSnapshotViolationPolicyEnforcement.html" title="class in org.apache.hadoop.hbase.quotas.policies">MissingSnapshotViolationPolicyEnforcement</a></li>
-<li><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></li>
 <li><a href="org/apache/hadoop/hbase/master/MobCompactionChore.html" title="class in org.apache.hadoop.hbase.master">MobCompactionChore</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/MobCompactionRequest.html" title="class in org.apache.hadoop.hbase.mob.compactions">MobCompactionRequest</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/MobCompactionRequest.CompactionType.html" title="enum in org.apache.hadoop.hbase.mob.compactions">MobCompactionRequest.CompactionType</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index b674d6c..67061e6 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3831,7 +3831,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/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Sat Dec 15 14:43:55 UTC 2018"</code></td>
+<td class="colLast"><code>"Tue Dec 18 14:46:13 UTC 2018"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
@@ -3845,7 +3845,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/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"25dbb3fd216cbc954b8b2ebf17377a47"</code></td>
+<td class="colLast"><code>"0ff9598693406383f0355b09c8c7ea64"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -9223,6 +9223,88 @@
 <ul class="blockList">
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BLOCKCACHE_BLOCKSIZE_KEY">
+<!--   -->
+</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/io/hfile/BlockCacheFactory.html#BLOCKCACHE_BLOCKSIZE_KEY">BLOCKCACHE_BLOCKSIZE_KEY</a></code></td>
+<td class="colLast"><code>"hbase.offheapcache.minblocksize"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_BUCKETS_KEY">
+<!--   -->
+</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_BUCKETS_KEY">BUCKET_CACHE_BUCKETS_KEY</a></code></td>
+<td class="colLast"><code>"hbase.bucketcache.bucket.sizes"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_PERSISTENT_PATH_KEY">
+<!--   -->
+</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_PERSISTENT_PATH_KEY">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></code></td>
+<td class="colLast"><code>"hbase.bucketcache.persistent.path"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_WRITER_QUEUE_KEY">
+<!--   -->
+</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_WRITER_QUEUE_KEY">BUCKET_CACHE_WRITER_QUEUE_KEY</a></code></td>
+<td class="colLast"><code>"hbase.bucketcache.writer.queuelength"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_WRITER_THREADS_KEY">
+<!--   -->
+</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_WRITER_THREADS_KEY">BUCKET_CACHE_WRITER_THREADS_KEY</a></code></td>
+<td class="colLast"><code>"hbase.bucketcache.writer.threads"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.DEFAULT_BUCKET_CACHE_WRITER_QUEUE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#DEFAULT_BUCKET_CACHE_WRITER_QUEUE">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></code></td>
+<td class="colLast"><code>64</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.DEFAULT_BUCKET_CACHE_WRITER_THREADS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#DEFAULT_BUCKET_CACHE_WRITER_THREADS">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></code></td>
+<td class="colLast"><code>3</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.EXTERNAL_BLOCKCACHE_CLASS_KEY">
+<!--   -->
+</a><code>private&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/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_CLASS_KEY">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></code></td>
+<td class="colLast"><code>"hbase.blockcache.external.class"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.EXTERNAL_BLOCKCACHE_DEFAULT">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;boolean</code></td>
+<td><code><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_DEFAULT">EXTERNAL_BLOCKCACHE_DEFAULT</a></code></td>
+<td class="colLast"><code>false</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.EXTERNAL_BLOCKCACHE_KEY">
+<!--   -->
+</a><code>private&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/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_KEY">EXTERNAL_BLOCKCACHE_KEY</a></code></td>
+<td class="colLast"><code>"hbase.blockcache.use.external"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
@@ -9307,187 +9389,117 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.BLOCKCACHE_BLOCKSIZE_KEY">
-<!--   -->
-</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/io/hfile/CacheConfig.html#BLOCKCACHE_BLOCKSIZE_KEY">BLOCKCACHE_BLOCKSIZE_KEY</a></code></td>
-<td class="colLast"><code>"hbase.offheapcache.minblocksize"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_BUCKETS_KEY">
-<!--   -->
-</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/io/hfile/CacheConfig.html#BUCKET_CACHE_BUCKETS_KEY">BUCKET_CACHE_BUCKETS_KEY</a></code></td>
-<td class="colLast"><code>"hbase.bucketcache.bucket.sizes"</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_PERSISTENT_PATH_KEY">
-<!--   -->
-</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/io/hfile/CacheConfig.html#BUCKET_CACHE_PERSISTENT_PATH_KEY">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></code></td>
-<td class="colLast"><code>"hbase.bucketcache.persistent.path"</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_WRITER_QUEUE_KEY">
-<!--   -->
-</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/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_QUEUE_KEY">BUCKET_CACHE_WRITER_QUEUE_KEY</a></code></td>
-<td class="colLast"><code>"hbase.bucketcache.writer.queuelength"</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_WRITER_THREADS_KEY">
-<!--   -->
-</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/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_THREADS_KEY">BUCKET_CACHE_WRITER_THREADS_KEY</a></code></td>
-<td class="colLast"><code>"hbase.bucketcache.writer.threads"</code></td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_BLOCKS_ON_WRITE_KEY">
 <!--   -->
 </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/io/hfile/CacheConfig.html#CACHE_BLOCKS_ON_WRITE_KEY">CACHE_BLOCKS_ON_WRITE_KEY</a></code></td>
 <td class="colLast"><code>"hbase.rs.cacheblocksonwrite"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_BLOOM_BLOCKS_ON_WRITE_KEY">
 <!--   -->
 </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/io/hfile/CacheConfig.html#CACHE_BLOOM_BLOCKS_ON_WRITE_KEY">CACHE_BLOOM_BLOCKS_ON_WRITE_KEY</a></code></td>
 <td class="colLast"><code>"hfile.block.bloom.cacheonwrite"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_DATA_BLOCKS_COMPRESSED_KEY">
 <!--   -->
 </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/io/hfile/CacheConfig.html#CACHE_DATA_BLOCKS_COMPRESSED_KEY">CACHE_DATA_BLOCKS_COMPRESSED_KEY</a></code></td>
 <td class="colLast"><code>"hbase.block.data.cachecompressed"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_DATA_ON_READ_KEY">
 <!--   -->
 </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/io/hfile/CacheConfig.html#CACHE_DATA_ON_READ_KEY">CACHE_DATA_ON_READ_KEY</a></code></td>
 <td class="colLast"><code>"hbase.block.data.cacheonread"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.CACHE_INDEX_BLOCKS_ON_WRITE_KEY">
 <!--   -->
 </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/io/hfile/CacheConfig.html#CACHE_INDEX_BLOCKS_ON_WRITE_KEY">CACHE_INDEX_BLOCKS_ON_WRITE_KEY</a></code></td>
 <td class="colLast"><code>"hfile.block.index.cacheonwrite"</code></td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_BUCKET_CACHE_WRITER_QUEUE">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_QUEUE">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></code></td>
-<td class="colLast"><code>64</code></td>
-</tr>
 <tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_BUCKET_CACHE_WRITER_THREADS">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_THREADS">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></code></td>
-<td class="colLast"><code>3</code></td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_BLOOMS_ON_WRITE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_BLOOMS_ON_WRITE">DEFAULT_CACHE_BLOOMS_ON_WRITE</a></code></td>
 <td class="colLast"><code>false</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_COMPRESSED">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_DATA_COMPRESSED">DEFAULT_CACHE_DATA_COMPRESSED</a></code></td>
 <td class="colLast"><code>false</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_ON_READ">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_DATA_ON_READ">DEFAULT_CACHE_DATA_ON_READ</a></code></td>
 <td class="colLast"><code>true</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_ON_WRITE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_DATA_ON_WRITE">DEFAULT_CACHE_DATA_ON_WRITE</a></code></td>
 <td class="colLast"><code>false</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_INDEXES_ON_WRITE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_INDEXES_ON_WRITE">DEFAULT_CACHE_INDEXES_ON_WRITE</a></code></td>
 <td class="colLast"><code>false</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_EVICT_ON_CLOSE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_EVICT_ON_CLOSE">DEFAULT_EVICT_ON_CLOSE</a></code></td>
 <td class="colLast"><code>false</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_IN_MEMORY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_IN_MEMORY">DEFAULT_IN_MEMORY</a></code></td>
 <td class="colLast"><code>false</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_PREFETCH_ON_OPEN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_PREFETCH_ON_OPEN">DEFAULT_PREFETCH_ON_OPEN</a></code></td>
 <td class="colLast"><code>false</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DROP_BEHIND_CACHE_COMPACTION_DEFAULT">
 <!--   -->
-</a><code>private&nbsp;static&nbsp;final&nbsp;boolean</code></td>
+</a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
 <td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DROP_BEHIND_CACHE_COMPACTION_DEFAULT">DROP_BEHIND_CACHE_COMPACTION_DEFAULT</a></code></td>
 <td class="colLast"><code>true</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.DROP_BEHIND_CACHE_COMPACTION_KEY">
 <!--   -->
-</a><code>private&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>
+</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/io/hfile/CacheConfig.html#DROP_BEHIND_CACHE_COMPACTION_KEY">DROP_BEHIND_CACHE_COMPACTION_KEY</a></code></td>
 <td class="colLast"><code>"hbase.hfile.drop.behind.compaction"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.EVICT_BLOCKS_ON_CLOSE_KEY">
 <!--   -->
 </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/io/hfile/CacheConfig.html#EVICT_BLOCKS_ON_CLOSE_KEY">EVICT_BLOCKS_ON_CLOSE_KEY</a></code></td>
 <td class="colLast"><code>"hbase.rs.evictblocksonclose"</code></td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_CLASS_KEY">
-<!--   -->
-</a><code>private&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/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_CLASS_KEY">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></code></td>
-<td class="colLast"><code>"hbase.blockcache.external.class"</code></td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_DEFAULT">
-<!--   -->
-</a><code>private&nbsp;static&nbsp;final&nbsp;boolean</code></td>
-<td><code><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_DEFAULT">EXTERNAL_BLOCKCACHE_DEFAULT</a></code></td>
-<td class="colLast"><code>false</code></td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_KEY">
-<!--   -->
-</a><code>private&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/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_KEY">EXTERNAL_BLOCKCACHE_KEY</a></code></td>
-<td class="colLast"><code>"hbase.blockcache.use.external"</code></td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.io.hfile.CacheConfig.PREFETCH_BLOCKS_ON_OPEN_KEY">
 <!--   -->


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
index 1124f8b..0c29054 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html
@@ -1111,587 +1111,592 @@
 <span class="sourceLineNo">1103</span>          blockStream.write(midKeyMetadata);<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>        blockWriter.writeHeaderAndData(out);<a name="line.1104"></a>
 <span class="sourceLineNo">1105</span>        if (cacheConf != null) {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>          cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>            rootLevelIndexPos, true, blockForCaching.getBlockType()), blockForCaching);<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><a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      // Add root index block size<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      totalBlockUncompressedSize +=<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      if (LOG.isTraceEnabled()) {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>          " on-disk size, "<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>          " total uncompressed size.");<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      return rootLevelIndexPos;<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>    /**<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>     * block framing.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>     *<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>     *          stream writing into an {@link HFile} block.<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>     * @param description a short description of the index being written. Used<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>     *          in a log message.<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>     * @throws IOException<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>     */<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>        throws IOException {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      expectNumLevels(1);<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (!singleLevelOnly)<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>        throw new IOException("Single-level mode is turned off");<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        throw new IOException("Root-level entries already added in " +<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>            "single-level mode");<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span><a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      rootChunk = curInlineChunk;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>      if (LOG.isTraceEnabled()) {<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>          + " bytes");<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      }<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      rootChunk.writeRoot(out);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    /**<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>     * Split the current level of the block index into intermediate index<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>     *<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>     * @param out<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>     *          chunk referencing all leaf-level index blocks<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>     * @return the parent level block index, which becomes the root index after<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>     *         a few (usually zero) iterations<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>     * @throws IOException<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>     */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span><a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      // The current intermediate-level block index chunk.<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span><a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span><a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>          writeIntermediateBlock(out, parent, curChunk);<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>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>      }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      return parent;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>    }<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      long beginOffset = out.getPos();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      curChunk.writeNonRoot(dos);<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      blockWriter.writeHeaderAndData(out);<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      if (getCacheOnWrite()) {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>        HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>          beginOffset, true, blockForCaching.getBlockType()), blockForCaching);<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // Add intermediate index block size<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      totalBlockUncompressedSize +=<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1218"></a>
+<span class="sourceLineNo">1106</span>          cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>            HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>            cache.cacheBlock(new BlockCacheKey(nameForCaching, rootLevelIndexPos, true,<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                blockForCaching.getBlockType()), blockForCaching);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>          });<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      // Add root index block size<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      totalBlockUncompressedSize +=<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>      if (LOG.isTraceEnabled()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          " on-disk size, "<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>          " total uncompressed size.");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      return rootLevelIndexPos;<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    /**<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>     * block framing.<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>     *<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>     *          stream writing into an {@link HFile} block.<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>     * @param description a short description of the index being written. Used<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>     *          in a log message.<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>     * @throws IOException<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>     */<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        throws IOException {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      expectNumLevels(1);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      if (!singleLevelOnly)<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>        throw new IOException("Single-level mode is turned off");<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        throw new IOException("Root-level entries already added in " +<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>            "single-level mode");<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      rootChunk = curInlineChunk;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      if (LOG.isTraceEnabled()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          + " bytes");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>      }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      rootChunk.writeRoot(out);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>     * Split the current level of the block index into intermediate index<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>     *<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>     * @param out<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>     *          chunk referencing all leaf-level index blocks<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>     * @return the parent level block index, which becomes the root index after<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>     *         a few (usually zero) iterations<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>     * @throws IOException<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>     */<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span><a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>      // The current intermediate-level block index chunk.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span><a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>          writeIntermediateBlock(out, parent, curChunk);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span><a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      return parent;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>      long beginOffset = out.getPos();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      curChunk.writeNonRoot(dos);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      blockWriter.writeHeaderAndData(out);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (getCacheOnWrite()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>          cache.cacheBlock(<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>              new BlockCacheKey(nameForCaching, beginOffset, true, blockForCaching.getBlockType()),<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>              blockForCaching);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        });<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>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>      // + the secondary index size<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // entries.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      parent.add(curFirstKey, beginOffset,<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span><a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      // clear current block index chunk<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      curChunk.clear();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      curFirstKey = null;<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    }<a name="line.1231"></a>
+<span class="sourceLineNo">1220</span>      // Add intermediate index block size<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      totalBlockUncompressedSize +=<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span><a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      // + the secondary index size<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      // entries.<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      parent.add(curFirstKey, beginOffset,<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span><a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    /**<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>     * @return how many block index entries there are in the root level<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>     */<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    public final int getNumRootEntries() {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return rootChunk.getNumEntries();<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>     * @return the number of levels in this block index.<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>     */<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>    public int getNumLevels() {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>      return numLevels;<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    }<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span><a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>      if (numLevels != expectedNumLevels) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>            + numLevels + "but is expected to be " + expectedNumLevels);<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>     * Whether there is an inline block ready to be written. In general, we<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>     */<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    @Override<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>      if (singleLevelOnly) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span><a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      if (curInlineChunk == null) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>            "called with closing=true and then called again?");<a name="line.1267"></a>
+<span class="sourceLineNo">1233</span>      // clear current block index chunk<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>      curChunk.clear();<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>      curFirstKey = null;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>    }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span><a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    /**<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>     * @return how many block index entries there are in the root level<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>     */<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>    public final int getNumRootEntries() {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>      return rootChunk.getNumEntries();<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>    }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>    /**<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>     * @return the number of levels in this block index.<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>     */<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    public int getNumLevels() {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return numLevels;<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>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>      if (numLevels != expectedNumLevels) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>            + numLevels + "but is expected to be " + expectedNumLevels);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>      }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    /**<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>     * Whether there is an inline block ready to be written. In general, we<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>     */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>    @Override<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      if (singleLevelOnly) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<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>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        return false;<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      // We do have some entries in the current inline chunk.<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      if (closing) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>          // leaf level with one block, move these entries to the root level.<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          expectNumLevels(1);<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          rootChunk = curInlineChunk;<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          curInlineChunk = null;  // Disallow adding any more index entries.<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>          return false;<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>        return true;<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>      } else {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    /**<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>     * blocks, so the non-root index format is used.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>     *<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>     * @param out<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>     */<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>    @Override<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      if (singleLevelOnly)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span><a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>      // Write the inline block index to the output stream in the non-root<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      // index block format.<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      curInlineChunk.writeNonRoot(out);<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      // parent-level index.<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      // Start a new inline index block<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      curInlineChunk.clear();<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    }<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>     * Called after an inline block has been written so that we can add an<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>     * entry referring to that block to the parent-level index.<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>     */<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    @Override<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>      // Add leaf index block size<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      if (singleLevelOnly)<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span><a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      if (firstKey == null) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>            "but the first key was not set in writeInlineBlock");<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>      if (rootChunk.getNumEntries() == 0) {<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        // We are writing the first leaf block, so increase index level.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        expectNumLevels(1);<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        numLevels = 2;<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>      // Add another entry to the second-level index. Include the number of<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      firstKey = null;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    }<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span><a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    @Override<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    public BlockType getInlineBlockType() {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      return BlockType.LEAF_INDEX;<a name="line.1348"></a>
+<span class="sourceLineNo">1270</span>      if (curInlineChunk == null) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>            "called with closing=true and then called again?");<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>        return false;<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>      // We do have some entries in the current inline chunk.<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      if (closing) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>          // leaf level with one block, move these entries to the root level.<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          expectNumLevels(1);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          rootChunk = curInlineChunk;<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          curInlineChunk = null;  // Disallow adding any more index entries.<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><a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        return true;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    /**<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>     * blocks, so the non-root index format is used.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>     *<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>     * @param out<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>     */<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>    @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      if (singleLevelOnly)<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>      // Write the inline block index to the output stream in the non-root<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      // index block format.<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>      curInlineChunk.writeNonRoot(out);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span><a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>      // parent-level index.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>      // Start a new inline index block<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>      curInlineChunk.clear();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span><a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    /**<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>     * Called after an inline block has been written so that we can add an<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>     * entry referring to that block to the parent-level index.<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>     */<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    @Override<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>      // Add leaf index block size<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>      if (singleLevelOnly)<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>      if (firstKey == null) {<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>            "but the first key was not set in writeInlineBlock");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>      if (rootChunk.getNumEntries() == 0) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>        // We are writing the first leaf block, so increase index level.<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        expectNumLevels(1);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        numLevels = 2;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>      }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>      // Add another entry to the second-level index. Include the number of<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>      firstKey = null;<a name="line.1348"></a>
 <span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
 <span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    /**<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>     *<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>     * @param firstKey the first key of the data block<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>     * @param blockOffset the offset of the data block<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>     *          {@link HFile} format version 1).<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>     */<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      ++totalNumEntries;<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>     * @throws IOException if we happened to write a multi-level index.<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>     */<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    public void ensureSingleLevel() throws IOException {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>      if (numLevels &gt; 1) {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>            "this is expected to be a single-level block index.");<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<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>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>     *         or null.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>     */<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    @Override<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>    public boolean getCacheOnWrite() {<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>    }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>    /**<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>     * index blocks, and leaf-level index blocks.<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>     *<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>     * @return the total uncompressed size of all index blocks<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>     */<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>    public long getTotalUncompressedSize() {<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      return totalBlockUncompressedSize;<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>    }<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span><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>  /**<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>   * block.<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>   */<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  static class BlockIndexChunk {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span><a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    /** Block offset in backing stream. */<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span><a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>    /**<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>     */<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    /**<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>     */<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span><a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    /**<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1430"></a>
+<span class="sourceLineNo">1351</span>    @Override<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    public BlockType getInlineBlockType() {<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      return BlockType.LEAF_INDEX;<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>    /**<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>     *<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>     * @param firstKey the first key of the data block<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>     * @param blockOffset the offset of the data block<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>     *          {@link HFile} format version 1).<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>     */<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>      ++totalNumEntries;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span><a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    /**<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>     * @throws IOException if we happened to write a multi-level index.<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>     */<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>    public void ensureSingleLevel() throws IOException {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>      if (numLevels &gt; 1) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>            "this is expected to be a single-level block index.");<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    /**<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>     *         or null.<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>     */<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>    @Override<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>    public boolean getCacheOnWrite() {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>    }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>    /**<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>     * index blocks, and leaf-level index blocks.<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>     *<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>     * @return the total uncompressed size of all index blocks<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>     */<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    public long getTotalUncompressedSize() {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      return totalBlockUncompressedSize;<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span><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>  /**<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>   * block.<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>   */<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  static class BlockIndexChunk {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>    /** Block offset in backing stream. */<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span><a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    /**<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>     */<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>    /**<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1430"></a>
 <span class="sourceLineNo">1431</span>     */<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>    private int curTotalRootSize = 0;<a name="line.1432"></a>
+<span class="sourceLineNo">1432</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1432"></a>
 <span class="sourceLineNo">1433</span><a name="line.1433"></a>
 <span class="sourceLineNo">1434</span>    /**<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>     * The "secondary index" used for binary search over variable-length<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>     * end of this secondary index.<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>     */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span><a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>    /**<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>     * Adds a new entry to this block index chunk.<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>     *<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>     *          entry<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>     *          entry, including header size<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>     *          construction, this specifies the current total number of<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>     *          corresponding to the second-level entry being added.<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>     */<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        long curTotalNumSubEntries) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      // Record the offset for the secondary index<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>          + firstKey.length;<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span><a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span><a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      blockKeys.add(firstKey);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      blockOffsets.add(blockOffset);<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span><a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>      if (curTotalNumSubEntries != -1) {<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>        // Make sure the parallel arrays are in sync.<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>              "entries out of " + blockKeys.size());<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>        }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      }<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>    }<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span><a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    /**<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    public void clear() {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      blockKeys.clear();<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      blockOffsets.clear();<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>      onDiskDataSizes.clear();<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>      secondaryIndexOffsetMarks.clear();<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>      numSubEntriesAt.clear();<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      curTotalNonRootEntrySize = 0;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      curTotalRootSize = 0;<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    }<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span><a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    /**<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>     * ordering of sub-entries.<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>     *<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>     * &lt;p&gt;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>     * numSubEntriesAt.<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>     *<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>     *         sub-entry<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>     */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    public int getEntryBySubEntry(long k) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      // We define mid-key as the key corresponding to k'th sub-entry<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      // (0-based).<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      int i = Collections.binarySearch(numSubEntriesAt, k);<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span><a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      // Exact match: cumulativeWeight[i] = k. This means chunks #0 through<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>      // #i contain exactly k sub-entries, and the sub-entry #k (0-based)<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // is in the (i + 1)'th chunk.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (i &gt;= 0)<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        return i + 1;<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span><a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Inexact match. Return the insertion point.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      return -i - 1;<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>    /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>     * Used when writing the root block index of a multi-level block index.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>     * Serializes additional information allowing to efficiently identify the<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>     * mid-key.<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>     *<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>     * @return a few serialized fields for finding the mid-key<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>     * @throws IOException if could not create metadata for computing mid-key<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>     */<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    public byte[] getMidKeyMetadata() throws IOException {<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>      ByteArrayOutputStream baos = new ByteArrayOutputStream(<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>          MID_KEY_METADATA_SIZE);<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>      DataOutputStream baosDos = new DataOutputStream(baos);<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      long totalNumSubEntries = numSubEntriesAt.get(blockKeys.size() - 1);<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      if (totalNumSubEntries == 0) {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>        throw new IOException("No leaf-level entries, mid-key unavailable");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      }<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      long midKeySubEntry = (totalNumSubEntries - 1) / 2;<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      int midKeyEntry = getEntryBySubEntry(midKeySubEntry);<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span><a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      baosDos.writeLong(blockOffsets.get(midKeyEntry));<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      baosDos.writeInt(onDiskDataSizes.get(midKeyEntry));<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span><a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      long numSubEntriesBefore = midKeyEntry &gt; 0<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>          ? numSubEntriesAt.get(midKeyEntry - 1) : 0;<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      long subEntryWithinEntry = midKeySubEntry - numSubEntriesBefore;<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      if (subEntryWithinEntry &lt; 0 || subEntryWithinEntry &gt; Integer.MAX_VALUE)<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>        throw new IOException("Could not identify mid-key index within the "<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>            + "leaf-level block containing mid-key: out of range ("<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>            + subEntryWithinEntry + ", numSubEntriesBefore="<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>            + numSubEntriesBefore + ", midKeySubEntry=" + midKeySubEntry<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>            + ")");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      }<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span><a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      baosDos.writeInt((int) subEntryWithinEntry);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span><a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      if (baosDos.size() != MID_KEY_METADATA_SIZE) {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>        throw new IOException("Could not write mid-key metadata: size=" +<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>            baosDos.size() + ", correct size: " + MID_KEY_METADATA_SIZE);<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
+<span class="sourceLineNo">1435</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>     */<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>    private int curTotalRootSize = 0;<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span><a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>    /**<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>     * The "secondary index" used for binary search over variable-length<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>     * end of this secondary index.<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>     */<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    /**<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>     * Adds a new entry to this block index chunk.<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>     *<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>     *          entry<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>     *          entry, including header size<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>     *          construction, this specifies the current total number of<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>     *          corresponding to the second-level entry being added.<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>     */<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        long curTotalNumSubEntries) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>      // Record the offset for the secondary index<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>          + firstKey.length;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span><a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      blockKeys.add(firstKey);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>      blockOffsets.add(blockOffset);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      if (curTotalNumSubEntries != -1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        // Make sure the parallel arrays are in sync.<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>              "entries out of " + blockKeys.size());<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>        }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>    }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    /**<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>     * key/value into account. Used for single-level indexes.<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>     *<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>     * @see #add(byte[], long, int, long)<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>     */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span><a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    public void clear() {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      blockKeys.clear();<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>      blockOffsets.clear();<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      onDiskDataSizes.clear();<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      secondaryIndexOffsetMarks.clear();<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>      numSubEntriesAt.clear();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>      curTotalNonRootEntrySize = 0;<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>      curTotalRootSize = 0;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    }<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>    /**<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>     * ordering of sub-entries.<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>     *<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>     * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>     * numSubEntriesAt.<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>     *<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 2a04e97..5e273aa 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -5871,6 +5871,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/BBKVComparator.html#BBKVComparator-java.util.Comparator-">BBKVComparator(Comparator)</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/BBKVComparator.html" title="class in org.apache.hadoop.hbase">BBKVComparator</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#bc">bc</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmplImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#bcn">bcn</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmplImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#bcn">bcn</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a></dt>
@@ -6293,16 +6295,20 @@
 <div class="block">Block cache interface.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#blockCache">blockCache</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>
-<div class="block">Local reference to the block cache, null if completely disabled</div>
-</dd>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#blockCache">blockCache</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#blockCache">blockCache</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/HRegionServer.html#blockCache">blockCache</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#blockCache">blockCache</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/rest/model/ColumnSchemaModel.html#BLOCKCACHE">BLOCKCACHE</a></span> - Static variable in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/ColumnSchemaModel.html" title="class in org.apache.hadoop.hbase.rest.model">ColumnSchemaModel</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BLOCKCACHE_BLOCKSIZE_KEY">BLOCKCACHE_BLOCKSIZE_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#blockCache">blockCache</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmplImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#BLOCKCACHE_BLOCKSIZE_KEY">BLOCKCACHE_BLOCKSIZE_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>
 <div class="block">The target block size used by blockcache instances.</div>
 </dd>
@@ -6312,9 +6318,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.html#BLOCKCACHE_SIZE_GAUGE_NAME">BLOCKCACHE_SIZE_GAUGE_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsHeapMemoryManagerSource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#blockCacheDisabled">blockCacheDisabled</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory</span></a> - Class in <a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#BlockCacheFactory--">BlockCacheFactory()</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a> - Enum in <a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></dt>
 <dd>
-<div class="block">Boolean whether we have disabled the block cache entirely.</div>
+<div class="block">Enum of all built in external block caches.</div>
 </dd>
 <dt><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheKey</span></a> - Class in <a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></dt>
 <dd>
@@ -6842,7 +6852,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html#Bucket-long-">Bucket(long)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator.Bucket</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_BUCKETS_KEY">BUCKET_CACHE_BUCKETS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_BUCKETS_KEY">BUCKET_CACHE_BUCKETS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>
 <div class="block">A comma-delimited array of values for use as bucket sizes.</div>
 </dd>
@@ -6851,7 +6861,7 @@
 <div class="block">Current ioengine options in include: heap, offheap and file:PATH (where PATH is the path
  to the file that will host the file-based cache.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_PERSISTENT_PATH_KEY">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_PERSISTENT_PATH_KEY">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>
 <div class="block">If the chosen ioengine can persist its state across restarts, the path to the file to persist
  to.</div>
@@ -6862,9 +6872,9 @@
  memory size to give to the cache (if &lt; 1.0) OR, it is the capacity in
  megabytes of the cache.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_QUEUE_KEY">BUCKET_CACHE_WRITER_QUEUE_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_WRITER_QUEUE_KEY">BUCKET_CACHE_WRITER_QUEUE_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_THREADS_KEY">BUCKET_CACHE_WRITER_THREADS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_WRITER_THREADS_KEY">BUCKET_CACHE_WRITER_THREADS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="typeNameLink">BucketAllocator</span></a> - Class in <a href="org/apache/hadoop/hbase/io/hfile/bucket/package-summary.html">org.apache.hadoop.hbase.io.hfile.bucket</a></dt>
 <dd>
@@ -8226,19 +8236,17 @@
 <dd>
 <div class="block">Stores all of the cache objects and configuration for a single HFile.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">CacheConfig(Configuration, ColumnFamilyDescriptor)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>
-<div class="block">Create a cache configuration using the specified configuration object and
- family descriptor.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-">CacheConfig(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
 <dd>
 <div class="block">Create a cache configuration using the specified configuration object and
  defaults for family level settings.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.hbase.io.hfile.BlockCache-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">CacheConfig(BlockCache, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">CacheConfig(Configuration, BlockCache)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-org.apache.hadoop.hbase.io.hfile.BlockCache-">CacheConfig(Configuration, ColumnFamilyDescriptor, BlockCache)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
 <dd>
-<div class="block">Create a block cache configuration with the specified cache and configuration parameters.</div>
+<div class="block">Create a cache configuration using the specified configuration object and
+ family descriptor.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.hbase.io.hfile.CacheConfig-">CacheConfig(CacheConfig)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
 <dd>
@@ -8246,16 +8254,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig--">CacheConfig()</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#cacheConfig">cacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmplImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#cacheConfig">cacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmplImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><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> - Enum in <a href="org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></dt>
-<dd>
-<div class="block">Enum of all built in external block caches.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/ExistsResource.html#cacheControl">cacheControl</a></span> - Static variable in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/ExistsResource.html" title="class in org.apache.hadoop.hbase.rest">ExistsResource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/RegionsResource.html#cacheControl">cacheControl</a></span> - Static variable in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/RegionsResource.html" title="class in org.apache.hadoop.hbase.rest">RegionsResource</a></dt>
@@ -11672,7 +11674,7 @@
 </dd>
 <dt><a href="org/apache/hadoop/hbase/util/ClassSize.UnsafeLayout.HeaderSize.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">ClassSize.UnsafeLayout.HeaderSize</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#clazz">clazz</a></span> - Variable in enum 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">CacheConfig.ExternalBlockCaches</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#clazz">clazz</a></span> - Variable in enum org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.HBaseDatagramChannelFactory.html#clazz">clazz</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.HBaseDatagramChannelFactory.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher.MulticastPublisher.HBaseDatagramChannelFactory</a></dt>
 <dd>&nbsp;</dd>
@@ -12298,8 +12300,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html#clearFiles--">clearFiles()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#clearGlobalInstances--">clearGlobalInstances()</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/AbstractByteRange.html#clearHashCache--">clearHashCache()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/metrics2/impl/JmxCacheBuster.html#clearJmxCache--">clearJmxCache()</a></span> - Static method in class org.apache.hadoop.metrics2.impl.<a href="org/apache/hadoop/metrics2/impl/JmxCacheBuster.html" title="class in org.apache.hadoop.metrics2.impl">JmxCacheBuster</a></dt>
@@ -19167,8 +19167,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/handler/UnassignRegionHandler.html#create-org.apache.hadoop.hbase.regionserver.RegionServerServices-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">create(RegionServerServices, String, boolean, ServerName)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.handler.<a href="org/apache/hadoop/hbase/regionserver/handler/UnassignRegionHandler.html" title="class in org.apache.hadoop.hbase.regionserver.handler">UnassignRegionHandler</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">create(Configuration, FlushRequester, Server, RegionServerAccounting)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#create-org.apache.hadoop.hbase.regionserver.HRegionServer-">create(HRegionServer)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MasterFifoRpcSchedulerFactory.html#create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.ipc.PriorityFunction-org.apache.hadoop.hbase.Abortable-">create(Configuration, PriorityFunction, Abortable)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MasterFifoRpcSchedulerFactory.html" title="class in org.apache.hadoop.hbase.regionserver">MasterFifoRpcSchedulerFactory</a></dt>
@@ -19378,6 +19376,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.html#createBlockAdder--">createBlockAdder()</a></span> - Static method in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputHelper</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createBlockCache-org.apache.hadoop.conf.Configuration-">createBlockCache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ProcedurePrepareLatch.html#createBlockingLatch--">createBlockingLatch()</a></span> - Static method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ProcedurePrepareLatch.html" title="class in org.apache.hadoop.hbase.master.procedure">ProcedurePrepareLatch</a></dt>
 <dd>
 <div class="block">Creates a latch which blocks.</div>
@@ -19390,6 +19390,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/Reference.html#createBottomReference-byte:A-">createBottomReference(byte[])</a></span> - Static method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createBucketCache-org.apache.hadoop.conf.Configuration-">createBucketCache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteBufferArray.html#createBuffers-org.apache.hadoop.hbase.util.ByteBufferAllocator-">createBuffers(ByteBufferAllocator)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferArray.html" title="class in org.apache.hadoop.hbase.util">ByteBufferArray</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALEdit.html#createBulkLoadEvent-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.BulkLoadDescriptor-">createBulkLoadEvent(RegionInfo, WALProtos.BulkLoadDescriptor)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a></dt>
@@ -19410,10 +19412,6 @@
 <dd>
 <div class="block">Create a cache for region to list of servers</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HMobStore.html#createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">createCacheConf(ColumnFamilyDescriptor)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HMobStore.html" title="class in org.apache.hadoop.hbase.regionserver">HMobStore</a></dt>
-<dd>
-<div class="block">Creates the mob cache config.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">createCacheConf(ColumnFamilyDescriptor)</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>
 <div class="block">Creates the cache config.</div>
@@ -19970,6 +19968,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html#createExecutorService--">createExecutorService()</a></span> - Method in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.tool">LoadIncrementalHFiles</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createExternalBlockcache-org.apache.hadoop.conf.Configuration-">createExternalBlockcache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.html#createFamilyBlockSizeMap-org.apache.hadoop.conf.Configuration-">createFamilyBlockSizeMap(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.html" title="class in org.apache.hadoop.hbase.mapreduce">HFileOutputFormat2</a></dt>
 <dd>
 <div class="block">Runs inside the task to deserialize column family to block size
@@ -20579,6 +20579,8 @@
 <dd>
 <div class="block">Create one TransitRegionStateProcedure to unassign a region.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createOnHeapCache-org.apache.hadoop.conf.Configuration-">createOnHeapCache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#createOptionGroup--">createOptionGroup()</a></span> - Static method in enum org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/NamespacesInstanceResource.html#createOrUpdate-org.apache.hadoop.hbase.rest.model.NamespacesInstanceModel-javax.ws.rs.core.UriInfo-org.apache.hadoop.hbase.client.Admin-boolean-">createOrUpdate(NamespacesInstanceModel, UriInfo, Admin, boolean)</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/NamespacesInstanceResource.html" title="class in org.apache.hadoop.hbase.rest">NamespacesInstanceResource</a></dt>
@@ -23098,9 +23100,9 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_QUEUE">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#DEFAULT_BUCKET_CACHE_WRITER_QUEUE">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_THREADS">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#DEFAULT_BUCKET_CACHE_WRITER_THREADS">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>
 <div class="block">Defaults for Bucket cache</div>
 </dd>
@@ -30355,15 +30357,15 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteBufferUtils.html#extendLimit-java.nio.ByteBuffer-int-">extendLimit(ByteBuffer, int)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferUtils.html" title="class in org.apache.hadoop.hbase.util">ByteBufferUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_CLASS_KEY">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_CLASS_KEY">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_DEFAULT">EXTERNAL_BLOCKCACHE_DEFAULT</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_DEFAULT">EXTERNAL_BLOCKCACHE_DEFAULT</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_KEY">EXTERNAL_BLOCKCACHE_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_KEY">EXTERNAL_BLOCKCACHE_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#ExternalBlockCaches-java.lang.String-">ExternalBlockCaches(String)</a></span> - Constructor for enum 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">CacheConfig.ExternalBlockCaches</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#ExternalBlockCaches-java.lang.String-">ExternalBlockCaches(String)</a></span> - Constructor for enum org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#ExternalBlockCaches-java.lang.Class-">ExternalBlockCaches(Class&lt;? extends BlockCache&gt;)</a></span> - Constructor for enum 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">CacheConfig.ExternalBlockCaches</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#ExternalBlockCaches-java.lang.Class-">ExternalBlockCaches(Class&lt;? extends BlockCache&gt;)</a></span> - Constructor for enum org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html#EXTRA_FREE_FACTOR_CONFIG_NAME">EXTRA_FREE_FACTOR_CONFIG_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></dt>
 <dd>&nbsp;</dd>
@@ -35799,6 +35801,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/HashTable.ResultHasher.html#getBatchStartKey--">getBatchStartKey()</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/HashTable.ResultHasher.html" title="class in org.apache.hadoop.hbase.mapreduce">HashTable.ResultHasher</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#getBc--">getBc()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#getBcn--">getBcn()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#getBcn--">getBcn()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></dt>
@@ -35867,6 +35871,16 @@
 <dd>
 <div class="block">Returns the block cache.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#getBlockCache--">getBlockCache()</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>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#getBlockCache--">getBlockCache()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
+<dd>
+<div class="block">May be null if this is a master which not carry table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getBlockCache--">getBlockCache()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#getBlockCache--">getBlockCache()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheCount--">getBlockCacheCount()</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 items in the block cache.</div>
@@ -36106,10 +36120,10 @@
 <div class="block">Create a new CachedThreadPool with a bounded number as the maximum
  thread size in the pool.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getBucketCache-org.apache.hadoop.conf.Configuration-">getBucketCache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/util/MemorySizeUtil.html#getBucketCacheSize-org.apache.hadoop.conf.Configuration-">getBucketCacheSize(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.util.<a href="org/apache/hadoop/hbase/io/util/MemorySizeUtil.html" title="class in org.apache.hadoop.hbase.io.util">MemorySizeUtil</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getBucketCacheStats--">getBucketCacheStats()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CombinedBlockCache.CombinedCacheStats</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html#getBucketIndex-long-">getBucketIndex(long)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#getBucketIndex-java.lang.Object:A-int-">getBucketIndex(Object[], int)</a></span> - Static method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureScheduler</a></dt>
@@ -36309,8 +36323,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStoreFile.html#getCacheConf--">getCacheConf()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig--">getCacheConfig()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getCacheConfig--">getCacheConfig()</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>
 <div class="block">Used for tests.</div>
@@ -39438,8 +39450,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/CellVisibility.html#getExpression--">getExpression()</a></span> - Method in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/CellVisibility.html" title="class in org.apache.hadoop.hbase.security.visibility">CellVisibility</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getExternalBlockcache-org.apache.hadoop.conf.Configuration-">getExternalBlockcache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/CoprocessorHost.html#getExternalClassLoaders--">getExternalClassLoaders()</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/CoprocessorHost.html" title="class in org.apache.hadoop.hbase.coprocessor">CoprocessorHost</a></dt>
 <dd>
 <div class="block">Retrieves the set of classloaders used to instantiate Coprocessor classes defined in external
@@ -41588,8 +41598,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#getL2CacheMissRatio--">getL2CacheMissRatio()</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/io/hfile/CacheConfig.html#getL2CacheStats--">getL2CacheStats()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/VisibilityLabelOrdinalProvider.html#getLabel-int-">getLabel(int)</a></span> - Method in interface org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/VisibilityLabelOrdinalProvider.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityLabelOrdinalProvider</a></dt>
 <dd>
 <div class="block">Returns the string associated with the ordinal.</div>
@@ -42398,6 +42406,8 @@
 <dd>
 <div class="block">Gets lowest timestamp from candidate StoreFiles</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getLruCacheStats--">getLruCacheStats()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CombinedBlockCache.CombinedCacheStats</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getMajorCompactedCellsCount--">getMajorCompactedCellsCount()</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#getMajorCompactedCellsCount--">getMajorCompactedCellsCount()</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>
@@ -43786,10 +43796,14 @@
 <dd>
 <div class="block">Gets the family dir of the mob files.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html#getMobFileCache--">getMobFileCache()</a></span> - Method in class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#getMobFileCache--">getMobFileCache()</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>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMobFileCache--">getMobFileCache()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
 <dd>
-<div class="block">Gets the MobFileCache.</div>
+<div class="block">May be null if this is a master which not carry table.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getMobFileCache--">getMobFileCache()</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getMobFileCacheAccessCount--">getMobFileCacheAccessCount()</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">Gets the count of accesses to the mob file cache.</div>
@@ -45192,14 +45206,10 @@
 <dd>
 <div class="block">Check if any ongoing backup.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCache-org.apache.hadoop.conf.Configuration-">getOnHeapCache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCacheInternal-org.apache.hadoop.conf.Configuration-">getOnHeapCacheInternal(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getOnHeapCache--">getOnHeapCache()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">CombinedBlockCache</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/util/MemorySizeUtil.html#getOnHeapCacheSize-org.apache.hadoop.conf.Configuration-">getOnHeapCacheSize(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.util.<a href="org/apache/hadoop/hbase/io/util/MemorySizeUtil.html" title="class in org.apache.hadoop.hbase.io.util">MemorySizeUtil</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCacheStats--">getOnHeapCacheStats()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/util/MemorySizeUtil.html#getOnheapGlobalMemStoreSize-org.apache.hadoop.conf.Configuration-">getOnheapGlobalMemStoreSize(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.util.<a href="org/apache/hadoop/hbase/io/util/MemorySizeUtil.html" title="class in org.apache.hadoop.hbase.io.util">MemorySizeUtil</a></dt>
 <dd>
 <div class="block">Returns the onheap global memstore limit based on the config
@@ -55126,11 +55136,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/MetricRegistries.LazyHolder.html#GLOBAL">GLOBAL</a></span> - Static variable in class org.apache.hadoop.hbase.metrics.<a href="org/apache/hadoop/hbase/metrics/MetricRegistries.LazyHolder.html" title="class in org.apache.hadoop.hbase.metrics">MetricRegistries.LazyHolder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#GLOBAL_BLOCK_CACHE_INSTANCE">GLOBAL_BLOCK_CACHE_INSTANCE</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>
-<div class="block">Static reference to the block cache, or null if no caching should be used
- at all.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AuthManager.html#globalCache">globalCache</a></span> - Variable in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AuthManager.html" title="class in org.apache.hadoop.hbase.security.access">AuthManager</a></dt>
 <dd>
 <div class="block">Cache for global permission.</div>
@@ -57778,7 +57783,7 @@
 <dd>
 <div class="block">Manages tuning of Heap memory using <code>HeapMemoryTuner</code>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.ResizableBlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager(ResizableBlockCache, FlushRequester, Server, RegionServerAccounting)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager(BlockCache, FlushRequester, Server, RegionServerAccounting)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/HeapMemoryManager.HeapMemoryTuneObserver.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HeapMemoryManager.HeapMemoryTuneObserver</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>
@@ -58698,6 +58703,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html#holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">holdLock(MasterProcedureEnv)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">DisableTableProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">holdLock(MasterProcedureEnv)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html#holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">holdLock(MasterProcedureEnv)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TruncateTableProcedure</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html#holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">holdLock(MasterProcedureEnv)</a></span> - Method in class org.apache.hadoop.hbase.master.replication.<a href="org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication">AbstractPeerProcedure</a></dt>
@@ -61416,10 +61423,7 @@
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#initAndStartReplicationEndpoint-org.apache.hadoop.hbase.replication.ReplicationEndpoint-">initAndStartReplicationEndpoint(ReplicationEndpoint)</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#initBlockCache--">initBlockCache()</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>
-<div class="block">It's possible that due to threading the block cache could not be initialized
- yet (testing multiple region servers in one jvm).</div>
-</dd>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.html#initByteBuffToReadInto-int-">initByteBuffToReadInto(int)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.html" title="class in org.apache.hadoop.hbase.ipc">SimpleServerRpcConnection</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.html#initCache--">initCache()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.html" title="class in org.apache.hadoop.hbase.client">ClientAsyncPrefetchScanner</a></dt>
@@ -62285,10 +62289,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ReflectionUtils.html#instantiate-java.lang.String-java.lang.reflect.Constructor-java.lang.Object:A-">instantiate(String, Constructor&lt;T&gt;, Object[])</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ReflectionUtils.html" title="class in org.apache.hadoop.hbase.util">ReflectionUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#instantiateBlockCache-org.apache.hadoop.conf.Configuration-">instantiateBlockCache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>
-<div class="block">Returns the block cache or <code>null</code> in case none should be used.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html#instantiateBucket-org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator.Bucket-">instantiateBucket(BucketAllocator.Bucket)</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator.BucketSizeInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ScannerCallable.html#instantiated">instantiated</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a></dt>
@@ -62302,10 +62302,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#instantiateHStore-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">instantiateHStore(ColumnFamilyDescriptor)</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>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html#instantiateMobFileCache-org.apache.hadoop.conf.Configuration-">instantiateMobFileCache(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dt>
-<dd>
-<div class="block">Instantiates the MobFileCache.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#instantiateRegionScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-">instantiateRegionScanner(Scan, List&lt;KeyValueScanner&gt;)</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>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#instantiateRegionScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-long-long-">instantiateRegionScanner(Scan, List&lt;KeyValueScanner&gt;, long, long)</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>
@@ -62993,10 +62989,6 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#isBlockCacheEnabled--">isBlockCacheEnabled()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>
-<div class="block">Checks whether the block cache is enabled.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/DemoClient.html#isBoolean-java.lang.String-">isBoolean(String)</a></span> - Static method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/DemoClient.html" title="class in org.apache.hadoop.hbase.thrift">DemoClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html#isBroken--">isBroken()</a></span> - Method in interface org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a></dt>
@@ -65860,12 +65852,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep(TEnvironment)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#isYieldBeforeExecuteFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">isYieldBeforeExecuteFromState(MasterProcedureEnv, MasterProcedureProtos.ServerCrashState)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashProcedure</a></dt>
-<dd>
-<div class="block">For this procedure, yield at end of each successful flow step so that all crashed servers
- can make progress rather than do the default which has each procedure running to completion
- before we move to the next.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState(TEnvironment, TState)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></dt>
 <dd>
 <div class="block">By default, the executor will try ro run all the steps of the procedure start to finish.</div>
@@ -66913,8 +66899,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#L2_CACHE_HIT_RATIO_DESC">L2_CACHE_HIT_RATIO_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/io/hfile/CacheConfig.html#L2_CACHE_INSTANCE">L2_CACHE_INSTANCE</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#L2_CACHE_MISS_COUNT">L2_CACHE_MISS_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/MetricsRegionServerSource.html#L2_CACHE_MISS_COUNT_DESC">L2_CACHE_MISS_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>
@@ -69339,6 +69323,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/HalfStoreFileReader.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/HalfStoreFileReader.html" title="class in org.apache.hadoop.hbase.io">HalfStoreFileReader</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheUtil</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a></dt>
@@ -71075,6 +71061,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#m_assignmentManager__IsNotDefault">m_assignmentManager__IsNotDefault</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl.ImplData</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#m_bc">m_bc</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_bcn">m_bcn</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#m_bcn">m_bcn</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></dt>
@@ -71087,6 +71075,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#m_bcv__IsNotDefault">m_bcv__IsNotDefault</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_blockCache">m_blockCache</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#m_cacheConfig">m_cacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_cacheConfig">m_cacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a></dt>
@@ -71731,9 +71721,9 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.html#makeRenderer-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.master.ServerManager-">makeRenderer(HMaster, ServerManager)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">RSGroupListTmpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">makeRenderer(CacheConfig, Configuration)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer(CacheConfig, Configuration, BlockCache)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">makeRenderer(CacheConfig, Configuration, String, String)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer(CacheConfig, Configuration, String, String, BlockCache)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#makeRenderer-org.apache.hadoop.hbase.regionserver.HRegionServer-java.util.List-">makeRenderer(HRegionServer, List&lt;RegionInfo&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl</a></dt>
 <dd>&nbsp;</dd>
@@ -75981,18 +75971,6 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
-<dt><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">MobCacheConfig</span></a> - Class in <a href="org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></dt>
-<dd>
-<div class="block">The cache configuration for the mob.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">MobCacheConfig(Configuration, ColumnFamilyDescriptor)</a></span> - Constructor for class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-">MobCacheConfig(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HMobStore.html#mobCacheConfig">mobCacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HMobStore.html" title="class in org.apache.hadoop.hbase.regionserver">HMobStore</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#mobCacheConfig">mobCacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/DefaultMobStoreFlusher.html#mobCellValueSizeThreshold">mobCellValueSizeThreshold</a></span> - Variable in class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/DefaultMobStoreFlusher.html" title="class in org.apache.hadoop.hbase.mob">DefaultMobStoreFlusher</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/HMaster.html#mobCompactChore">mobCompactChore</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>
@@ -76049,14 +76027,18 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobFile.html#MobFile-org.apache.hadoop.hbase.regionserver.HStoreFile-">MobFile(HStoreFile)</a></span> - Constructor for class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html#mobFileCache">mobFileCache</a></span> - Static variable in class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">MobFileCache</span></a> - Class in <a href="org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></dt>
 <dd>
 <div class="block">The cache for mob files.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobFileCache.html#MobFileCache-org.apache.hadoop.conf.Configuration-">MobFileCache(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HMobStore.html#mobFileCache">mobFileCache</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HMobStore.html" title="class in org.apache.hadoop.hbase.regionserver">HMobStore</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#mobFileCache">mobFileCache</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/HRegionServer.html#mobFileCache">mobFileCache</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#mobFileCache">mobFileCache</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><a href="org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">MobFileCache.EvictionThread</span></a> - Class in <a href="org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></dt>
@@ -80293,8 +80275,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.TableProcedureBiConsumer.html#onFinished--">onFinished()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">RawAsyncHBaseAdmin.TableProcedureBiConsumer</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#ONHEAP_CACHE_INSTANCE">ONHEAP_CACHE_INSTANCE</a></span> - Static variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#onHeapCache">onHeapCache</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">CombinedBlockCache</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/OnheapChunk.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">OnheapChunk</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
@@ -80514,7 +80494,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.html#openConnection-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">openConnection(Configuration, String, String)</a></span> - Static method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.html" title="class in org.apache.hadoop.hbase.mapreduce">SyncTable.SyncMapper</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.mob.MobCacheConfig-">openFile(FileSystem, Path, MobCacheConfig)</a></span> - Method in class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.hfile.CacheConfig-">openFile(FileSystem, Path, CacheConfig)</a></span> - Method in class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></dt>
 <dd>
 <div class="block">Opens a mob file.</div>
 </dd>
@@ -93690,9 +93670,9 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.master.ServerManager-">render(Writer, HMaster, ServerManager)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">RSGroupListTmpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">render(Writer, CacheConfig, Configuration)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">render(Writer, CacheConfig, Configuration, BlockCache)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">render(Writer, CacheConfig, Configuration, String, String)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">render(Writer, CacheConfig, Configuration, String, String, BlockCache)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-java.util.List-">render(Writer, HRegionServer, List&lt;RegionInfo&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/RegionListTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RegionListTmpl</a></dt>
 <dd>&nbsp;</dd>
@@ -93734,13 +93714,13 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html#renderNoFlush-java.io.Writer-">renderNoFlush(Writer)</a></span> - Method in interface org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.Intf</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">renderNoFlush(Writer, CacheConfig, Configuration)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">renderNoFlush(Writer, CacheConfig, Configuration, BlockCache)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#renderNoFlush-java.io.Writer-">renderNoFlush(Writer)</a></span> - Method in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmplImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html#renderNoFlush-java.io.Writer-">renderNoFlush(Writer)</a></span> - Method in interface org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.Intf</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.Strin

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html b/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html
deleted file mode 100644
index 7fec611..0000000
--- a/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html
+++ /dev/null
@@ -1,372 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>MobCacheConfig (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MobCacheConfig (Apache HBase 3.0.0-SNAPSHOT API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10,"i1":9};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static 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>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/MobCacheConfig.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/mob/MobCacheConfig.html" target="_top">Frames</a></li>
-<li><a href="MobCacheConfig.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<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>
-</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>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.mob</div>
-<h2 title="Class MobCacheConfig" class="title">Class MobCacheConfig</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li><a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">org.apache.hadoop.hbase.io.hfile.CacheConfig</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.mob.MobCacheConfig</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<hr>
-<br>
-<pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.31">MobCacheConfig</a>
-extends <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></pre>
-<div class="block">The cache configuration for the mob.</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.io.hfile.CacheConfig">
-<!--   -->
-</a>
-<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.io.hfile.<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BLOCKCACHE_BLOCKSIZE_KEY">BLOCKCACHE_BLOCKSIZE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_BUCKETS_KEY">BUCKET_CACHE_BUCKETS_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_PERSISTENT_PATH_KEY">BUCKET_CACHE_PERSISTENT_PATH_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_QUEUE_KEY">BUCKET_CACHE_WRITER_QUEUE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_THREADS_KEY">BUCKET_CACHE_WRITER_THREADS_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CACHE_BLOCKS_ON_WRITE_KEY">CACHE_BLOCKS_ON_WRITE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CACHE_BLOOM_BLOCKS_ON_WRITE_KEY">CACHE_BLOOM_BLOCKS_ON_WRITE_KEY</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/io/hfile/CacheConfig.html#CACHE_DATA_BLOCKS_COMPRESSED_KEY">CACHE_DATA_BLOCKS_COMPRESSED_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CACHE_DATA_ON_READ_KEY">CACHE_DATA_ON_READ_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CACHE_INDEX_BLOCKS_ON_WRITE_KEY">CACHE_INDEX_BLOCKS_ON_WRITE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_QUEUE">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_THREADS">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_BLOOMS_ON_WRITE">DEFAULT_CACHE_BLOOMS_ON_WRITE</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_DATA_COMPRESSED">DEFAULT_CACHE_DATA_COMPRESSED</a>, <a href="../../../../../or
 g/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_DATA_ON_READ">DEFAULT_CACHE_DATA_ON_READ</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_DATA_ON_WRITE">DEFAULT_CACHE_DATA_ON_WRITE</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_INDEXES_ON_WRITE">DEFAULT_CACHE_INDEXES_ON_WRITE</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_EVICT_ON_CLOSE">DEFAULT_EVICT_ON_CLOSE</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_IN_MEMORY">DEFAULT_IN_MEMORY</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_PREFETCH_ON_OPEN">DEFAULT_PREFETCH_ON_OPEN</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DISABLED">DISABLED</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#EVICT_BLOCKS_ON_CLOSE_KEY">EVICT_BLOCKS_ON_CLOSE_KEY</a>, <a href="
 ../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#PREFETCH_BLOCKS_ON_OPEN_KEY">PREFETCH_BLOCKS_ON_OPEN_KEY</a></code></li>
-</ul>
-</li>
-</ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<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/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-">MobCacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">MobCacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-              <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#getMobFileCache--">getMobFileCache</a></span>()</code>
-<div class="block">Gets the MobFileCache.</div>
-</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#instantiateMobFileCache-org.apache.hadoop.conf.Configuration-">instantiateMobFileCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
-<div class="block">Instantiates the MobFileCache.</div>
-</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.io.hfile.CacheConfig">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.io.hfile.<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getBlockCache--">getBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getL2CacheStats--">getL2CacheStats</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCache-org.apache.hadoop.conf.Configuration-">getOnHeapCache</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCacheStats--">getOnHeapCacheStats</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#instantiateBlockCache-org.apache.hadoop.conf.Configuration-">instantiateBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#isBlockCacheEnabled--">isBlockCacheEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#isInMemory--">isInMemory</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#setCacheDataOnWrite-boolean-">setCa
 cheDataOnWrite</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#setEvictOnClose-boolean-">setEvictOnClose</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheBlockOnRead-org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory-">shouldCacheBlockOnRead</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheBloomsOnWrite--">shouldCacheBloomsOnWrite</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheCompressed-org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory-">shouldCacheCompressed</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheDataCompressed--">shouldCacheDataCompressed</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheDataOnRead--">shouldCacheDataOnRead</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheDataOnWrite--
 ">shouldCacheDataOnWrite</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheIndexesOnWrite--">shouldCacheIndexesOnWrite</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldDropBehindCompaction--">shouldDropBehindCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldEvictOnClose--">shouldEvictOnClose</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldLockOnCacheMiss-org.apache.hadoop.hbase.io.hfile.BlockType-">shouldLockOnCacheMiss</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldPrefetchOnOpen--">shouldPrefetchOnOpen</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldReadBlockFromCache-org.apache.hadoop.hbase.io.hfile.BlockType-">shouldReadBlockFromCache</a>, <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#toString--">toString</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<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></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <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>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <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>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.detail">
-<!--   -->
-</a>
-<h3>Field Detail</h3>
-<a name="mobFileCache">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>mobFileCache</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.33">mobFileCache</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="MobCacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>MobCacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.35">MobCacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                      <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</pre>
-</li>
-</ul>
-<a name="MobCacheConfig-org.apache.hadoop.conf.Configuration-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>MobCacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.40">MobCacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="instantiateMobFileCache-org.apache.hadoop.conf.Configuration-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>instantiateMobFileCache</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.50">instantiateMobFileCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
-<div class="block">Instantiates the MobFileCache.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>conf</code> - The current configuration.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>The current instance of MobFileCache.</dd>
-</dl>
-</li>
-</ul>
-<a name="getMobFileCache--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>getMobFileCache</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.61">getMobFileCache</a>()</pre>
-<div class="block">Gets the MobFileCache.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>The MobFileCache.</dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/MobCacheConfig.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/mob/MobCacheConfig.html" target="_top">Frames</a></li>
-<li><a href="MobCacheConfig.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<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>
-</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>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/MobConstants.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/MobConstants.html b/devapidocs/org/apache/hadoop/hbase/mob/MobConstants.html
index e9f3e90..a30b2ae 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/MobConstants.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/MobConstants.html
@@ -43,7 +43,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -758,7 +758,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html b/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html
index cf23a01..447b33d 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.60">MobFileCache.EvictionThread</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.61">MobFileCache.EvictionThread</a>
 extends <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></pre>
 </li>
 </ul>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lru</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html#line.61">lru</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html#line.62">lru</a></pre>
 </li>
 </ul>
 </li>
@@ -256,7 +256,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EvictionThread</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html#line.63">EvictionThread</a>(<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;lru)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html#line.64">EvictionThread</a>(<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;lru)</pre>
 </li>
 </ul>
 </li>
@@ -273,7 +273,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html#line.70">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html#line.71">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/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.html b/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.html
index b8566af..e30fc0c 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/MobFileCache.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.51">MobFileCache</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.52">MobFileCache</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">The cache for mob files.
  This cache doesn't cache the mob file blocks. It only caches the references of mob files.
@@ -296,9 +296,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.mob.MobCacheConfig-">openFile</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.hfile.CacheConfig-">openFile</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
         org.apache.hadoop.fs.Path&nbsp;path,
-        <a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a>&nbsp;cacheConf)</code>
+        <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</code>
 <div class="block">Opens a mob file.</div>
 </td>
 </tr>
@@ -340,7 +340,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <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/mob/MobFileCache.html#line.53">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.54">LOG</a></pre>
 </li>
 </ul>
 <a name="map">
@@ -349,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>map</h4>
-<pre>private&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;<a href="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/mob/CachedMobFile.html" title="class in org.apache.hadoop.hbase.mob">CachedMobFile</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.76">map</a></pre>
+<pre>private&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;<a href="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/mob/CachedMobFile.html" title="class in org.apache.hadoop.hbase.mob">CachedMobFile</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.77">map</a></pre>
 </li>
 </ul>
 <a name="count">
@@ -358,7 +358,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>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/mob/MobFileCache.html#line.78">count</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/mob/MobFileCache.html#line.79">count</a></pre>
 </li>
 </ul>
 <a name="lastAccess">
@@ -367,7 +367,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lastAccess</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.79">lastAccess</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.80">lastAccess</a></pre>
 </li>
 </ul>
 <a name="miss">
@@ -376,7 +376,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>miss</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.80">miss</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.81">miss</a></pre>
 </li>
 </ul>
 <a name="lastMiss">
@@ -385,7 +385,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lastMiss</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.81">lastMiss</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.82">lastMiss</a></pre>
 </li>
 </ul>
 <a name="evictedFileCount">
@@ -394,7 +394,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>evictedFileCount</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.82">evictedFileCount</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.83">evictedFileCount</a></pre>
 </li>
 </ul>
 <a name="lastEvictedFileCount">
@@ -403,7 +403,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lastEvictedFileCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.83">lastEvictedFileCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.84">lastEvictedFileCount</a></pre>
 </li>
 </ul>
 <a name="evictionLock">
@@ -412,7 +412,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>evictionLock</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.87">evictionLock</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.88">evictionLock</a></pre>
 </li>
 </ul>
 <a name="keyLock">
@@ -421,7 +421,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>keyLock</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html" title="class in org.apache.hadoop.hbase.util">IdLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.90">keyLock</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html" title="class in org.apache.hadoop.hbase.util">IdLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.91">keyLock</a></pre>
 </li>
 </ul>
 <a name="scheduleThreadPool">
@@ -430,7 +430,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>scheduleThreadPool</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.92">scheduleThreadPool</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.93">scheduleThreadPool</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -439,7 +439,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>private final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.94">conf</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.95">conf</a></pre>
 </li>
 </ul>
 <a name="mobFileMaxCacheSize">
@@ -448,7 +448,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFileMaxCacheSize</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.97">mobFileMaxCacheSize</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.98">mobFileMaxCacheSize</a></pre>
 </li>
 </ul>
 <a name="isCacheEnabled">
@@ -457,7 +457,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isCacheEnabled</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.98">isCacheEnabled</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.99">isCacheEnabled</a></pre>
 </li>
 </ul>
 <a name="evictRemainRatio">
@@ -466,7 +466,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>evictRemainRatio</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.99">evictRemainRatio</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.100">evictRemainRatio</a></pre>
 </li>
 </ul>
 </li>
@@ -483,7 +483,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MobFileCache</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.101">MobFileCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.102">MobFileCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 </li>
@@ -500,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>evict</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.135">evict</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.136">evict</a>()</pre>
 <div class="block">Evicts the lru cached mob files when the count of the cached files is larger
  than the threshold.</div>
 </li>
@@ -511,7 +511,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>evictFile</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.175">evictFile</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;fileName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.176">evictFile</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;fileName)</pre>
 <div class="block">Evicts the cached file by the name.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -519,15 +519,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.mob.MobCacheConfig-">
+<a name="openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.hfile.CacheConfig-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>openFile</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.204">openFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.205">openFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                         org.apache.hadoop.fs.Path&nbsp;path,
-                        <a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a>&nbsp;cacheConf)
+                        <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)
                  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">Opens a mob file.</div>
 <dl>
@@ -548,7 +548,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>closeFile</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.239">closeFile</a>(<a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a>&nbsp;file)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.240">closeFile</a>(<a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a>&nbsp;file)</pre>
 <div class="block">Closes a mob file.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -562,7 +562,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.257">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.258">shutdown</a>()</pre>
 </li>
 </ul>
 <a name="getCacheSize--">
@@ -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>getCacheSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.281">getCacheSize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.282">getCacheSize</a>()</pre>
 <div class="block">Gets the count of cached mob files.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -585,7 +585,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getAccessCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.289">getAccessCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.290">getAccessCount</a>()</pre>
 <div class="block">Gets the count of accesses to the mob file cache.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -599,7 +599,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.297">getMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.298">getMissCount</a>()</pre>
 <div class="block">Gets the count of misses to the mob file cache.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -613,7 +613,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getEvictedFileCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.305">getEvictedFileCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.306">getEvictedFileCount</a>()</pre>
 <div class="block">Gets the number of items evicted from the mob file cache.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -627,7 +627,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getHitRatio</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.313">getHitRatio</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.314">getHitRatio</a>()</pre>
 <div class="block">Gets the hit ratio to the mob file cache.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -641,7 +641,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>printStatistics</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.320">printStatistics</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobFileCache.html#line.321">printStatistics</a>()</pre>
 <div class="block">Prints the statistics.</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html b/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html
deleted file mode 100644
index 94fd586..0000000
--- a/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.mob.MobCacheConfig (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.hadoop.hbase.mob.MobCacheConfig (Apache HBase 3.0.0-SNAPSHOT API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html" target="_top">Frames</a></li>
-<li><a href="MobCacheConfig.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h2 title="Uses of Class org.apache.hadoop.hbase.mob.MobCacheConfig" class="title">Uses of Class<br>org.apache.hadoop.hbase.mob.MobCacheConfig</h2>
-</div>
-<div class="classUseContainer">
-<ul class="blockList">
-<li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Package</th>
-<th class="colLast" scope="col">Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.mob">org.apache.hadoop.hbase.mob</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<ul class="blockList">
-<li class="blockList"><a name="org.apache.hadoop.hbase.mob">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a> in <a href="../../../../../../org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MobFileCache.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.mob.MobCacheConfig-">openFile</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
-        org.apache.hadoop.fs.Path&nbsp;path,
-        <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a>&nbsp;cacheConf)</code>
-<div class="block">Opens a mob file.</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList"><a name="org.apache.hadoop.hbase.regionserver">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a> in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
-<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#mobCacheConfig">mobCacheConfig</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HMobStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#mobCacheConfig">mobCacheConfig</a></span></code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html" target="_top">Frames</a></li>
-<li><a href="MobCacheConfig.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFile.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFile.html b/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFile.html
index b5f8a88..35b9c4f 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFile.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFile.html
@@ -128,9 +128,9 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MobFileCache.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.mob.MobCacheConfig-">openFile</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><span class="typeNameLabel">MobFileCache.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.hfile.CacheConfig-">openFile</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
         org.apache.hadoop.fs.Path&nbsp;path,
-        <a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a>&nbsp;cacheConf)</code>
+        <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</code>
 <div class="block">Opens a mob file.</div>
 </td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFileCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFileCache.html b/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFileCache.html
index 0f0dad2..bb1d53a 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFileCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/class-use/MobFileCache.html
@@ -110,31 +110,6 @@
 <td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MobFileCache.EvictionThread.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html#lru">lru</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MobCacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a> that return <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MobCacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#getMobFileCache--">getMobFileCache</a></span>()</code>
-<div class="block">Gets the MobFileCache.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">MobCacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#instantiateMobFileCache-org.apache.hadoop.conf.Configuration-">instantiateMobFileCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
-<div class="block">Instantiates the MobFileCache.</div>
-</td>
-</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
@@ -162,10 +137,78 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HMobStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with type parameters of type <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerWrapperImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMobFileCache--">getMobFileCache</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return types with arguments of type <a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerServices.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getMobFileCache--">getMobFileCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMobFileCache--">getMobFileCache</a></span>()</code>
+<div class="block">May be null if this is a master which not carry table.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods 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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#setMobFileCache-org.apache.hadoop.hbase.mob.MobFileCache-">setMobFileCache</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;mobFileCache)</code>
+<div class="block">Only used for unit test which doesn't start region server.</div>
+</td>
+</tr>
+</tbody>
+</table>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/package-frame.html b/devapidocs/org/apache/hadoop/hbase/mob/package-frame.html
index 4c26e70..25aaa6e 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/package-frame.html
@@ -17,7 +17,6 @@
 <li><a href="DefaultMobStoreCompactor.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">DefaultMobStoreCompactor</a></li>
 <li><a href="DefaultMobStoreFlusher.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">DefaultMobStoreFlusher</a></li>
 <li><a href="ExpiredMobFileCleaner.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">ExpiredMobFileCleaner</a></li>
-<li><a href="MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">MobCacheConfig</a></li>
 <li><a href="MobConstants.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">MobConstants</a></li>
 <li><a href="MobFile.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">MobFile</a></li>
 <li><a href="MobFileCache.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">MobFileCache</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/package-summary.html b/devapidocs/org/apache/hadoop/hbase/mob/package-summary.html
index e98a43e..102c50a 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/package-summary.html
@@ -107,46 +107,40 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></td>
-<td class="colLast">
-<div class="block">The cache configuration for the mob.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob">MobConstants</a></td>
 <td class="colLast">
 <div class="block">The constants used in mob.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a></td>
 <td class="colLast">
 <div class="block">The mob file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></td>
 <td class="colLast">
 <div class="block">The cache for mob files.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache.EvictionThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileName.html" title="class in org.apache.hadoop.hbase.mob">MobFileName</a></td>
 <td class="colLast">
 <div class="block">The mob file name.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobStoreEngine.html" title="class in org.apache.hadoop.hbase.mob">MobStoreEngine</a></td>
 <td class="colLast">
 <div class="block">MobStoreEngine creates the mob specific compactor, and store flusher.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/mob/MobUtils.html" title="class in org.apache.hadoop.hbase.mob">MobUtils</a></td>
 <td class="colLast">
 <div class="block">The mob utilities</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mob/package-tree.html
index a1e5a66..ec871e9 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/package-tree.html
@@ -81,11 +81,6 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig</span></a>
-<ul>
-<li type="circle">org.apache.hadoop.hbase.mob.<a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">MobCacheConfig</span></a></li>
-</ul>
-</li>
 <li type="circle">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"><span class="typeNameLink">Compactor</span></a>&lt;T&gt;
 <ul>
 <li type="circle">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"><span class="typeNameLink">DefaultCompactor</span></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/package-use.html b/devapidocs/org/apache/hadoop/hbase/mob/package-use.html
index 2854caa..b6ebf47 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/package-use.html
@@ -129,21 +129,16 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html#org.apache.hadoop.hbase.mob">MobCacheConfig</a>
-<div class="block">The cache configuration for the mob.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/mob/class-use/MobFile.html#org.apache.hadoop.hbase.mob">MobFile</a>
 <div class="block">The mob file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/mob/class-use/MobFileCache.html#org.apache.hadoop.hbase.mob">MobFileCache</a>
 <div class="block">The cache for mob files.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/mob/class-use/MobFileName.html#org.apache.hadoop.hbase.mob">MobFileName</a>
 <div class="block">The mob file name.</div>
 </td>
@@ -161,16 +156,11 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/mob/class-use/MobCacheConfig.html#org.apache.hadoop.hbase.regionserver">MobCacheConfig</a>
-<div class="block">The cache configuration for the mob.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/mob/class-use/MobFileCache.html#org.apache.hadoop.hbase.regionserver">MobFileCache</a>
 <div class="block">The cache for mob files.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/mob/class-use/MobFileName.html#org.apache.hadoop.hbase.regionserver">MobFileName</a>
 <div class="block">The mob file name.</div>
 </td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index 4b549da..7b435d2 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -127,8 +127,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.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 87856d5..7385077 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -432,19 +432,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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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>
 </ul>
 </li>
 </ul>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
index e249ca2..95ef789 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":9,"i3":9,"i4":10,"i5":9,"i6":9,"i7":10,"i8":9,"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};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+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};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/CacheConfig.html" target="_top">Frames</a></li>
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
 <div>
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
-<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<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>
@@ -107,14 +107,10 @@ var activeTableTab = "activeTableTab";
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
-<dl>
-<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dd>
-</dl>
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.44">CacheConfig</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.35">CacheConfig</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">Stores all of the cache objects and configuration for a single HFile.</div>
 </li>
@@ -123,27 +119,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="summary">
 <ul class="blockList">
 <li class="blockList">
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="nested.class.summary">
-<!--   -->
-</a>
-<h3>Nested Class Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
-<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private static class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a></span></code>
-<div class="block">Enum of all built in external block caches.</div>
-</td>
-</tr>
-</table>
-</li>
-</ul>
 <!-- =========== FIELD SUMMARY =========== -->
 <ul class="blockList">
 <li class="blockList"><a name="field.summary">
@@ -158,42 +133,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#blockCache">blockCache</a></span></code>
-<div class="block">Local reference to the block cache, null if completely disabled</div>
-</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/io/hfile/CacheConfig.html#BLOCKCACHE_BLOCKSIZE_KEY">BLOCKCACHE_BLOCKSIZE_KEY</a></span></code>
-<div class="block">The target block size used by blockcache instances.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) static boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#blockCacheDisabled">blockCacheDisabled</a></span></code>
-<div class="block">Boolean whether we have disabled the block cache entirely.</div>
-</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/io/hfile/CacheConfig.html#BUCKET_CACHE_BUCKETS_KEY">BUCKET_CACHE_BUCKETS_KEY</a></span></code>
-<div class="block">A comma-delimited array of values for use as bucket sizes.</div>
-</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/io/hfile/CacheConfig.html#BUCKET_CACHE_PERSISTENT_PATH_KEY">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></span></code>
-<div class="block">If the chosen ioengine can persist its state across restarts, the path to the file to persist
- to.</div>
-</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/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_QUEUE_KEY">BUCKET_CACHE_WRITER_QUEUE_KEY</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/io/hfile/CacheConfig.html#BUCKET_CACHE_WRITER_THREADS_KEY">BUCKET_CACHE_WRITER_THREADS_KEY</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#blockCache">blockCache</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>
@@ -258,16 +198,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_QUEUE">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_BUCKET_CACHE_WRITER_THREADS">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></span></code>
-<div class="block">Defaults for Bucket cache</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DEFAULT_CACHE_BLOOMS_ON_WRITE">DEFAULT_CACHE_BLOOMS_ON_WRITE</a></span></code>&nbsp;</td>
 </tr>
@@ -306,11 +236,11 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private static boolean</code></td>
+<td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#DROP_BEHIND_CACHE_COMPACTION_DEFAULT">DROP_BEHIND_CACHE_COMPACTION_DEFAULT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private 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="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/io/hfile/CacheConfig.html#DROP_BEHIND_CACHE_COMPACTION_KEY">DROP_BEHIND_CACHE_COMPACTION_KEY</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -331,42 +261,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private 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/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_CLASS_KEY">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private static boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_DEFAULT">EXTERNAL_BLOCKCACHE_DEFAULT</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private 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/io/hfile/CacheConfig.html#EXTERNAL_BLOCKCACHE_KEY">EXTERNAL_BLOCKCACHE_KEY</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#GLOBAL_BLOCK_CACHE_INSTANCE">GLOBAL_BLOCK_CACHE_INSTANCE</a></span></code>
-<div class="block">Static reference to the block cache, or null if no caching should be used
- at all.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#inMemory">inMemory</a></span></code>
 <div class="block">Whether blocks should be flagged as in-memory when being cached</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#L2_CACHE_INSTANCE">L2_CACHE_INSTANCE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#ONHEAP_CACHE_INSTANCE">ONHEAP_CACHE_INSTANCE</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/io/hfile/CacheConfig.html#PREFETCH_BLOCKS_ON_OPEN_KEY">PREFETCH_BLOCKS_ON_OPEN_KEY</a></span></code>
@@ -400,37 +303,28 @@ 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/io/hfile/CacheConfig.html#CacheConfig--">CacheConfig</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private)</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.hbase.io.hfile.BlockCache-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">CacheConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
-           boolean&nbsp;cacheDataOnRead,
-           boolean&nbsp;inMemory,
-           boolean&nbsp;cacheDataOnWrite,
-           boolean&nbsp;cacheIndexesOnWrite,
-           boolean&nbsp;cacheBloomsOnWrite,
-           boolean&nbsp;evictOnClose,
-           boolean&nbsp;cacheDataCompressed,
-           boolean&nbsp;prefetchOnOpen,
-           boolean&nbsp;dropBehindCompaction)</code>
-<div class="block">Create a block cache configuration with the specified cache and configuration parameters.</div>
-</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.hbase.io.hfile.CacheConfig-">CacheConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</code>
 <div class="block">Constructs a cache configuration copied from the specified configuration.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <div class="block">Create a cache configuration using the specified configuration object and
  defaults for family level settings.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-           <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-org.apache.hadoop.hbase.io.hfile.BlockCache-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+           <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family,
+           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>
 <div class="block">Create a cache configuration using the specified configuration object and
  family descriptor.</div>
 </td>
@@ -445,74 +339,32 @@ 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>
+<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>(package private) static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#clearGlobalInstances--">clearGlobalInstances</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colFirst"><code><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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getBlockCache--">getBlockCache</a></span>()</code>
 <div class="block">Returns the block cache.</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getBucketCache-org.apache.hadoop.conf.Configuration-">getBucketCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getExternalBlockcache-org.apache.hadoop.conf.Configuration-">getExternalBlockcache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getL2CacheStats--">getL2CacheStats</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCache-org.apache.hadoop.conf.Configuration-">getOnHeapCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCacheInternal-org.apache.hadoop.conf.Configuration-">getOnHeapCacheInternal</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
-</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCacheStats--">getOnHeapCacheStats</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#instantiateBlockCache-org.apache.hadoop.conf.Configuration-">instantiateBlockCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
-<div class="block">Returns the block cache or <code>null</code> in case none should be used.</div>
-</td>
-</tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#isBlockCacheEnabled--">isBlockCacheEnabled</a></span>()</code>
-<div class="block">Checks whether the block cache is enabled.</div>
-</td>
-</tr>
-<tr id="i10" class="altColor">
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#isInMemory--">isInMemory</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<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/io/hfile/CacheConfig.html#setCacheDataOnWrite-boolean-">setCacheDataOnWrite</a></span>(boolean&nbsp;cacheDataOnWrite)</code>
-<div class="block">Only used for testing.</div>
-</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#setCacheDataOnWrite-boolean-">setCacheDataOnWrite</a></span>(boolean&nbsp;cacheDataOnWrite)</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<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/io/hfile/CacheConfig.html#setEvictOnClose-boolean-">setEvictOnClose</a></span>(boolean&nbsp;evictOnClose)</code>
 <div class="block">Only used for testing.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<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/io/hfile/CacheConfig.html#shouldCacheBlockOnRead-org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory-">shouldCacheBlockOnRead</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</code>
 <div class="block">Should we cache a block of a particular category? We always cache
@@ -520,59 +372,59 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  available.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheBloomsOnWrite--">shouldCacheBloomsOnWrite</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheCompressed-org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory-">shouldCacheCompressed</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheDataCompressed--">shouldCacheDataCompressed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheDataOnRead--">shouldCacheDataOnRead</a></span>()</code>
 <div class="block">Returns whether the DATA blocks of this HFile should be cached on read or not (we always
  cache the meta blocks, the INDEX and BLOOM blocks).</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheDataOnWrite--">shouldCacheDataOnWrite</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldCacheIndexesOnWrite--">shouldCacheIndexesOnWrite</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldDropBehindCompaction--">shouldDropBehindCompaction</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldEvictOnClose--">shouldEvictOnClose</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldLockOnCacheMiss-org.apache.hadoop.hbase.io.hfile.BlockType-">shouldLockOnCacheMiss</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</code>
 <div class="block">If we make sure the block could not be cached, we will not acquire the lock
  otherwise we will acquire lock</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldPrefetchOnOpen--">shouldPrefetchOnOpen</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#shouldReadBlockFromCache-org.apache.hadoop.hbase.io.hfile.BlockType-">shouldReadBlockFromCache</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</code>
 <div class="block">Return true if we may find this type of block in block cache.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i16" 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/io/hfile/CacheConfig.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
@@ -604,7 +456,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <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/io/hfile/CacheConfig.html#line.45">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.36">LOG</a></pre>
 </li>
 </ul>
 <a name="DISABLED">
@@ -613,7 +465,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DISABLED</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.51">DISABLED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.41">DISABLED</a></pre>
 <div class="block">Disabled cache configuration</div>
 </li>
 </ul>
@@ -623,7 +475,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_DATA_ON_READ_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/io/hfile/CacheConfig.html#line.57">CACHE_DATA_ON_READ_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/io/hfile/CacheConfig.html#line.47">CACHE_DATA_ON_READ_KEY</a></pre>
 <div class="block">Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be
  cached if the block cache is enabled.</div>
 <dl>
@@ -638,7 +490,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_BLOCKS_ON_WRITE_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/io/hfile/CacheConfig.html#line.63">CACHE_BLOCKS_ON_WRITE_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/io/hfile/CacheConfig.html#line.53">CACHE_BLOCKS_ON_WRITE_KEY</a></pre>
 <div class="block">Configuration key to cache data blocks on write. There are separate
  switches for bloom blocks and non-root index blocks.</div>
 <dl>
@@ -653,7 +505,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_INDEX_BLOCKS_ON_WRITE_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/io/hfile/CacheConfig.html#line.70">CACHE_INDEX_BLOCKS_ON_WRITE_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/io/hfile/CacheConfig.html#line.59">CACHE_INDEX_BLOCKS_ON_WRITE_KEY</a></pre>
 <div class="block">Configuration key to cache leaf and intermediate-level index blocks on
  write.</div>
 <dl>
@@ -668,7 +520,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_BLOOM_BLOCKS_ON_WRITE_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/io/hfile/CacheConfig.html#line.76">CACHE_BLOOM_BLOCKS_ON_WRITE_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/io/hfile/CacheConfig.html#line.64">CACHE_BLOOM_BLOCKS_ON_WRITE_KEY</a></pre>
 <div class="block">Configuration key to cache compound bloom filter blocks on write.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -682,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>CACHE_DATA_BLOCKS_COMPRESSED_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/io/hfile/CacheConfig.html#line.82">CACHE_DATA_BLOCKS_COMPRESSED_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/io/hfile/CacheConfig.html#line.69">CACHE_DATA_BLOCKS_COMPRESSED_KEY</a></pre>
 <div class="block">Configuration key to cache data blocks in compressed and/or encrypted format.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -696,7 +548,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>EVICT_BLOCKS_ON_CLOSE_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/io/hfile/CacheConfig.html#line.89">EVICT_BLOCKS_ON_CLOSE_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/io/hfile/CacheConfig.html#line.75">EVICT_BLOCKS_ON_CLOSE_KEY</a></pre>
 <div class="block">Configuration key to evict all blocks of a given file from the block cache
  when the file is closed.</div>
 <dl>
@@ -705,101 +557,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="BUCKET_CACHE_PERSISTENT_PATH_KEY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>BUCKET_CACHE_PERSISTENT_PATH_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/io/hfile/CacheConfig.html#line.106">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></pre>
-<div class="block">If the chosen ioengine can persist its state across restarts, the path to the file to persist
- to. This file is NOT the data file. It is a file into which we will serialize the map of
- what is in the data file. For example, if you pass the following argument as
- BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),
- <code>file:/tmp/bucketcache.data </code>, then we will write the bucketcache data to the file
- <code>/tmp/bucketcache.data</code> but the metadata on where the data is in the supplied file
- is an in-memory map that needs to be persisted across restarts. Where to store this
- in-memory state is what you supply here: e.g. <code>/tmp/bucketcache.map</code>.</div>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_PERSISTENT_PATH_KEY">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="BUCKET_CACHE_WRITER_THREADS_KEY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>BUCKET_CACHE_WRITER_THREADS_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/io/hfile/CacheConfig.html#line.109">BUCKET_CACHE_WRITER_THREADS_KEY</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_WRITER_THREADS_KEY">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="BUCKET_CACHE_WRITER_QUEUE_KEY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>BUCKET_CACHE_WRITER_QUEUE_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/io/hfile/CacheConfig.html#line.110">BUCKET_CACHE_WRITER_QUEUE_KEY</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_WRITER_QUEUE_KEY">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="BUCKET_CACHE_BUCKETS_KEY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>BUCKET_CACHE_BUCKETS_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/io/hfile/CacheConfig.html#line.116">BUCKET_CACHE_BUCKETS_KEY</a></pre>
-<div class="block">A comma-delimited array of values for use as bucket sizes.</div>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_BUCKETS_KEY">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="DEFAULT_BUCKET_CACHE_WRITER_THREADS">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>DEFAULT_BUCKET_CACHE_WRITER_THREADS</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.121">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></pre>
-<div class="block">Defaults for Bucket cache</div>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_BUCKET_CACHE_WRITER_THREADS">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="DEFAULT_BUCKET_CACHE_WRITER_QUEUE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>DEFAULT_BUCKET_CACHE_WRITER_QUEUE</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.122">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_BUCKET_CACHE_WRITER_QUEUE">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
 <a name="PREFETCH_BLOCKS_ON_OPEN_KEY">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>PREFETCH_BLOCKS_ON_OPEN_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/io/hfile/CacheConfig.html#line.128">PREFETCH_BLOCKS_ON_OPEN_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/io/hfile/CacheConfig.html#line.81">PREFETCH_BLOCKS_ON_OPEN_KEY</a></pre>
 <div class="block">Configuration key to prefetch all blocks of a given file into the block cache
  when the file is opened.</div>
 <dl>
@@ -808,95 +572,26 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="BLOCKCACHE_BLOCKSIZE_KEY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>BLOCKCACHE_BLOCKSIZE_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/io/hfile/CacheConfig.html#line.137">BLOCKCACHE_BLOCKSIZE_KEY</a></pre>
-<div class="block">The target block size used by blockcache instances. Defaults to
- <a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#DEFAULT_BLOCKSIZE"><code>HConstants.DEFAULT_BLOCKSIZE</code></a>.
- TODO: this config point is completely wrong, as it's used to determine the
- target block size of BlockCache instances. Rename.</div>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.BLOCKCACHE_BLOCKSIZE_KEY">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="EXTERNAL_BLOCKCACHE_KEY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>EXTERNAL_BLOCKCACHE_KEY</h4>
-<pre>private 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/io/hfile/CacheConfig.html#line.139">EXTERNAL_BLOCKCACHE_KEY</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_KEY">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="EXTERNAL_BLOCKCACHE_DEFAULT">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>EXTERNAL_BLOCKCACHE_DEFAULT</h4>
-<pre>private static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.140">EXTERNAL_BLOCKCACHE_DEFAULT</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_DEFAULT">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
-<a name="EXTERNAL_BLOCKCACHE_CLASS_KEY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>EXTERNAL_BLOCKCACHE_CLASS_KEY</h4>
-<pre>private 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/io/hfile/CacheConfig.html#line.142">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_CLASS_KEY">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
 <a name="DROP_BEHIND_CACHE_COMPACTION_KEY">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>DROP_BEHIND_CACHE_COMPACTION_KEY</h4>
-<pre>private 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/io/hfile/CacheConfig.html#line.143">DROP_BEHIND_CACHE_COMPACTION_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/io/hfile/CacheConfig.html#line.83">DROP_BEHIND_CACHE_COMPACTION_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DROP_BEHIND_CACHE_COMPACTION_KEY">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="DROP_BEHIND_CACHE_COMPACTION_DEFAULT">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>DROP_BEHIND_CACHE_COMPACTION_DEFAULT</h4>
-<pre>private static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.145">DROP_BEHIND_CACHE_COMPACTION_DEFAULT</a></pre>
-<dl>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DROP_BEHIND_CACHE_COMPACTION_DEFAULT">Constant Field Values</a></dd>
-</dl>
-</li>
-</ul>
 <a name="DEFAULT_CACHE_DATA_ON_READ">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_DATA_ON_READ</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.168">DEFAULT_CACHE_DATA_ON_READ</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.87">DEFAULT_CACHE_DATA_ON_READ</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_ON_READ">Constant Field Values</a></dd>
@@ -909,7 +604,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_DATA_ON_WRITE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.169">DEFAULT_CACHE_DATA_ON_WRITE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.88">DEFAULT_CACHE_DATA_ON_WRITE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_ON_WRITE">Constant Field Values</a></dd>
@@ -922,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>DEFAULT_IN_MEMORY</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.170">DEFAULT_IN_MEMORY</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.89">DEFAULT_IN_MEMORY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_IN_MEMORY">Constant Field Values</a></dd>
@@ -935,7 +630,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_INDEXES_ON_WRITE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.171">DEFAULT_CACHE_INDEXES_ON_WRITE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.90">DEFAULT_CACHE_INDEXES_ON_WRITE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_INDEXES_ON_WRITE">Constant Field Values</a></dd>
@@ -948,7 +643,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_BLOOMS_ON_WRITE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.172">DEFAULT_CACHE_BLOOMS_ON_WRITE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.91">DEFAULT_CACHE_BLOOMS_ON_WRITE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_BLOOMS_ON_WRITE">Constant Field Values</a></dd>
@@ -961,7 +656,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_EVICT_ON_CLOSE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.173">DEFAULT_EVICT_ON_CLOSE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.92">DEFAULT_EVICT_ON_CLOSE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_EVICT_ON_CLOSE">Constant Field Values</a></dd>
@@ -974,7 +669,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_DATA_COMPRESSED</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.174">DEFAULT_CACHE_DATA_COMPRESSED</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.93">DEFAULT_CACHE_DATA_COMPRESSED</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_COMPRESSED">Constant Field Values</a></dd>
@@ -987,21 +682,24 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_PREFETCH_ON_OPEN</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.175">DEFAULT_PREFETCH_ON_OPEN</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.94">DEFAULT_PREFETCH_ON_OPEN</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_PREFETCH_ON_OPEN">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="blockCache">
+<a name="DROP_BEHIND_CACHE_COMPACTION_DEFAULT">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>blockCache</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.178">blockCache</a></pre>
-<div class="block">Local reference to the block cache, null if completely disabled</div>
+<h4>DROP_BEHIND_CACHE_COMPACTION_DEFAULT</h4>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.95">DROP_BEHIND_CACHE_COMPACTION_DEFAULT</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DROP_BEHIND_CACHE_COMPACTION_DEFAULT">Constant Field Values</a></dd>
+</dl>
 </li>
 </ul>
 <a name="cacheDataOnRead">
@@ -1010,7 +708,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheDataOnRead</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.186">cacheDataOnRead</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.103">cacheDataOnRead</a></pre>
 <div class="block">Whether blocks should be cached on read (default is on if there is a
  cache but this can be turned off on a per-family or per-request basis).
  If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.
@@ -1023,7 +721,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>inMemory</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.189">inMemory</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.106">inMemory</a></pre>
 <div class="block">Whether blocks should be flagged as in-memory when being cached</div>
 </li>
 </ul>
@@ -1033,7 +731,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheDataOnWrite</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.192">cacheDataOnWrite</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.109">cacheDataOnWrite</a></pre>
 <div class="block">Whether data blocks should be cached when new files are written</div>
 </li>
 </ul>
@@ -1043,7 +741,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheIndexesOnWrite</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.195">cacheIndexesOnWrite</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.112">cacheIndexesOnWrite</a></pre>
 <div class="block">Whether index blocks should be cached when new files are written</div>
 </li>
 </ul>
@@ -1053,7 +751,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheBloomsOnWrite</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.198">cacheBloomsOnWrite</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.115">cacheBloomsOnWrite</a></pre>
 <div class="block">Whether compound bloom filter blocks should be cached on write</div>
 </li>
 </ul>
@@ -1063,7 +761,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>evictOnClose</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.201">evictOnClose</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.118">evictOnClose</a></pre>
 <div class="block">Whether blocks of a file should be evicted when the file is closed</div>
 </li>
 </ul>
@@ -1073,7 +771,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheDataCompressed</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.204">cacheDataCompressed</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.121">cacheDataCompressed</a></pre>
 <div class="block">Whether data blocks should be stored in compressed and/or encrypted form in the cache</div>
 </li>
 </ul>
@@ -1083,7 +781,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>prefetchOnOpen</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.207">prefetchOnOpen</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.124">prefetchOnOpen</a></pre>
 <div class="block">Whether data blocks should be prefetched into the cache</div>
 </li>
 </ul>
@@ -1093,46 +791,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>dropBehindCompaction</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.209">dropBehindCompaction</a></pre>
-</li>
-</ul>
-<a name="GLOBAL_BLOCK_CACHE_INSTANCE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>GLOBAL_BLOCK_CACHE_INSTANCE</h4>
-<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.505">GLOBAL_BLOCK_CACHE_INSTANCE</a></pre>
-<div class="block">Static reference to the block cache, or null if no caching should be used
- at all.</div>
-</li>
-</ul>
-<a name="ONHEAP_CACHE_INSTANCE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>ONHEAP_CACHE_INSTANCE</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.506">ONHEAP_CACHE_INSTANCE</a></pre>
-</li>
-</ul>
-<a name="L2_CACHE_INSTANCE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>L2_CACHE_INSTANCE</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.507">L2_CACHE_INSTANCE</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.126">dropBehindCompaction</a></pre>
 </li>
 </ul>
-<a name="blockCacheDisabled">
+<a name="blockCache">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>blockCacheDisabled</h4>
-<pre>static&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.511">blockCacheDisabled</a></pre>
-<div class="block">Boolean whether we have disabled the block cache entirely.</div>
+<h4>blockCache</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.129">blockCache</a></pre>
 </li>
 </ul>
 </li>
@@ -1143,72 +811,46 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">
+<a name="CacheConfig-org.apache.hadoop.conf.Configuration-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.217">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                   <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.136">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Create a cache configuration using the specified configuration object and
- family descriptor.</div>
+ defaults for family level settings. Only use if no column family context.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>conf</code> - hbase configuration</dd>
-<dd><code>family</code> - column family configuration</dd>
 </dl>
 </li>
 </ul>
-<a name="CacheConfig-org.apache.hadoop.conf.Configuration-">
+<a name="CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.247">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
-<div class="block">Create a cache configuration using the specified configuration object and
- defaults for family level settings. Only use if no column family context. Prefer
- <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-"><code>CacheConfig(Configuration, ColumnFamilyDescriptor)</code></a></div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>conf</code> - hbase configuration</dd>
-<dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-"><code>CacheConfig(Configuration, ColumnFamilyDescriptor)</code></a></dd>
-</dl>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.140">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                   <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</pre>
 </li>
 </ul>
-<a name="CacheConfig-org.apache.hadoop.hbase.io.hfile.BlockCache-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">
+<a name="CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.278">CacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
-            boolean&nbsp;cacheDataOnRead,
-            boolean&nbsp;inMemory,
-            boolean&nbsp;cacheDataOnWrite,
-            boolean&nbsp;cacheIndexesOnWrite,
-            boolean&nbsp;cacheBloomsOnWrite,
-            boolean&nbsp;evictOnClose,
-            boolean&nbsp;cacheDataCompressed,
-            boolean&nbsp;prefetchOnOpen,
-            boolean&nbsp;dropBehindCompaction)</pre>
-<div class="block">Create a block cache configuration with the specified cache and configuration parameters.</div>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.150">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                   <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family,
+                   <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</pre>
+<div class="block">Create a cache configuration using the specified configuration object and
+ family descriptor.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>blockCache</code> - reference to block cache, null if completely disabled</dd>
-<dd><code>cacheDataOnRead</code> - whether DATA blocks should be cached on read (we always cache INDEX
-          blocks and BLOOM blocks; this cannot be disabled).</dd>
-<dd><code>inMemory</code> - whether blocks should be flagged as in-memory</dd>
-<dd><code>cacheDataOnWrite</code> - whether data blocks should be cached on write</dd>
-<dd><code>cacheIndexesOnWrite</code> - whether index blocks should be cached on write</dd>
-<dd><code>cacheBloomsOnWrite</code> - whether blooms should be cached on write</dd>
-<dd><code>evictOnClose</code> - whether blocks should be evicted when HFile is closed</dd>
-<dd><code>cacheDataCompressed</code> - whether to store blocks as compressed in the cache</dd>
-<dd><code>prefetchOnOpen</code> - whether to prefetch blocks upon open</dd>
-<dd><code>dropBehindCompaction</code> - indicate that we should set drop behind to true when open a store
-          file reader for compaction</dd>
+<dd><code>conf</code> - hbase configuration</dd>
+<dd><code>family</code> - column family configuration</dd>
 </dl>
 </li>
 </ul>
@@ -1218,7 +860,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.300">CacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.182">CacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</pre>
 <div class="block">Constructs a cache configuration copied from the specified configuration.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1232,7 +874,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.308">CacheConfig</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.195">CacheConfig</a>()</pre>
 </li>
 </ul>
 </li>
@@ -1243,37 +885,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="isBlockCacheEnabled--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isBlockCacheEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.315">isBlockCacheEnabled</a>()</pre>
-<div class="block">Checks whether the block cache is enabled.</div>
-</li>
-</ul>
-<a name="getBlockCache--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getBlockCache</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.323">getBlockCache</a>()</pre>
-<div class="block">Returns the block cache.</div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the block cache, or null if caching is completely disabled</dd>
-</dl>
-</li>
-</ul>
 <a name="shouldCacheDataOnRead--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheDataOnRead</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.332">shouldCacheDataOnRead</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.213">shouldCacheDataOnRead</a>()</pre>
 <div class="block">Returns whether the DATA blocks of this HFile should be cached on read or not (we always
  cache the meta blocks, the INDEX and BLOOM blocks).</div>
 <dl>
@@ -1288,7 +906,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldDropBehindCompaction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.336">shouldDropBehindCompaction</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.217">shouldDropBehindCompaction</a>()</pre>
 </li>
 </ul>
 <a name="shouldCacheBlockOnRead-org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory-">
@@ -1297,7 +915,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheBlockOnRead</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.345">shouldCacheBlockOnRead</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.226">shouldCacheBlockOnRead</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
 <div class="block">Should we cache a block of a particular category? We always cache
  important blocks such as index blocks, as long as the block cache is
  available.</div>
@@ -1309,7 +927,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isInMemory</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.358">isInMemory</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.234">isInMemory</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if blocks in this file should be flagged as in-memory</dd>
@@ -1322,7 +940,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheDataOnWrite</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.366">shouldCacheDataOnWrite</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.242">shouldCacheDataOnWrite</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if data blocks should be written to the cache when an HFile is
@@ -1336,8 +954,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setCacheDataOnWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.376">setCacheDataOnWrite</a>(boolean&nbsp;cacheDataOnWrite)</pre>
-<div class="block">Only used for testing.</div>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.251">setCacheDataOnWrite</a>(boolean&nbsp;cacheDataOnWrite)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>cacheDataOnWrite</code> - whether data blocks should be written to the cache
@@ -1351,7 +968,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheIndexesOnWrite</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.384">shouldCacheIndexesOnWrite</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.259">shouldCacheIndexesOnWrite</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if index blocks should be written to the cache when an HFile
@@ -1365,7 +982,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheBloomsOnWrite</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.392">shouldCacheBloomsOnWrite</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.267">shouldCacheBloomsOnWrite</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if bloom blocks should be written to the cache when an HFile
@@ -1379,7 +996,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldEvictOnClose</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.400">shouldEvictOnClose</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.275">shouldEvictOnClose</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if blocks should be evicted from the cache when an HFile
@@ -1393,7 +1010,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setEvictOnClose</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.409">setEvictOnClose</a>(boolean&nbsp;evictOnClose)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.285">setEvictOnClose</a>(boolean&nbsp;evictOnClose)</pre>
 <div class="block">Only used for testing.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1408,7 +1025,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheDataCompressed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.416">shouldCacheDataCompressed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.292">shouldCacheDataCompressed</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if data blocks should be compressed in the cache, false if not</dd>
@@ -1421,7 +1038,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheCompressed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.423">shouldCacheCompressed</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.299">shouldCacheCompressed</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if this <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><code>BlockType.BlockCategory</code></a> should be compressed in blockcache, false otherwise</dd>
@@ -1434,7 +1051,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldPrefetchOnOpen</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.436">shouldPrefetchOnOpen</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.311">shouldPrefetchOnOpen</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if blocks should be prefetched into the cache on open, false if not</dd>
@@ -1447,7 +1064,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldReadBlockFromCache</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.448">shouldReadBlockFromCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.323">shouldReadBlockFromCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
 <div class="block">Return true if we may find this type of block in block cache.
  <p>
  TODO: today <code>family.isBlockCacheEnabled()</code> only means <code>cacheDataOnRead</code>, so here we
@@ -1462,116 +1079,38 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldLockOnCacheMiss</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.475">shouldLockOnCacheMiss</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.347">shouldLockOnCacheMiss</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
 <div class="block">If we make sure the block could not be cached, we will not acquire the lock
  otherwise we will acquire lock</div>
 </li>
 </ul>
-<a name="toString--">
-<!--   -->
-</a>
-<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/io/hfile/CacheConfig.html#line.483">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>
-</dl>
-</li>
-</ul>
-<a name="getOnHeapCache-org.apache.hadoop.conf.Configuration-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getOnHeapCache</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.517">getOnHeapCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>c</code> - Configuration to use.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>An L1 instance.  Currently an instance of LruBlockCache.</dd>
-</dl>
-</li>
-</ul>
-<a name="getOnHeapCacheStats--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getOnHeapCacheStats</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.521">getOnHeapCacheStats</a>()</pre>
-</li>
-</ul>
-<a name="getL2CacheStats--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getL2CacheStats</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.528">getL2CacheStats</a>()</pre>
-</li>
-</ul>
-<a name="getOnHeapCacheInternal-org.apache.hadoop.conf.Configuration-">
+<a name="getBlockCache--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getOnHeapCacheInternal</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.539">getOnHeapCacheInternal</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+<h4>getBlockCache</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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.359">getBlockCache</a>()</pre>
+<div class="block">Returns the block cache.</div>
 <dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>c</code> - Configuration to use.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>An L1 instance.  Currently an instance of LruBlockCache.</dd>
+<dd>the block cache, or null if caching is completely disabled</dd>
 </dl>
 </li>
 </ul>
-<a name="getExternalBlockcache-org.apache.hadoop.conf.Configuration-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getExternalBlockcache</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.555">getExternalBlockcache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
-</li>
-</ul>
-<a name="getBucketCache-org.apache.hadoop.conf.Configuration-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getBucketCache</h4>
-<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.585">getBucketCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
-</li>
-</ul>
-<a name="instantiateBlockCache-org.apache.hadoop.conf.Configuration-">
+<a na

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
index 7236e62..481c48b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
@@ -1289,7 +1289,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>moveFromOnlineToDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.621">moveFromOnlineToDeadServers</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.624">moveFromOnlineToDeadServers</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="removeServerFromDrainList-org.apache.hadoop.hbase.ServerName-">
@@ -1298,7 +1298,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeServerFromDrainList</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.639">removeServerFromDrainList</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.642">removeServerFromDrainList</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="addServerToDrainList-org.apache.hadoop.hbase.ServerName-">
@@ -1307,7 +1307,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>addServerToDrainList</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.656">addServerToDrainList</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.659">addServerToDrainList</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block">Add the server to the drain list.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1323,7 +1323,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>newRpcController</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.678">newRpcController</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.681">newRpcController</a>()</pre>
 </li>
 </ul>
 <a name="sendRegionWarmup-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.client.RegionInfo-">
@@ -1332,7 +1332,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sendRegionWarmup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.690">sendRegionWarmup</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.693">sendRegionWarmup</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                              <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</pre>
 <div class="block">Sends a WARMUP RPC to the specified server to warmup the specified region.
  <p>
@@ -1351,7 +1351,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionSilentlyAndWait</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.708">closeRegionSilentlyAndWait</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;connection,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.711">closeRegionSilentlyAndWait</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;connection,
                                               <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                                               <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
                                               long&nbsp;timeout)
@@ -1372,7 +1372,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getRsAdmin</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.742">getRsAdmin</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.745">getRsAdmin</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)
                                                                                                         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>
@@ -1391,7 +1391,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinToStart</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.763">getMinToStart</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.766">getMinToStart</a>()</pre>
 <div class="block">Calculate min necessary to start. This is not an absolute. It is just
  a friction that will cause us hang around a bit longer waiting on
  RegionServers to check-in.</div>
@@ -1403,7 +1403,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForRegionServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.795">waitForRegionServers</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/master/ServerManager.html#line.798">waitForRegionServers</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/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Wait for the region servers to report in.
  We will wait until one of this condition is met:
@@ -1426,7 +1426,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getStrForMax</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.862">getStrForMax</a>(int&nbsp;max)</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>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.865">getStrForMax</a>(int&nbsp;max)</pre>
 </li>
 </ul>
 <a name="getOnlineServersList--">
@@ -1435,7 +1435,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.869">getOnlineServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.872">getOnlineServersList</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>A copy of the internal list of online servers.</dd>
@@ -1448,7 +1448,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineServersListWithPredicator</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.880">getOnlineServersListWithPredicator</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;keys,
+<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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.883">getOnlineServersListWithPredicator</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;keys,
                                                            <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/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&gt;&nbsp;idleServerPredicator)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1465,7 +1465,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getDrainingServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.899">getDrainingServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.902">getDrainingServersList</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>A copy of the internal list of draining servers.</dd>
@@ -1478,7 +1478,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isServerOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.903">isServerOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.906">isServerOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
 <a name="isServerDead-org.apache.hadoop.hbase.ServerName-">
@@ -1487,7 +1487,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isServerDead</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.913">isServerDead</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.916">isServerDead</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block">Check if a server is known to be dead.  A server can be online,
  or known to be dead, or unknown to this manager (i.e, not online,
  not known to be dead either. it is simply not tracked by the
@@ -1500,7 +1500,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdownCluster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.917">shutdownCluster</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.920">shutdownCluster</a>()</pre>
 </li>
 </ul>
 <a name="isClusterShutdown--">
@@ -1509,7 +1509,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isClusterShutdown</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.927">isClusterShutdown</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.930">isClusterShutdown</a>()</pre>
 </li>
 </ul>
 <a name="startChore--">
@@ -1518,7 +1518,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startChore</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.934">startChore</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.937">startChore</a>()</pre>
 <div class="block">start chore in ServerManager</div>
 </li>
 </ul>
@@ -1528,7 +1528,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.950">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.953">stop</a>()</pre>
 <div class="block">Stop the ServerManager.</div>
 </li>
 </ul>
@@ -1538,7 +1538,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createDestinationServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.969">createDestinationServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;serversToExclude)</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.972">createDestinationServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;serversToExclude)</pre>
 <div class="block">Creates a list of possible destinations for a region. It contains the online servers, but not
   the draining or dying servers.</div>
 <dl>
@@ -1553,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>createDestinationServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.986">createDestinationServersList</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.989">createDestinationServersList</a>()</pre>
 <div class="block">Calls <a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#createDestinationServersList-java.util.List-"><code>createDestinationServersList(java.util.List&lt;org.apache.hadoop.hbase.ServerName&gt;)</code></a> without server to exclude.</div>
 </li>
 </ul>
@@ -1563,7 +1563,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>clearDeadServersWithSameHostNameAndPortOfOnlineServer</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.993">clearDeadServersWithSameHostNameAndPortOfOnlineServer</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.996">clearDeadServersWithSameHostNameAndPortOfOnlineServer</a>()</pre>
 <div class="block">To clear any dead server with same host name and port of any online server</div>
 </li>
 </ul>
@@ -1573,7 +1573,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1002">removeRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1005">removeRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 <div class="block">Called by delete table and similar to notify the ServerManager that a region was removed.</div>
 </li>
 </ul>
@@ -1583,7 +1583,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isRegionInServerManagerStates</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1009">isRegionInServerManagerStates</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1012">isRegionInServerManagerStates</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</pre>
 </li>
 </ul>
 <a name="removeRegions-java.util.List-">
@@ -1592,7 +1592,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1018">removeRegions</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1021">removeRegions</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)</pre>
 <div class="block">Called by delete table and similar to notify the ServerManager that a region was removed.</div>
 </li>
 </ul>
@@ -1602,7 +1602,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getVersionNumber</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1027">getVersionNumber</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1030">getVersionNumber</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block">May return 0 when server is not online.</div>
 </li>
 </ul>
@@ -1612,7 +1612,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getVersion</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/master/ServerManager.html#line.1035">getVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</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/master/ServerManager.html#line.1038">getVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block">May return "0.0.0" when server is not online</div>
 </li>
 </ul>
@@ -1622,7 +1622,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1040">getInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1043">getInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
 <a name="persistRegionLastFlushedSequenceIds--">
@@ -1631,7 +1631,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>persistRegionLastFlushedSequenceIds</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1049">persistRegionLastFlushedSequenceIds</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1052">persistRegionLastFlushedSequenceIds</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">Persist last flushed sequence id of each region to HDFS</div>
 <dl>
@@ -1646,7 +1646,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>loadLastFlushedSequenceIds</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1106">loadLastFlushedSequenceIds</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1109">loadLastFlushedSequenceIds</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">Load last flushed sequence id of each region from HDFS, if persisted</div>
 <dl>
@@ -1661,7 +1661,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>removeDeletedRegionFromLoadedFlushedSequenceIds</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1155">removeDeletedRegionFromLoadedFlushedSequenceIds</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1158">removeDeletedRegionFromLoadedFlushedSequenceIds</a>()</pre>
 <div class="block">Regions may have been removed between latest persist of FlushedSequenceIds
  and master abort. So after loading FlushedSequenceIds from file, and after
  meta loaded, we need to remove the deleted region according to RegionStates.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
index ff41797..05ec9c0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
@@ -1147,7 +1147,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>STATES_EXPECTED_ON_OPEN</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1430">STATES_EXPECTED_ON_OPEN</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1442">STATES_EXPECTED_ON_OPEN</a></pre>
 </li>
 </ul>
 <a name="STATES_EXPECTED_ON_CLOSING">
@@ -1156,7 +1156,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>STATES_EXPECTED_ON_CLOSING</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1435">STATES_EXPECTED_ON_CLOSING</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1447">STATES_EXPECTED_ON_CLOSING</a></pre>
 </li>
 </ul>
 <a name="STATES_EXPECTED_ON_CLOSED">
@@ -1165,7 +1165,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>STATES_EXPECTED_ON_CLOSED</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1442">STATES_EXPECTED_ON_CLOSED</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1454">STATES_EXPECTED_ON_CLOSED</a></pre>
 </li>
 </ul>
 <a name="STATES_EXPECTED_ON_ASSIGN">
@@ -1174,7 +1174,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>STATES_EXPECTED_ON_ASSIGN</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1449">STATES_EXPECTED_ON_ASSIGN</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1461">STATES_EXPECTED_ON_ASSIGN</a></pre>
 </li>
 </ul>
 <a name="STATES_EXPECTED_ON_UNASSIGN_OR_MOVE">
@@ -1183,7 +1183,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>STATES_EXPECTED_ON_UNASSIGN_OR_MOVE</h4>
-<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1452">STATES_EXPECTED_ON_UNASSIGN_OR_MOVE</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1464">STATES_EXPECTED_ON_UNASSIGN_OR_MOVE</a></pre>
 </li>
 </ul>
 <a name="pendingAssignQueue">
@@ -1192,7 +1192,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>pendingAssignQueue</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1627">pendingAssignQueue</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1639">pendingAssignQueue</a></pre>
 </li>
 </ul>
 <a name="assignQueueLock">
@@ -1201,7 +1201,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assignQueueLock</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1628">assignQueueLock</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1640">assignQueueLock</a></pre>
 </li>
 </ul>
 <a name="assignQueueFullCond">
@@ -1210,7 +1210,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>assignQueueFullCond</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1629">assignQueueFullCond</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1641">assignQueueFullCond</a></pre>
 </li>
 </ul>
 </li>
@@ -2128,7 +2128,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>offlineRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1367">offlineRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1379">offlineRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 </li>
 </ul>
 <a name="onlineRegion-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">
@@ -2137,7 +2137,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>onlineRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1375">onlineRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1387">onlineRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                          <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
@@ -2147,7 +2147,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getSnapShotOfAssignment</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;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1379">getSnapShotOfAssignment</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">R
 egionInfo</a>&gt;&nbsp;regions)</pre>
+<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;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1391">getSnapShotOfAssignment</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">R
 egionInfo</a>&gt;&nbsp;regions)</pre>
 </li>
 </ul>
 <a name="getReopenStatus-org.apache.hadoop.hbase.TableName-">
@@ -2156,7 +2156,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getReopenStatus</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</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>,<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1394">getReopenStatus</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</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>,<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1406">getReopenStatus</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Used by the client (via master) to identify if all regions have the schema updates</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2174,7 +2174,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRegionsInTransition</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1408">hasRegionsInTransition</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1420">hasRegionsInTransition</a>()</pre>
 </li>
 </ul>
 <a name="getRegionsInTransition--">
@@ -2183,7 +2183,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionsInTransition</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/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1412">getRegionsInTransition</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/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1424">getRegionsInTransition</a>()</pre>
 </li>
 </ul>
 <a name="getAssignedRegions--">
@@ -2192,7 +2192,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignedRegions</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1416">getAssignedRegions</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1428">getAssignedRegions</a>()</pre>
 </li>
 </ul>
 <a name="getRegionInfo-byte:A-">
@@ -2201,7 +2201,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <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/master/assignment/AssignmentManager.html#line.1420">getRegionInfo</a>(byte[]&nbsp;regionName)</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/master/assignment/AssignmentManager.html#line.1432">getRegionInfo</a>(byte[]&nbsp;regionName)</pre>
 </li>
 </ul>
 <a name="transitStateAndUpdate-org.apache.hadoop.hbase.master.assignment.RegionStateNode-org.apache.hadoop.hbase.master.RegionState.State-org.apache.hadoop.hbase.master.RegionState.State...-">
@@ -2210,7 +2210,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>transitStateAndUpdate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1458">transitStateAndUpdate</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1470">transitStateAndUpdate</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode,
                                    <a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>&nbsp;newState,
                                    <a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>...&nbsp;expectedStates)
                             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>
@@ -2226,7 +2226,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOpening</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1475">regionOpening</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1487">regionOpening</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)
             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>
@@ -2240,7 +2240,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>regionFailedOpen</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1488">regionFailedOpen</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode,
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1500">regionFailedOpen</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode,
                       boolean&nbsp;giveUp)
                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>
@@ -2255,7 +2255,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOpened</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1512">regionOpened</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1524">regionOpened</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)
            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>
@@ -2269,7 +2269,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>regionClosing</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1529">regionClosing</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1541">regionClosing</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)
             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>
@@ -2283,7 +2283,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>regionClosed</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1545">regionClosed</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode,
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1557">regionClosed</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode,
                   boolean&nbsp;normally)
            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>
@@ -2298,7 +2298,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>markRegionAsSplit</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1572">markRegionAsSplit</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1584">markRegionAsSplit</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
                               <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;daughterA,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;daughterB)
@@ -2315,7 +2315,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>markRegionAsMerged</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1602">markRegionAsMerged</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;child,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1614">markRegionAsMerged</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;child,
                                <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;mother,
                                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;father)
@@ -2338,7 +2338,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldAssignFavoredNodes</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1619">shouldAssignFavoredNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1631">shouldAssignFavoredNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</pre>
 </li>
 </ul>
 <a name="queueAssign-org.apache.hadoop.hbase.master.assignment.RegionStateNode-">
@@ -2347,7 +2347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>queueAssign</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1636">queueAssign</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1648">queueAssign</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)</pre>
 <div class="block">Add the assign operation to the assignment queue.
  The pending assignment operation will be processed,
  and each region will be assigned by a server using the balancer.</div>
@@ -2359,7 +2359,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startAssignmentThread</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1653">startAssignmentThread</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1665">startAssignmentThread</a>()</pre>
 </li>
 </ul>
 <a name="stopAssignmentThread--">
@@ -2368,7 +2368,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>stopAssignmentThread</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1671">stopAssignmentThread</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1683">stopAssignmentThread</a>()</pre>
 </li>
 </ul>
 <a name="assignQueueSignal--">
@@ -2377,7 +2377,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assignQueueSignal</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1684">assignQueueSignal</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1696">assignQueueSignal</a>()</pre>
 </li>
 </ul>
 <a name="waitOnAssignQueue--">
@@ -2386,7 +2386,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>waitOnAssignQueue</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1694">waitOnAssignQueue</a>()</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1706">waitOnAssignQueue</a>()</pre>
 </li>
 </ul>
 <a name="processAssignQueue--">
@@ -2395,7 +2395,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>processAssignQueue</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1719">processAssignQueue</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1731">processAssignQueue</a>()</pre>
 </li>
 </ul>
 <a name="processAssignmentPlans-java.util.HashMap-java.util.HashMap-java.util.List-java.util.List-">
@@ -2404,7 +2404,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>processAssignmentPlans</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1781">processAssignmentPlans</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;regions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1793">processAssignmentPlans</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;regions,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;retainMap,
                                     <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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;hris,
                                     <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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
@@ -2416,7 +2416,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>acceptPlan</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1819">acceptPlan</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;regions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1831">acceptPlan</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;regions,
                         <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="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;plan)
                  throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
@@ -2431,7 +2431,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>addToPendingAssignment</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1848">addToPendingAssignment</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;regions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1860">addToPendingAssignment</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&gt;&nbsp;regions,
                                     <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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;pendingRegions)</pre>
 </li>
 </ul>
@@ -2441,7 +2441,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getExcludedServersForSystemTable</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1864">getExcludedServersForSystemTable</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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1876">getExcludedServersForSystemTable</a>()</pre>
 <div class="block">Get a list of servers that this region cannot be assigned to.
  For system tables, we must assign them to a server with highest version.</div>
 </li>
@@ -2452,7 +2452,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMaster</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1884">getMaster</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#line.1896">getMaster</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 164f281..020a1d2 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html
@@ -1215,7 +1215,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupMergedRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.661">cleanupMergedRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.662">cleanupMergedRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Clean up a merged region</div>
 <dl>
@@ -1232,7 +1232,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackCloseRegionsForMerge</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.673">rollbackCloseRegionsForMerge</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.674">rollbackCloseRegionsForMerge</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Rollback close regions</div>
 <dl>
@@ -1247,7 +1247,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createUnassignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.678">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.679">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1261,7 +1261,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.684">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.685">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1275,7 +1275,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionReplication</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.690">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.691">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1289,7 +1289,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preMergeRegionsCommit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.699">preMergeRegionsCommit</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.700">preMergeRegionsCommit</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Post merge region action</div>
 <dl>
@@ -1306,7 +1306,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMetaForMergedRegions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.720">updateMetaForMergedRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.721">updateMetaForMergedRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Add merged region to META and delete original regions.</div>
 <dl>
@@ -1321,7 +1321,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postMergeRegionsCommit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.730">postMergeRegionsCommit</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.731">postMergeRegionsCommit</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Post merge region action</div>
 <dl>
@@ -1338,7 +1338,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postCompletedMergeRegions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.741">postCompletedMergeRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.742">postCompletedMergeRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Post merge region action</div>
 <dl>
@@ -1355,7 +1355,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.754">getServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.755">getServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
  retrieve it.</div>
 <dl>
@@ -1372,7 +1372,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMaxSequenceIdFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.766">writeMaxSequenceIdFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.767">writeMaxSequenceIdFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1386,7 +1386,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>isTraceEnabled</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.785">isTraceEnabled</a>()</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.786">isTraceEnabled</a>()</pre>
 <div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
  retrieve it.</div>
 <dl>
@@ -1401,7 +1401,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getMergedRegion</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/master/assignment/MergeTableRegionsProcedure.html#line.796">getMergedRegion</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/master/assignment/MergeTableRegionsProcedure.html#line.797">getMergedRegion</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The merged region. Maybe be null if called to early or we failed.</dd>
@@ -1414,7 +1414,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>abort</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.801">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/MergeTableRegionsProcedure.html#line.802">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">Procedure</a></code></span></div>
 <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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
index 79cb21b..d8d391b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
@@ -378,1508 +378,1510 @@
 <span class="sourceLineNo">370</span><a name="line.370"></a>
 <span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
 <span class="sourceLineNo">372</span>  public void returnBlock(HFileBlock block) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    BlockCache blockCache = this.cacheConf.getBlockCache();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (blockCache != null &amp;&amp; block != null) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      BlockCacheKey cacheKey = new BlockCacheKey(this.getFileContext().getHFileName(),<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          block.getOffset(), this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      blockCache.returnBlock(cacheKey, block);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   *         first KeyValue.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (dataBlockIndexReader == null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      throw new BlockIndexNotLoadedException();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   *<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return the first row key, or null if the file is empty.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // We have to copy the row part to form the row key alone<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  /**<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   *<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return the last row key, or null if the file is empty.<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  @Override<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    // We have to copy the row part to form the row key alone<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    return getLastKey().map(CellUtil::cloneRow);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  /** @return number of KV entries in this HFile */<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public long getEntries() {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    return trailer.getEntryCount();<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>  /** @return comparator */<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  @Override<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public CellComparator getComparator() {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    return comparator;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  /** @return compression algorithm */<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return compressAlgo;<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>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  @Override<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public long indexSize() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            : 0);<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>  @Override<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public String getName() {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return name;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  @Override<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return dataBlockIndexReader;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  @Override<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public FixedFileTrailer getTrailer() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return trailer;<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>  @Override<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public boolean isPrimaryReplicaReader() {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    return primaryReplicaReader;<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>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * is invoked on a scanner that is not seeked.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  @SuppressWarnings("serial")<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    public NotSeekedException() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      super("Not seeked to a key/value");<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>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    private ByteBuff blockBuffer;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    protected final boolean cacheBlocks;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    protected final boolean pread;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    protected final boolean isCompaction;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    private int currKeyLen;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    private int currValueLen;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    private int currMemstoreTSLen;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    private long currMemstoreTS;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Updated but never read?<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    protected final HFile.Reader reader;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    private int currTagsLen;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // buffer backed keyonlyKV<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.503"></a>
-<span class="sourceLineNo">504</span>     * current data block is the last data block.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>     *<a name="line.505"></a>
-<span class="sourceLineNo">506</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>     */<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    protected Cell nextIndexedKey;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    // Current block being used<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    protected HFileBlock curBlock;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Previous blocks that were used in the course of the read<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        final boolean pread, final boolean isCompaction) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.reader = reader;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      this.cacheBlocks = cacheBlocks;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.pread = pread;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      this.isCompaction = isCompaction;<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>    void updateCurrBlockRef(HFileBlock block) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        return;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        prevBlocks.add(this.curBlock);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      this.curBlock = block;<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>    void reset() {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>        this.prevBlocks.add(this.curBlock);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      }<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      this.curBlock = null;<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>    private void returnBlockToCache(HFileBlock block) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (LOG.isTraceEnabled()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.trace("Returning the block : " + block);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.reader.returnBlock(block);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    private void returnBlocks(boolean returnAll) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      this.prevBlocks.clear();<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        returnBlockToCache(this.curBlock);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        this.curBlock = null;<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>    @Override<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    public boolean isSeeked(){<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return blockBuffer != null;<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>    @Override<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    public String toString() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (!isSeeked())<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        throw new NotSeekedException();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>    @Override<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    public HFile.Reader getReader() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      return reader;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    private int getKVBufSize() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      if (currTagsLen &gt; 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      return kvBufSize;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    @Override<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    public void close() {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      if (!pread) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        reader.unbufferStream();<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      this.returnBlocks(true);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // HFile block's buffer so as to position to the next cell.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private int getCurCellSerializedSize() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.602"></a>
-<span class="sourceLineNo">603</span>          + currMemstoreTSLen;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      }<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return curCellSize;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    protected void readKeyValueLen() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      // byte buffer array a byte at a time.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      // earlier way is better by doing mark and reset?<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      // But ensure that you read long instead of two ints<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      // Read top half as an int of key length and bottom int as value length<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      checkKeyValueLen();<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        // Tags length is a short.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        checkTagsLen();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      readMvccVersion(p);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>    private final void checkTagsLen() {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      if (checkLen(this.currTagsLen)) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.638"></a>
-<span class="sourceLineNo">639</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.639"></a>
-<span class="sourceLineNo">640</span>            this.blockBuffer.limit() +<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    /**<a name="line.645"></a>
-<span class="sourceLineNo">646</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>     * @param offsetFromPos<a name="line.647"></a>
-<span class="sourceLineNo">648</span>     */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      // See if we even need to decode mvcc.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        currMemstoreTS = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        currMemstoreTSLen = 1;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>        return;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      _readMvccVersion(offsetFromPos);<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>    /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>     * Actually do the mvcc read. Does no checks.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>     * @param offsetFromPos<a name="line.662"></a>
-<span class="sourceLineNo">663</span>     */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      // Also the method is kept small so can be inlined.<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      if (len == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        this.currMemstoreTS = firstByte;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      } else {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        int remaining = len -1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>        long i = 0;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        offsetFromPos++;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          i = i &lt;&lt; 16;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          i = i | (s &amp; 0xFFFF);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          i = i &lt;&lt; 8;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>          i = i | (b &amp; 0xFF);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      }<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      this.currMemstoreTSLen = len;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    /**<a name="line.699"></a>
-<span class="sourceLineNo">700</span>     * Within a loaded block, seek looking for the last key that is smaller than<a name="line.700"></a>
-<span class="sourceLineNo">701</span>     * (or equal to?) the key we are interested in.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>     * A note on the seekBefore: if you have seekBefore = true, AND the first<a name="line.702"></a>
-<span class="sourceLineNo">703</span>     * key in the block = key, then you'll get thrown exceptions. The caller has<a name="line.703"></a>
-<span class="sourceLineNo">704</span>     * to check for that case and load the previous block as appropriate.<a name="line.704"></a>
-<span class="sourceLineNo">705</span>     * @param key<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     *          the key to find<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * @param seekBefore<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     *          find the key before the given key in case of exact match.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>     * @return 0 in case of an exact key match, 1 in case of an inexact match,<a name="line.709"></a>
-<span class="sourceLineNo">710</span>     *         -2 in case of an inexact match and furthermore, the input key<a name="line.710"></a>
-<span class="sourceLineNo">711</span>     *         less than the first key of current block(e.g. using a faked index<a name="line.711"></a>
-<span class="sourceLineNo">712</span>     *         key)<a name="line.712"></a>
-<span class="sourceLineNo">713</span>     */<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    protected int blockSeek(Cell key, boolean seekBefore) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      int klen, vlen, tlen = 0;<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      int lastKeyValueSize = -1;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      int offsetFromPos;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      do {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        offsetFromPos = 0;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        // Better to ensure that we use the BB Utils here<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        long ll = blockBuffer.getLongAfterPosition(offsetFromPos);<a name="line.721"></a>
-<span class="sourceLineNo">722</span>        klen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        vlen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        if (checkKeyLen(klen) || checkLen(vlen)) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>          throw new IllegalStateException("Invalid klen " + klen + " or vlen "<a name="line.725"></a>
-<span class="sourceLineNo">726</span>              + vlen + ". Block offset: "<a name="line.726"></a>
-<span class="sourceLineNo">727</span>              + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.727"></a>
-<span class="sourceLineNo">728</span>              + blockBuffer.position() + " (without header).");<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        }<a name="line.729"></a>
-<span class="sourceLineNo">730</span>        offsetFromPos += Bytes.SIZEOF_LONG;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        blockBuffer.asSubByteBuffer(blockBuffer.position() + offsetFromPos, klen, pair);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>        bufBackedKeyOnlyKv.setKey(pair.getFirst(), pair.getSecond(), klen);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>        int comp =<a name="line.733"></a>
-<span class="sourceLineNo">734</span>            PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), key, bufBackedKeyOnlyKv);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>        offsetFromPos += klen + vlen;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        if (this.reader.getFileContext().isIncludesTags()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>          // Read short as unsigned, high byte first<a name="line.737"></a>
-<span class="sourceLineNo">738</span>          tlen = ((blockBuffer.getByteAfterPosition(offsetFromPos) &amp; 0xff) &lt;&lt; 8)<a name="line.738"></a>
-<span class="sourceLineNo">739</span>              ^ (blockBuffer.getByteAfterPosition(offsetFromPos + 1) &amp; 0xff);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>          if (checkLen(tlen)) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            throw new IllegalStateException("Invalid tlen " + tlen + ". Block offset: "<a name="line.741"></a>
-<span class="sourceLineNo">742</span>                + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.742"></a>
-<span class="sourceLineNo">743</span>                + blockBuffer.position() + " (without header).");<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          }<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          // add the two bytes read for the tags.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          offsetFromPos += tlen + (Bytes.SIZEOF_SHORT);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        if (this.reader.shouldIncludeMemStoreTS()) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>          // Directly read the mvcc based on current position<a name="line.749"></a>
-<span class="sourceLineNo">750</span>          readMvccVersion(offsetFromPos);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>        }<a name="line.751"></a>
-<span class="sourceLineNo">752</span>        if (comp == 0) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>          if (seekBefore) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>            if (lastKeyValueSize &lt; 0) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>              throw new IllegalStateException("blockSeek with seekBefore "<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  + "at the first key of the block: key=" + CellUtil.getCellKeyAsString(key)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                  + ", blockOffset=" + curBlock.getOffset() + ", onDiskSize="<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                  + curBlock.getOnDiskSizeWithHeader());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            readKeyValueLen();<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            return 1; // non exact match.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>          }<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          currKeyLen = klen;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          currValueLen = vlen;<a name="line.765"></a>
-<span class="sourceLineNo">766</span>          currTagsLen = tlen;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>          return 0; // indicate exact match<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        } else if (comp &lt; 0) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          if (lastKeyValueSize &gt; 0) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          readKeyValueLen();<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          if (lastKeyValueSize == -1 &amp;&amp; blockBuffer.position() == 0) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>            return HConstants.INDEX_KEY_MAGIC;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          }<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          return 1;<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
-<span class="sourceLineNo">778</span>        // The size of this key/value tuple, including key/value length fields.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        lastKeyValueSize = klen + vlen + currMemstoreTSLen + KEY_VALUE_LEN_SIZE;<a name="line.779"></a>
-<span class="sourceLineNo">780</span>        // include tag length also if tags included with KV<a name="line.780"></a>
-<span class="sourceLineNo">781</span>        if (reader.getFileContext().isIncludesTags()) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>          lastKeyValueSize += tlen + Bytes.SIZEOF_SHORT;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        blockBuffer.skip(lastKeyValueSize);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      } while (blockBuffer.hasRemaining());<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>      // Seek to the last key we successfully read. This will happen if this is<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      // the last key/value pair in the file, in which case the following call<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      // to next() has to return false.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      blockBuffer.moveBack(lastKeyValueSize);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      readKeyValueLen();<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      return 1; // didn't exactly find it.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    }<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    @Override<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    public Cell getNextIndexedKey() {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      return nextIndexedKey;<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>    @Override<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    public int seekTo(Cell key) throws IOException {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      return seekTo(key, true);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    @Override<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    public int reseekTo(Cell key) throws IOException {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      int compared;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (isSeeked()) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        compared = compareKey(reader.getComparator(), key);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        if (compared &lt; 1) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span>          // If the required key is less than or equal to current key, then<a name="line.811"></a>
-<span class="sourceLineNo">812</span>          // don't do anything.<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          return compared;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } else {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          // The comparison with no_next_index_key has to be checked<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          if (this.nextIndexedKey != null &amp;&amp;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>              (this.nextIndexedKey == KeyValueScanner.NO_NEXT_INDEXED_KEY || PrivateCellUtil<a name="line.817"></a>
-<span class="sourceLineNo">818</span>                  .compareKeyIgnoresMvcc(reader.getComparator(), key, nextIndexedKey) &lt; 0)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            // The reader shall continue to scan the current data block instead<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            // of querying the<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            // block index as long as it knows the target key is strictly<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            // smaller than<a name="line.822"></a>
-<span class="sourceLineNo">823</span>            // the next indexed key or the current data block is the last data<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // block.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            return loadBlockAndSeekToKey(this.curBlock, nextIndexedKey, false, key,<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                false);<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      // Don't rewind on a reseek operation, because reseek implies that we are<a name="line.831"></a>
-<span class="sourceLineNo">832</span>      // always going forward in the file.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      return seekTo(key, false);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    }<a name="line.834"></a>
-<span class="sourceLineNo">835</span><a name="line.835"></a>
-<span class="sourceLineNo">836</span>    /**<a name="line.836"></a>
-<span class="sourceLineNo">837</span>     * An internal API function. Seek to the given key, optionally rewinding to<a name="line.837"></a>
-<span class="sourceLineNo">838</span>     * the first key of the block before doing the seek.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>     *<a name="line.839"></a>
-<span class="sourceLineNo">840</span>     * @param key - a cell representing the key that we need to fetch<a name="line.840"></a>
-<span class="sourceLineNo">841</span>     * @param rewind whether to rewind to the first key of the block before<a name="line.841"></a>
-<span class="sourceLineNo">842</span>     *        doing the seek. If this is false, we are assuming we never go<a name="line.842"></a>
-<span class="sourceLineNo">843</span>     *        back, otherwise the result is undefined.<a name="line.843"></a>
-<span class="sourceLineNo">844</span>     * @return -1 if the key is earlier than the first key of the file,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>     *         0 if we are at the given key, 1 if we are past the given key<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     *         -2 if the key is earlier than the first key of the file while<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     *         using a faked index key<a name="line.847"></a>
-<span class="sourceLineNo">848</span>     * @throws IOException<a name="line.848"></a>
-<span class="sourceLineNo">849</span>     */<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    public int seekTo(Cell key, boolean rewind) throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      HFileBlockIndex.BlockIndexReader indexReader = reader.getDataBlockIndexReader();<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      BlockWithScanInfo blockWithScanInfo = indexReader.loadDataBlockWithScanInfo(key, curBlock,<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          cacheBlocks, pread, isCompaction, getEffectiveDataBlockEncoding());<a name="line.853"></a>
-<span class="sourceLineNo">854</span>      if (blockWithScanInfo == null || blockWithScanInfo.getHFileBlock() == null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>        // This happens if the key e.g. falls before the beginning of the<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        // file.<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        return -1;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      return loadBlockAndSeekToKey(blockWithScanInfo.getHFileBlock(),<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          blockWithScanInfo.getNextIndexedKey(), rewind, key, false);<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
-<span class="sourceLineNo">862</span><a name="line.862"></a>
-<span class="sourceLineNo">863</span>    @Override<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    public boolean seekBefore(Cell key) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      HFileBlock seekToBlock = reader.getDataBlockIndexReader().seekToDataBlock(key, curBlock,<a name="line.865"></a>
-<span class="sourceLineNo">866</span>          cacheBlocks, pread, isCompaction, reader.getEffectiveEncodingInCache(isCompaction));<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (seekToBlock == null) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        return false;<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      Cell firstKey = getFirstKeyCellInBlock(seekToBlock);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      if (PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), firstKey, key) &gt;= 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        long previousBlockOffset = seekToBlock.getPrevBlockOffset();<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        // The key we are interested in<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        if (previousBlockOffset == -1) {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          // we have a 'problem', the key we want is the first of the file.<a name="line.875"></a>
-<span class="sourceLineNo">876</span>          return false;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // The first key in the current block 'seekToBlock' is greater than the given<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        // seekBefore key. We will go ahead by reading the next block that satisfies the<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        // given key. Return the current block before reading the next one.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>        reader.returnBlock(seekToBlock);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        // It is important that we compute and pass onDiskSize to the block<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        // reader so that it does not have to read the header separately to<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        // figure out the size.  Currently, we do not have a way to do this<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        // correctly in the general case however.<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        // TODO: See https://issues.apache.org/jira/browse/HBASE-14576<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        int prevBlockSize = -1;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        seekToBlock = reader.readBlock(previousBlockOffset,<a name="line.889"></a>
-<span class="sourceLineNo">890</span>            prevBlockSize, cacheBlocks,<a name="line.890"></a>
-<span class="sourceLineNo">891</span>            pread, isCompaction, true, BlockType.DATA, getEffectiveDataBlockEncoding());<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        // TODO shortcut: seek forward in this block to the last key of the<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        // block.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      loadBlockAndSeekToKey(seekToBlock, firstKey, true, key, true);<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      return true;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>    /**<a name="line.899"></a>
-<span class="sourceLineNo">900</span>     * Scans blocks in the "scanned" section of the {@link HFile} until the next<a name="line.900"></a>
-<span class="sourceLineNo">901</span>     * data block is found.<a name="line.901"></a>
-<span class="sourceLineNo">902</span>     *<a name="line.902"></a>
-<span class="sourceLineNo">903</span>     * @return the next block, or null if there are no more data blocks<a name="line.903"></a>
-<span class="sourceLineNo">904</span>     * @throws IOException<a name="line.904"></a>
-<span class="sourceLineNo">905</span>     */<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.906"></a>
-<span class="sourceLineNo">907</span>        justification="Yeah, unnecessary null check; could do w/ clean up")<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    protected HFileBlock readNextDataBlock() throws IOException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>      long lastDataBlockOffset = reader.getTrailer().getLastDataBlockOffset();<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (curBlock == null)<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        return null;<a name="line.911"></a>
-<span class="sourceLineNo">912</span><a name="line.912"></a>
-<span class="sourceLineNo">913</span>      HFileBlock block = this.curBlock;<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>      do {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        if (block.getOffset() &gt;= lastDataBlockOffset) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>          return null;<a name="line.917"></a>
-<span class="sourceLineNo">918</span>        }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>        if (block.getOffset() &lt; 0) {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>          throw new IOException("Invalid block file offset: " + block);<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
-<span class="sourceLineNo">923</span><a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // We are reading the next block without block type validation, because<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        // it might turn out to be a non-data block.<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        block = reader.readBlock(block.getOffset() + block.getOnDiskSizeWithHeader(),<a name="line.926"></a>
-<span class="sourceLineNo">927</span>            block.getNextBlockOnDiskSize(), cacheBlocks, pread,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>            isCompaction, true, null, getEffectiveDataBlockEncoding());<a name="line.928"></a>
-<span class="sourceLineNo">929</span>        if (block != null &amp;&amp; !block.getBlockType().isData()) { // Findbugs: NP_NULL_ON_SOME_PATH<a name="line.929"></a>
-<span class="sourceLineNo">930</span>          // Whatever block we read we will be returning it unless<a name="line.930"></a>
-<span class="sourceLineNo">931</span>          // it is a datablock. Just in case the blocks are non data blocks<a name="line.931"></a>
-<span class="sourceLineNo">932</span>          reader.returnBlock(block);<a name="line.932"></a>
-<span class="sourceLineNo">933</span>        }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      } while (!block.getBlockType().isData());<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>      return block;<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">373</span>    if (block != null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      this.cacheConf.getBlockCache().ifPresent(blockCache -&gt; {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        BlockCacheKey cacheKey =<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            new BlockCacheKey(this.getFileContext().getHFileName(), block.getOffset(),<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        blockCache.returnBlock(cacheKey, block);<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>  }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   *         first KeyValue.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    if (dataBlockIndexReader == null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      throw new BlockIndexNotLoadedException();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   *<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * @return the first row key, or null if the file is empty.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    // We have to copy the row part to form the row key alone<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>  /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   *<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @return the last row key, or null if the file is empty.<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // We have to copy the row part to form the row key alone<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    return getLastKey().map(CellUtil::cloneRow);<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>  /** @return number of KV entries in this HFile */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  public long getEntries() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    return trailer.getEntryCount();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  /** @return comparator */<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  public CellComparator getComparator() {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return comparator;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /** @return compression algorithm */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  @Override<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    return compressAlgo;<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>  /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public long indexSize() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.446"></a>
+<span class="sourceLineNo">447</span>            : 0);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>  @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>  public String getName() {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    return name;<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>  @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    return dataBlockIndexReader;<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>  @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>  public FixedFileTrailer getTrailer() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    return trailer;<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>  @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  public boolean isPrimaryReplicaReader() {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    return primaryReplicaReader;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * is invoked on a scanner that is not seeked.<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  @SuppressWarnings("serial")<a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    public NotSeekedException() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      super("Not seeked to a key/value");<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><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    private ByteBuff blockBuffer;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    protected final boolean cacheBlocks;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    protected final boolean pread;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    protected final boolean isCompaction;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    private int currKeyLen;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    private int currValueLen;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    private int currMemstoreTSLen;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    private long currMemstoreTS;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Updated but never read?<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    protected final HFile.Reader reader;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    private int currTagsLen;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // buffer backed keyonlyKV<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<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>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.506"></a>
+<span class="sourceLineNo">507</span>     * current data block is the last data block.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>     *<a name="line.508"></a>
+<span class="sourceLineNo">509</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.509"></a>
+<span class="sourceLineNo">510</span>     */<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    protected Cell nextIndexedKey;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // Current block being used<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    protected HFileBlock curBlock;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // Previous blocks that were used in the course of the read<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        final boolean pread, final boolean isCompaction) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      this.reader = reader;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      this.cacheBlocks = cacheBlocks;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      this.pread = pread;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>      this.isCompaction = isCompaction;<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>    void updateCurrBlockRef(HFileBlock block) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        return;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        prevBlocks.add(this.curBlock);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      this.curBlock = block;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>    void reset() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        this.prevBlocks.add(this.curBlock);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      this.curBlock = null;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private void returnBlockToCache(HFileBlock block) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      if (LOG.isTraceEnabled()) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        LOG.trace("Returning the block : " + block);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      this.reader.returnBlock(block);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    private void returnBlocks(boolean returnAll) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      this.prevBlocks.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        returnBlockToCache(this.curBlock);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        this.curBlock = null;<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>    @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    public boolean isSeeked(){<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return blockBuffer != null;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>    @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    public String toString() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      if (!isSeeked())<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        throw new NotSeekedException();<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>    @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    public HFile.Reader getReader() {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      return reader;<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>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    private int getKVBufSize() {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      if (currTagsLen &gt; 0) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      return kvBufSize;<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>    @Override<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    public void close() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      if (!pread) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        reader.unbufferStream();<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.returnBlocks(true);<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>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    // HFile block's buffer so as to position to the next cell.<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    private int getCurCellSerializedSize() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.605"></a>
+<span class="sourceLineNo">606</span>          + currMemstoreTSLen;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      return curCellSize;<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>    protected void readKeyValueLen() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.616"></a>
+<span class="sourceLineNo">617</span>      // byte buffer array a byte at a time.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      // earlier way is better by doing mark and reset?<a name="line.621"></a>
+<span class="sourceLineNo">622</span>      // But ensure that you read long instead of two ints<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      // Read top half as an int of key length and bottom int as value length<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>      checkKeyValueLen();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        // Tags length is a short.<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        checkTagsLen();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      readMvccVersion(p);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    private final void checkTagsLen() {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      if (checkLen(this.currTagsLen)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.641"></a>
+<span class="sourceLineNo">642</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.642"></a>
+<span class="sourceLineNo">643</span>            this.blockBuffer.limit() +<a name="line.643"></a>
+<span class="sourceLineNo">644</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>    /**<a name="line.648"></a>
+<span class="sourceLineNo">649</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.649"></a>
+<span class="sourceLineNo">650</span>     * @param offsetFromPos<a name="line.650"></a>
+<span class="sourceLineNo">651</span>     */<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      // See if we even need to decode mvcc.<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        currMemstoreTS = 0;<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        currMemstoreTSLen = 1;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        return;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      _readMvccVersion(offsetFromPos);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>    /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>     * Actually do the mvcc read. Does no checks.<a name="line.664"></a>
+<span class="sourceLineNo">665</span>     * @param offsetFromPos<a name="line.665"></a>
+<span class="sourceLineNo">666</span>     */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      // Also the method is kept small so can be inlined.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      if (len == 1) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        this.currMemstoreTS = firstByte;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      } else {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        int remaining = len -1;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        long i = 0;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        offsetFromPos++;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>          i = i &lt;&lt; 16;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>          i = i | (s &amp; 0xFFFF);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>          i = i &lt;&lt; 8;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>          i = i | (b &amp; 0xFF);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      this.currMemstoreTSLen = len;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>    /**<a name="line.702"></a>
+<span class="sourceLineNo">703</span>     * Within 

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
index a489bf0..4ec6398 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
@@ -627,7 +627,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>writeSingleLevelIndex</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1139">writeSingleLevelIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1141">writeSingleLevelIndex</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out,
                                   <a href="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;description)
                            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 block index data as a single level only. Does not do any
@@ -649,7 +649,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>writeIntermediateLevel</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexChunk</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1173">writeIntermediateLevel</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;out,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexChunk</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1175">writeIntermediateLevel</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;out,
                                                                <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexChunk</a>&nbsp;currentLevel)
                                                         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">Split the current level of the block index into intermediate index
@@ -674,7 +674,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>writeIntermediateBlock</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1200">writeIntermediateBlock</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;out,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1202">writeIntermediateBlock</a>(org.apache.hadoop.fs.FSDataOutputStream&nbsp;out,
                                     <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexChunk</a>&nbsp;parent,
                                     <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexChunk</a>&nbsp;curChunk)
                              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>
@@ -690,7 +690,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumRootEntries</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1236">getNumRootEntries</a>()</pre>
+<pre>public final&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1241">getNumRootEntries</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>how many block index entries there are in the root level</dd>
@@ -703,7 +703,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLevels</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1243">getNumLevels</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1248">getNumLevels</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of levels in this block index.</dd>
@@ -716,7 +716,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>expectNumLevels</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1247">expectNumLevels</a>(int&nbsp;expectedNumLevels)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1252">expectNumLevels</a>(int&nbsp;expectedNumLevels)</pre>
 </li>
 </ul>
 <a name="shouldWriteBlock-boolean-">
@@ -725,7 +725,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldWriteBlock</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1260">shouldWriteBlock</a>(boolean&nbsp;closing)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1265">shouldWriteBlock</a>(boolean&nbsp;closing)</pre>
 <div class="block">Whether there is an inline block ready to be written. In general, we
  write an leaf-level index block as an inline block as soon as its size
  as serialized in the non-root format reaches a certain threshold.</div>
@@ -744,7 +744,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>writeInlineBlock</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1299">writeInlineBlock</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1304">writeInlineBlock</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
                       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 out the current inline index block. Inline blocks are non-root
  blocks, so the non-root index format is used.</div>
@@ -764,7 +764,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>blockWritten</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1320">blockWritten</a>(long&nbsp;offset,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1325">blockWritten</a>(long&nbsp;offset,
                          int&nbsp;onDiskSize,
                          int&nbsp;uncompressedSize)</pre>
 <div class="block">Called after an inline block has been written so that we can add an
@@ -785,7 +785,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>getInlineBlockType</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1347">getInlineBlockType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1352">getInlineBlockType</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlockWriter.html#getInlineBlockType--">InlineBlockWriter</a></code></span></div>
 <div class="block">The type of blocks this block writer produces.</div>
 <dl>
@@ -800,7 +800,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>addEntry</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1361">addEntry</a>(byte[]&nbsp;firstKey,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1366">addEntry</a>(byte[]&nbsp;firstKey,
                      long&nbsp;blockOffset,
                      int&nbsp;blockDataSize)</pre>
 <div class="block">Add one index entry to the current leaf-level block. When the leaf-level
@@ -821,7 +821,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>ensureSingleLevel</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1369">ensureSingleLevel</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1374">ensureSingleLevel</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>
@@ -835,7 +835,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockList">
 <li class="blockList">
 <h4>getCacheOnWrite</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1383">getCacheOnWrite</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1388">getCacheOnWrite</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlockWriter.html#getCacheOnWrite--">getCacheOnWrite</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlockWriter.html" title="interface in org.apache.hadoop.hbase.io.hfile">InlineBlockWriter</a></code></dd>
@@ -852,7 +852,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlo
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getTotalUncompressedSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1393">getTotalUncompressedSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#line.1398">getTotalUncompressedSize</a>()</pre>
 <div class="block">The total uncompressed size of the root index block, intermediate-level
  index blocks, and leaf-level index blocks.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
index 07ab9b0..ccaa6c4 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
@@ -440,7 +440,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxChunkSize</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html#line.1679">getMaxChunkSize</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html#line.1684">getMaxChunkSize</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="getMinIndexNumEntries-org.apache.hadoop.conf.Configuration-">
@@ -449,7 +449,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMinIndexNumEntries</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html#line.1683">getMinIndexNumEntries</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html#line.1688">getMinIndexNumEntries</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
index e6fcc59..f95806d 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1596">HFileReaderImpl.EncodedScanner</a>
+<pre>protected static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1598">HFileReaderImpl.EncodedScanner</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.HFileScannerImpl</a></pre>
 <div class="block">Scanner that operates on encoded data blocks.</div>
 </li>
@@ -312,7 +312,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>decodingCtx</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/HFileBlockDecodingContext.html" title="interface in org.apache.hadoop.hbase.io.encoding">HFileBlockDecodingContext</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1597">decodingCtx</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/HFileBlockDecodingContext.html" title="interface in org.apache.hadoop.hbase.io.encoding">HFileBlockDecodingContext</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1599">decodingCtx</a></pre>
 </li>
 </ul>
 <a name="seeker">
@@ -321,7 +321,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>seeker</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.EncodedSeeker.html" title="interface in org.apache.hadoop.hbase.io.encoding">DataBlockEncoder.EncodedSeeker</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1598">seeker</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.EncodedSeeker.html" title="interface in org.apache.hadoop.hbase.io.encoding">DataBlockEncoder.EncodedSeeker</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1600">seeker</a></pre>
 </li>
 </ul>
 <a name="dataBlockEncoder">
@@ -330,7 +330,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockListLast">
 <li class="blockList">
 <h4>dataBlockEncoder</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.html" title="interface in org.apache.hadoop.hbase.io.encoding">DataBlockEncoder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1599">dataBlockEncoder</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.html" title="interface in org.apache.hadoop.hbase.io.encoding">DataBlockEncoder</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1601">dataBlockEncoder</a></pre>
 </li>
 </ul>
 </li>
@@ -347,7 +347,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EncodedScanner</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1601">EncodedScanner</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a>&nbsp;reader,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1603">EncodedScanner</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a>&nbsp;reader,
                       boolean&nbsp;cacheBlocks,
                       boolean&nbsp;pread,
                       boolean&nbsp;isCompaction,
@@ -368,7 +368,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>isSeeked</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1612">isSeeked</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1614">isSeeked</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#isSeeked--">isSeeked</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a></code></dd>
@@ -387,7 +387,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>setNonSeekedState</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1617">setNonSeekedState</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1619">setNonSeekedState</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#setNonSeekedState--">setNonSeekedState</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.HFileScannerImpl</a></code></dd>
@@ -400,7 +400,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCurrentBlock</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1629">updateCurrentBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;newBlock)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1631">updateCurrentBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;newBlock)
                            throws <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CorruptHFileException.html" title="class in org.apache.hadoop.hbase.io.hfile">CorruptHFileException</a></pre>
 <div class="block">Updates the current block to be the given <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFileBlock</code></a>. Seeks to
  the the first key/value pair.</div>
@@ -420,7 +420,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>getEncodedBuffer</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1651">getEncodedBuffer</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;newBlock)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1653">getEncodedBuffer</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;newBlock)</pre>
 </li>
 </ul>
 <a name="processFirstDataBlock--">
@@ -429,7 +429,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>processFirstDataBlock</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1661">processFirstDataBlock</a>()
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1663">processFirstDataBlock</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">Overrides:</span></dt>
@@ -445,7 +445,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1667">next</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1669">next</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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#next--">HFileReaderImpl.HFileScannerImpl</a></code></span></div>
 <div class="block">Go to the next key/value in the block section. Loads the next block if
@@ -469,7 +469,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>getKey</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1682">getKey</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1684">getKey</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getKey--">HFileScanner</a></code></span></div>
 <div class="block">Gets the current key in the form of a cell. You must call
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -489,7 +489,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>getValue</h4>
-<pre>public&nbsp;<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1688">getValue</a>()</pre>
+<pre>public&nbsp;<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1690">getValue</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getValue--">HFileScanner</a></code></span></div>
 <div class="block">Gets a buffer view to the current value.  You must call
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -510,7 +510,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>getCell</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1694">getCell</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1696">getCell</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getCell--">getCell</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a></code></dd>
@@ -527,7 +527,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>getKeyString</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/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1702">getKeyString</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/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1704">getKeyString</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getKeyString--">HFileScanner</a></code></span></div>
 <div class="block">Convenience method to get a copy of the key as a string - interpreting the
  bytes as UTF8. You must call <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -547,7 +547,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>getValueString</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/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1707">getValueString</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/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1709">getValueString</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getValueString--">HFileScanner</a></code></span></div>
 <div class="block">Convenience method to get a copy of the value as a string - interpreting
  the bytes as UTF8. You must call <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -567,7 +567,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>assertValidSeek</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1712">assertValidSeek</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1714">assertValidSeek</a>()</pre>
 </li>
 </ul>
 <a name="getFirstKeyCellInBlock-org.apache.hadoop.hbase.io.hfile.HFileBlock-">
@@ -576,7 +576,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>getFirstKeyCellInBlock</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1719">getFirstKeyCellInBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;curBlock)</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1721">getFirstKeyCellInBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;curBlock)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#getFirstKeyCellInBlock-org.apache.hadoop.hbase.io.hfile.HFileBlock-">getFirstKeyCellInBlock</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.HFileScannerImpl</a></code></dd>
@@ -589,7 +589,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockList">
 <li class="blockList">
 <h4>loadBlockAndSeekToKey</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1724">loadBlockAndSeekToKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;seekToBlock,
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1726">loadBlockAndSeekToKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;seekToBlock,
                                     <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextIndexedKey,
                                     boolean&nbsp;rewind,
                                     <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
@@ -609,7 +609,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderI
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compareKey</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1737">compareKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html#line.1739">compareKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator,
                       <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
index 1124f8b..0c29054 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html
@@ -1111,587 +1111,592 @@
 <span class="sourceLineNo">1103</span>          blockStream.write(midKeyMetadata);<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>        blockWriter.writeHeaderAndData(out);<a name="line.1104"></a>
 <span class="sourceLineNo">1105</span>        if (cacheConf != null) {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>          cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>            rootLevelIndexPos, true, blockForCaching.getBlockType()), blockForCaching);<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><a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      // Add root index block size<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      totalBlockUncompressedSize +=<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      if (LOG.isTraceEnabled()) {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>          " on-disk size, "<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>          " total uncompressed size.");<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      return rootLevelIndexPos;<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>    /**<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>     * block framing.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>     *<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>     *          stream writing into an {@link HFile} block.<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>     * @param description a short description of the index being written. Used<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>     *          in a log message.<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>     * @throws IOException<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>     */<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>        throws IOException {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      expectNumLevels(1);<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (!singleLevelOnly)<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>        throw new IOException("Single-level mode is turned off");<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        throw new IOException("Root-level entries already added in " +<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>            "single-level mode");<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span><a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      rootChunk = curInlineChunk;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>      if (LOG.isTraceEnabled()) {<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>          + " bytes");<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      }<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      rootChunk.writeRoot(out);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    /**<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>     * Split the current level of the block index into intermediate index<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>     *<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>     * @param out<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>     *          chunk referencing all leaf-level index blocks<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>     * @return the parent level block index, which becomes the root index after<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>     *         a few (usually zero) iterations<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>     * @throws IOException<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>     */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span><a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      // The current intermediate-level block index chunk.<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span><a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span><a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>          writeIntermediateBlock(out, parent, curChunk);<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>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>      }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      return parent;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>    }<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      long beginOffset = out.getPos();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      curChunk.writeNonRoot(dos);<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      blockWriter.writeHeaderAndData(out);<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      if (getCacheOnWrite()) {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>        HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>          beginOffset, true, blockForCaching.getBlockType()), blockForCaching);<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // Add intermediate index block size<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      totalBlockUncompressedSize +=<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1218"></a>
+<span class="sourceLineNo">1106</span>          cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>            HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>            cache.cacheBlock(new BlockCacheKey(nameForCaching, rootLevelIndexPos, true,<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                blockForCaching.getBlockType()), blockForCaching);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>          });<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      // Add root index block size<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      totalBlockUncompressedSize +=<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>      if (LOG.isTraceEnabled()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          " on-disk size, "<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>          " total uncompressed size.");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      return rootLevelIndexPos;<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    /**<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>     * block framing.<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>     *<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>     *          stream writing into an {@link HFile} block.<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>     * @param description a short description of the index being written. Used<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>     *          in a log message.<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>     * @throws IOException<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>     */<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        throws IOException {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      expectNumLevels(1);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      if (!singleLevelOnly)<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>        throw new IOException("Single-level mode is turned off");<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        throw new IOException("Root-level entries already added in " +<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>            "single-level mode");<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      rootChunk = curInlineChunk;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      if (LOG.isTraceEnabled()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          + " bytes");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>      }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      rootChunk.writeRoot(out);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>     * Split the current level of the block index into intermediate index<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>     *<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>     * @param out<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>     *          chunk referencing all leaf-level index blocks<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>     * @return the parent level block index, which becomes the root index after<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>     *         a few (usually zero) iterations<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>     * @throws IOException<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>     */<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span><a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>      // The current intermediate-level block index chunk.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span><a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>          writeIntermediateBlock(out, parent, curChunk);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span><a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      return parent;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>      long beginOffset = out.getPos();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      curChunk.writeNonRoot(dos);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      blockWriter.writeHeaderAndData(out);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (getCacheOnWrite()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>          cache.cacheBlock(<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>              new BlockCacheKey(nameForCaching, beginOffset, true, blockForCaching.getBlockType()),<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>              blockForCaching);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        });<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>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>      // + the secondary index size<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // entries.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      parent.add(curFirstKey, beginOffset,<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span><a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      // clear current block index chunk<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      curChunk.clear();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      curFirstKey = null;<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    }<a name="line.1231"></a>
+<span class="sourceLineNo">1220</span>      // Add intermediate index block size<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      totalBlockUncompressedSize +=<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span><a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      // + the secondary index size<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      // entries.<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      parent.add(curFirstKey, beginOffset,<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span><a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    /**<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>     * @return how many block index entries there are in the root level<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>     */<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    public final int getNumRootEntries() {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return rootChunk.getNumEntries();<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>     * @return the number of levels in this block index.<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>     */<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>    public int getNumLevels() {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>      return numLevels;<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    }<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span><a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>      if (numLevels != expectedNumLevels) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>            + numLevels + "but is expected to be " + expectedNumLevels);<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>     * Whether there is an inline block ready to be written. In general, we<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>     */<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    @Override<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>      if (singleLevelOnly) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span><a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      if (curInlineChunk == null) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>            "called with closing=true and then called again?");<a name="line.1267"></a>
+<span class="sourceLineNo">1233</span>      // clear current block index chunk<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>      curChunk.clear();<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>      curFirstKey = null;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>    }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span><a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    /**<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>     * @return how many block index entries there are in the root level<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>     */<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>    public final int getNumRootEntries() {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>      return rootChunk.getNumEntries();<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>    }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>    /**<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>     * @return the number of levels in this block index.<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>     */<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    public int getNumLevels() {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return numLevels;<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>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>      if (numLevels != expectedNumLevels) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>            + numLevels + "but is expected to be " + expectedNumLevels);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>      }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    /**<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>     * Whether there is an inline block ready to be written. In general, we<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>     */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>    @Override<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      if (singleLevelOnly) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<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>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        return false;<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      // We do have some entries in the current inline chunk.<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      if (closing) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>          // leaf level with one block, move these entries to the root level.<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          expectNumLevels(1);<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          rootChunk = curInlineChunk;<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          curInlineChunk = null;  // Disallow adding any more index entries.<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>          return false;<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>        return true;<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>      } else {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    /**<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>     * blocks, so the non-root index format is used.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>     *<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>     * @param out<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>     */<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>    @Override<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      if (singleLevelOnly)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span><a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>      // Write the inline block index to the output stream in the non-root<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      // index block format.<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      curInlineChunk.writeNonRoot(out);<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      // parent-level index.<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      // Start a new inline index block<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      curInlineChunk.clear();<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    }<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>     * Called after an inline block has been written so that we can add an<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>     * entry referring to that block to the parent-level index.<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>     */<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    @Override<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>      // Add leaf index block size<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      if (singleLevelOnly)<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span><a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      if (firstKey == null) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>            "but the first key was not set in writeInlineBlock");<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>      if (rootChunk.getNumEntries() == 0) {<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        // We are writing the first leaf block, so increase index level.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        expectNumLevels(1);<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        numLevels = 2;<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>      // Add another entry to the second-level index. Include the number of<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      firstKey = null;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    }<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span><a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    @Override<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    public BlockType getInlineBlockType() {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      return BlockType.LEAF_INDEX;<a name="line.1348"></a>
+<span class="sourceLineNo">1270</span>      if (curInlineChunk == null) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>            "called with closing=true and then called again?");<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>        return false;<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>      // We do have some entries in the current inline chunk.<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      if (closing) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>          // leaf level with one block, move these entries to the root level.<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          expectNumLevels(1);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          rootChunk = curInlineChunk;<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          curInlineChunk = null;  // Disallow adding any more index entries.<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><a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        return true;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    /**<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>     * blocks, so the non-root index format is used.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>     *<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>     * @param out<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>     */<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>    @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      if (singleLevelOnly)<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>      // Write the inline block index to the output stream in the non-root<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      // index block format.<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>      curInlineChunk.writeNonRoot(out);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span><a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>      // parent-level index.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>      // Start a new inline index block<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>      curInlineChunk.clear();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span><a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    /**<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>     * Called after an inline block has been written so that we can add an<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>     * entry referring to that block to the parent-level index.<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>     */<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    @Override<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>      // Add leaf index block size<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>      if (singleLevelOnly)<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>      if (firstKey == null) {<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>            "but the first key was not set in writeInlineBlock");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>      if (rootChunk.getNumEntries() == 0) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>        // We are writing the first leaf block, so increase index level.<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        expectNumLevels(1);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        numLevels = 2;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>      }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>      // Add another entry to the second-level index. Include the number of<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>      firstKey = null;<a name="line.1348"></a>
 <span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
 <span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    /**<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>     *<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>     * @param firstKey the first key of the data block<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>     * @param blockOffset the offset of the data block<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>     *          {@link HFile} format version 1).<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>     */<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      ++totalNumEntries;<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>     * @throws IOException if we happened to write a multi-level index.<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>     */<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    public void ensureSingleLevel() throws IOException {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>      if (numLevels &gt; 1) {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>            "this is expected to be a single-level block index.");<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<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>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>     *         or null.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>     */<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    @Override<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>    public boolean getCacheOnWrite() {<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>    }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>    /**<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>     * index blocks, and leaf-level index blocks.<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>     *<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>     * @return the total uncompressed size of all index blocks<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>     */<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>    public long getTotalUncompressedSize() {<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      return totalBlockUncompressedSize;<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>    }<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span><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>  /**<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>   * block.<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>   */<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  static class BlockIndexChunk {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span><a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    /** Block offset in backing stream. */<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span><a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>    /**<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>     */<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    /**<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>     */<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span><a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    /**<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1430"></a>
+<span class="sourceLineNo">1351</span>    @Override<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    public BlockType getInlineBlockType() {<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      return BlockType.LEAF_INDEX;<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>    /**<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>     *<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>     * @param firstKey the first key of the data block<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>     * @param blockOffset the offset of the data block<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>     *          {@link HFile} format version 1).<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>     */<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>      ++totalNumEntries;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span><a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    /**<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>     * @throws IOException if we happened to write a multi-level index.<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>     */<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>    public void ensureSingleLevel() throws IOException {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>      if (numLevels &gt; 1) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>            "this is expected to be a single-level block index.");<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    /**<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>     *         or null.<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>     */<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>    @Override<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>    public boolean getCacheOnWrite() {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>    }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>    /**<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>     * index blocks, and leaf-level index blocks.<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>     *<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>     * @return the total uncompressed size of all index blocks<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>     */<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    public long getTotalUncompressedSize() {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      return totalBlockUncompressedSize;<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span><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>  /**<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>   * block.<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>   */<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  static class BlockIndexChunk {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>    /** Block offset in backing stream. */<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span><a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    /**<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>     */<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>    /**<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1430"></a>
 <span class="sourceLineNo">1431</span>     */<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>    private int curTotalRootSize = 0;<a name="line.1432"></a>
+<span class="sourceLineNo">1432</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1432"></a>
 <span class="sourceLineNo">1433</span><a name="line.1433"></a>
 <span class="sourceLineNo">1434</span>    /**<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>     * The "secondary index" used for binary search over variable-length<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>     * end of this secondary index.<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>     */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span><a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>    /**<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>     * Adds a new entry to this block index chunk.<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>     *<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>     *          entry<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>     *          entry, including header size<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>     *          construction, this specifies the current total number of<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>     *          corresponding to the second-level entry being added.<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>     */<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        long curTotalNumSubEntries) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      // Record the offset for the secondary index<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>          + firstKey.length;<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span><a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span><a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      blockKeys.add(firstKey);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      blockOffsets.add(blockOffset);<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span><a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>      if (curTotalNumSubEntries != -1) {<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>        // Make sure the parallel arrays are in sync.<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>              "entries out of " + blockKeys.size());<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>        }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      }<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>    }<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span><a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    /**<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    public void clear() {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      blockKeys.clear();<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      blockOffsets.clear();<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>      onDiskDataSizes.clear();<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>      secondaryIndexOffsetMarks.clear();<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>      numSubEntriesAt.clear();<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      curTotalNonRootEntrySize = 0;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      curTotalRootSize = 0;<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    }<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span><a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    /**<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>     * ordering of sub-entries.<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>     *<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>     * &lt;p&gt;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>     * numSubEntriesAt.<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>     *<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>     *         sub-entry<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>     */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    public int getEntryBySubEntry(long k) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      // We define mid-key as the key corresponding to k'th sub-entry<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      // (0-based).<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      int i = Collections.binarySearch(numSubEntriesAt, k);<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span><a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      // Exact match: cumulativeWeight[i] = k. This means chunks #0 through<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>      // #i contain exactly k sub-entries, and the sub-entry #k (0-based)<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // is in the (i + 1)'th chunk.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (i &gt;= 0)<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        return i + 1;<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span><a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Inexact match. Return the insertion point.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      return -i - 1;<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>    /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>     * Used when writing the root block index of a multi-level block index.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>     * Serializes additional information allowing to efficiently identify the<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>     * mid-key.<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>     *<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>     * @return a few serialized fields for finding the mid-key<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>     * @throws IOException if could not create metadata for computing mid-key<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>     */<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    public byte[] getMidKeyMetadata() throws IOException {<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>      ByteArrayOutputStream baos = new ByteArrayOutputStream(<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>          MID_KEY_METADATA_SIZE);<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>      DataOutputStream baosDos = new DataOutputStream(baos);<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      long totalNumSubEntries = numSubEntriesAt.get(blockKeys.size() - 1);<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      if (totalNumSubEntries == 0) {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>        throw new IOException("No leaf-level entries, mid-key unavailable");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      }<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      long midKeySubEntry = (totalNumSubEntries - 1) / 2;<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      int midKeyEntry = getEntryBySubEntry(midKeySubEntry);<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span><a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      baosDos.writeLong(blockOffsets.get(midKeyEntry));<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      baosDos.writeInt(onDiskDataSizes.get(midKeyEntry));<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span><a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      long numSubEntriesBefore = midKeyEntry &gt; 0<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>          ? numSubEntriesAt.get(midKeyEntry - 1) : 0;<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      long subEntryWithinEntry = midKeySubEntry - numSubEntriesBefore;<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      if (subEntryWithinEntry &lt; 0 || subEntryWithinEntry &gt; Integer.MAX_VALUE)<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>        throw new IOException("Could not identify mid-key index within the "<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>            + "leaf-level block containing mid-key: out of range ("<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>            + subEntryWithinEntry + ", numSubEntriesBefore="<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>            + numSubEntriesBefore + ", midKeySubEntry=" + midKeySubEntry<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>            + ")");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      }<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span><a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      baosDos.writeInt((int) subEntryWithinEntry);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span><a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      if (baosDos.size() != MID_KEY_METADATA_SIZE) {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>        throw new IOException("Could not write mid-key metadata: size=" +<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>            baosDos.size() + ", correct size: " + MID_KEY_METADATA_SIZE);<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
+<span class="sourceLineNo">1435</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>     */<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>    private int curTotalRootSize = 0;<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span><a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>    /**<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>     * The "secondary index" used for binary search over variable-length<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>     * end of this secondary index.<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>     */<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    /**<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>     * Adds a new entry to this block index chunk.<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>     *<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>     *          entry<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>     *          entry, including header size<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>     *          construction, this specifies the current total number of<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>     *          corresponding to the second-level entry being added.<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>     */<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        long curTotalNumSubEntries) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>      // Record the offset for the secondary index<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>          + firstKey.length;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span><a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      blockKeys.add(firstKey);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>      blockOffsets.add(blockOffset);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      if (curTotalNumSubEntries != -1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        // Make sure the parallel arrays are in sync.<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>              "entries out of " + blockKeys.size());<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>        }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>    }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    /**<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>     * key/value into account. Used for single-level indexes.<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>     *<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>     * @see #add(byte[], long, int, long)<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>     */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span><a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    public void clear() {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      blockKeys.clear();<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>      blockOffsets.clear();<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      onDiskDataSizes.clear();<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      secondaryIndexOffsetMarks.clear();<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>      numSubEntriesAt.clear();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>      curTotalNonRootEntrySize = 0;<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>      curTotalRootSize = 0;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    }<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>    /**<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>     * ordering of sub-entries.<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>     *<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>     * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>     * numSubEntriesAt.<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>     *<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>     *     

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
index 1124f8b..0c29054 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html
@@ -1111,587 +1111,592 @@
 <span class="sourceLineNo">1103</span>          blockStream.write(midKeyMetadata);<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>        blockWriter.writeHeaderAndData(out);<a name="line.1104"></a>
 <span class="sourceLineNo">1105</span>        if (cacheConf != null) {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>          cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>            rootLevelIndexPos, true, blockForCaching.getBlockType()), blockForCaching);<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><a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      // Add root index block size<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      totalBlockUncompressedSize +=<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      if (LOG.isTraceEnabled()) {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>          " on-disk size, "<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>          " total uncompressed size.");<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      return rootLevelIndexPos;<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>    /**<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>     * block framing.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>     *<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>     *          stream writing into an {@link HFile} block.<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>     * @param description a short description of the index being written. Used<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>     *          in a log message.<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>     * @throws IOException<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>     */<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>        throws IOException {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      expectNumLevels(1);<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (!singleLevelOnly)<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>        throw new IOException("Single-level mode is turned off");<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        throw new IOException("Root-level entries already added in " +<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>            "single-level mode");<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span><a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      rootChunk = curInlineChunk;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>      if (LOG.isTraceEnabled()) {<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>          + " bytes");<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      }<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      rootChunk.writeRoot(out);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    /**<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>     * Split the current level of the block index into intermediate index<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>     *<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>     * @param out<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>     *          chunk referencing all leaf-level index blocks<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>     * @return the parent level block index, which becomes the root index after<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>     *         a few (usually zero) iterations<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>     * @throws IOException<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>     */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span><a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      // The current intermediate-level block index chunk.<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span><a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span><a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>          writeIntermediateBlock(out, parent, curChunk);<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>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>      }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      return parent;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>    }<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      long beginOffset = out.getPos();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      curChunk.writeNonRoot(dos);<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      blockWriter.writeHeaderAndData(out);<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      if (getCacheOnWrite()) {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>        HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>          beginOffset, true, blockForCaching.getBlockType()), blockForCaching);<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // Add intermediate index block size<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      totalBlockUncompressedSize +=<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1218"></a>
+<span class="sourceLineNo">1106</span>          cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>            HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>            cache.cacheBlock(new BlockCacheKey(nameForCaching, rootLevelIndexPos, true,<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                blockForCaching.getBlockType()), blockForCaching);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>          });<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      // Add root index block size<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      totalBlockUncompressedSize +=<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>      if (LOG.isTraceEnabled()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          " on-disk size, "<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>          " total uncompressed size.");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      return rootLevelIndexPos;<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    /**<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>     * block framing.<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>     *<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>     *          stream writing into an {@link HFile} block.<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>     * @param description a short description of the index being written. Used<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>     *          in a log message.<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>     * @throws IOException<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>     */<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        throws IOException {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      expectNumLevels(1);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      if (!singleLevelOnly)<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>        throw new IOException("Single-level mode is turned off");<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        throw new IOException("Root-level entries already added in " +<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>            "single-level mode");<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      rootChunk = curInlineChunk;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      if (LOG.isTraceEnabled()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          + " bytes");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>      }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      rootChunk.writeRoot(out);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>     * Split the current level of the block index into intermediate index<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>     *<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>     * @param out<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>     *          chunk referencing all leaf-level index blocks<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>     * @return the parent level block index, which becomes the root index after<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>     *         a few (usually zero) iterations<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>     * @throws IOException<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>     */<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span><a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>      // The current intermediate-level block index chunk.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span><a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>          writeIntermediateBlock(out, parent, curChunk);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span><a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      return parent;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>      long beginOffset = out.getPos();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      curChunk.writeNonRoot(dos);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      blockWriter.writeHeaderAndData(out);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (getCacheOnWrite()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>          cache.cacheBlock(<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>              new BlockCacheKey(nameForCaching, beginOffset, true, blockForCaching.getBlockType()),<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>              blockForCaching);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        });<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>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>      // + the secondary index size<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // entries.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      parent.add(curFirstKey, beginOffset,<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span><a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      // clear current block index chunk<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      curChunk.clear();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      curFirstKey = null;<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    }<a name="line.1231"></a>
+<span class="sourceLineNo">1220</span>      // Add intermediate index block size<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      totalBlockUncompressedSize +=<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span><a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      // + the secondary index size<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      // entries.<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      parent.add(curFirstKey, beginOffset,<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span><a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    /**<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>     * @return how many block index entries there are in the root level<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>     */<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    public final int getNumRootEntries() {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return rootChunk.getNumEntries();<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>     * @return the number of levels in this block index.<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>     */<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>    public int getNumLevels() {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>      return numLevels;<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    }<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span><a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>      if (numLevels != expectedNumLevels) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>            + numLevels + "but is expected to be " + expectedNumLevels);<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>     * Whether there is an inline block ready to be written. In general, we<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>     */<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    @Override<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>      if (singleLevelOnly) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span><a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      if (curInlineChunk == null) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>            "called with closing=true and then called again?");<a name="line.1267"></a>
+<span class="sourceLineNo">1233</span>      // clear current block index chunk<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>      curChunk.clear();<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>      curFirstKey = null;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>    }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span><a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    /**<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>     * @return how many block index entries there are in the root level<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>     */<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>    public final int getNumRootEntries() {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>      return rootChunk.getNumEntries();<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>    }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>    /**<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>     * @return the number of levels in this block index.<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>     */<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    public int getNumLevels() {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return numLevels;<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>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>      if (numLevels != expectedNumLevels) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>            + numLevels + "but is expected to be " + expectedNumLevels);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>      }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    /**<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>     * Whether there is an inline block ready to be written. In general, we<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>     */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>    @Override<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      if (singleLevelOnly) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<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>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        return false;<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      // We do have some entries in the current inline chunk.<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      if (closing) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>          // leaf level with one block, move these entries to the root level.<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          expectNumLevels(1);<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          rootChunk = curInlineChunk;<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          curInlineChunk = null;  // Disallow adding any more index entries.<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>          return false;<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>        return true;<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>      } else {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    /**<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>     * blocks, so the non-root index format is used.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>     *<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>     * @param out<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>     */<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>    @Override<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      if (singleLevelOnly)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span><a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>      // Write the inline block index to the output stream in the non-root<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      // index block format.<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      curInlineChunk.writeNonRoot(out);<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      // parent-level index.<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      // Start a new inline index block<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      curInlineChunk.clear();<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    }<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>     * Called after an inline block has been written so that we can add an<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>     * entry referring to that block to the parent-level index.<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>     */<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    @Override<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>      // Add leaf index block size<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      if (singleLevelOnly)<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span><a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      if (firstKey == null) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>            "but the first key was not set in writeInlineBlock");<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>      if (rootChunk.getNumEntries() == 0) {<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        // We are writing the first leaf block, so increase index level.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        expectNumLevels(1);<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        numLevels = 2;<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>      // Add another entry to the second-level index. Include the number of<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      firstKey = null;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    }<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span><a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    @Override<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    public BlockType getInlineBlockType() {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      return BlockType.LEAF_INDEX;<a name="line.1348"></a>
+<span class="sourceLineNo">1270</span>      if (curInlineChunk == null) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>            "called with closing=true and then called again?");<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>        return false;<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>      // We do have some entries in the current inline chunk.<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      if (closing) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>          // leaf level with one block, move these entries to the root level.<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          expectNumLevels(1);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          rootChunk = curInlineChunk;<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          curInlineChunk = null;  // Disallow adding any more index entries.<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><a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        return true;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    /**<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>     * blocks, so the non-root index format is used.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>     *<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>     * @param out<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>     */<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>    @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      if (singleLevelOnly)<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>      // Write the inline block index to the output stream in the non-root<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      // index block format.<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>      curInlineChunk.writeNonRoot(out);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span><a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>      // parent-level index.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>      // Start a new inline index block<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>      curInlineChunk.clear();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span><a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    /**<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>     * Called after an inline block has been written so that we can add an<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>     * entry referring to that block to the parent-level index.<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>     */<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    @Override<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>      // Add leaf index block size<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>      if (singleLevelOnly)<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>      if (firstKey == null) {<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>            "but the first key was not set in writeInlineBlock");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>      if (rootChunk.getNumEntries() == 0) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>        // We are writing the first leaf block, so increase index level.<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        expectNumLevels(1);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        numLevels = 2;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>      }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>      // Add another entry to the second-level index. Include the number of<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>      firstKey = null;<a name="line.1348"></a>
 <span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
 <span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    /**<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>     *<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>     * @param firstKey the first key of the data block<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>     * @param blockOffset the offset of the data block<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>     *          {@link HFile} format version 1).<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>     */<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      ++totalNumEntries;<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>     * @throws IOException if we happened to write a multi-level index.<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>     */<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    public void ensureSingleLevel() throws IOException {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>      if (numLevels &gt; 1) {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>            "this is expected to be a single-level block index.");<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<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>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>     *         or null.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>     */<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    @Override<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>    public boolean getCacheOnWrite() {<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>    }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>    /**<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>     * index blocks, and leaf-level index blocks.<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>     *<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>     * @return the total uncompressed size of all index blocks<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>     */<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>    public long getTotalUncompressedSize() {<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      return totalBlockUncompressedSize;<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>    }<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span><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>  /**<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>   * block.<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>   */<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  static class BlockIndexChunk {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span><a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    /** Block offset in backing stream. */<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span><a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>    /**<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>     */<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    /**<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>     */<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span><a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    /**<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1430"></a>
+<span class="sourceLineNo">1351</span>    @Override<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    public BlockType getInlineBlockType() {<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      return BlockType.LEAF_INDEX;<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>    /**<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>     *<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>     * @param firstKey the first key of the data block<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>     * @param blockOffset the offset of the data block<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>     *          {@link HFile} format version 1).<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>     */<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>      ++totalNumEntries;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span><a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    /**<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>     * @throws IOException if we happened to write a multi-level index.<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>     */<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>    public void ensureSingleLevel() throws IOException {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>      if (numLevels &gt; 1) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>            "this is expected to be a single-level block index.");<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    /**<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>     *         or null.<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>     */<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>    @Override<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>    public boolean getCacheOnWrite() {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>    }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>    /**<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>     * index blocks, and leaf-level index blocks.<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>     *<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>     * @return the total uncompressed size of all index blocks<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>     */<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    public long getTotalUncompressedSize() {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      return totalBlockUncompressedSize;<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span><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>  /**<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>   * block.<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>   */<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  static class BlockIndexChunk {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>    /** Block offset in backing stream. */<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span><a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    /**<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>     */<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>    /**<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1430"></a>
 <span class="sourceLineNo">1431</span>     */<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>    private int curTotalRootSize = 0;<a name="line.1432"></a>
+<span class="sourceLineNo">1432</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1432"></a>
 <span class="sourceLineNo">1433</span><a name="line.1433"></a>
 <span class="sourceLineNo">1434</span>    /**<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>     * The "secondary index" used for binary search over variable-length<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>     * end of this secondary index.<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>     */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span><a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>    /**<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>     * Adds a new entry to this block index chunk.<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>     *<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>     *          entry<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>     *          entry, including header size<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>     *          construction, this specifies the current total number of<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>     *          corresponding to the second-level entry being added.<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>     */<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        long curTotalNumSubEntries) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      // Record the offset for the secondary index<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>          + firstKey.length;<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span><a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span><a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      blockKeys.add(firstKey);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      blockOffsets.add(blockOffset);<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span><a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>      if (curTotalNumSubEntries != -1) {<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>        // Make sure the parallel arrays are in sync.<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>              "entries out of " + blockKeys.size());<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>        }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      }<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>    }<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span><a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    /**<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    public void clear() {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      blockKeys.clear();<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      blockOffsets.clear();<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>      onDiskDataSizes.clear();<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>      secondaryIndexOffsetMarks.clear();<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>      numSubEntriesAt.clear();<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      curTotalNonRootEntrySize = 0;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      curTotalRootSize = 0;<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    }<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span><a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    /**<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>     * ordering of sub-entries.<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>     *<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>     * &lt;p&gt;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>     * numSubEntriesAt.<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>     *<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>     *         sub-entry<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>     */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    public int getEntryBySubEntry(long k) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      // We define mid-key as the key corresponding to k'th sub-entry<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      // (0-based).<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      int i = Collections.binarySearch(numSubEntriesAt, k);<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span><a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      // Exact match: cumulativeWeight[i] = k. This means chunks #0 through<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>      // #i contain exactly k sub-entries, and the sub-entry #k (0-based)<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // is in the (i + 1)'th chunk.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (i &gt;= 0)<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        return i + 1;<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span><a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Inexact match. Return the insertion point.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      return -i - 1;<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>    /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>     * Used when writing the root block index of a multi-level block index.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>     * Serializes additional information allowing to efficiently identify the<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>     * mid-key.<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>     *<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>     * @return a few serialized fields for finding the mid-key<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>     * @throws IOException if could not create metadata for computing mid-key<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>     */<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    public byte[] getMidKeyMetadata() throws IOException {<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>      ByteArrayOutputStream baos = new ByteArrayOutputStream(<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>          MID_KEY_METADATA_SIZE);<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>      DataOutputStream baosDos = new DataOutputStream(baos);<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      long totalNumSubEntries = numSubEntriesAt.get(blockKeys.size() - 1);<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      if (totalNumSubEntries == 0) {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>        throw new IOException("No leaf-level entries, mid-key unavailable");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      }<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      long midKeySubEntry = (totalNumSubEntries - 1) / 2;<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      int midKeyEntry = getEntryBySubEntry(midKeySubEntry);<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span><a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      baosDos.writeLong(blockOffsets.get(midKeyEntry));<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      baosDos.writeInt(onDiskDataSizes.get(midKeyEntry));<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span><a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      long numSubEntriesBefore = midKeyEntry &gt; 0<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>          ? numSubEntriesAt.get(midKeyEntry - 1) : 0;<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      long subEntryWithinEntry = midKeySubEntry - numSubEntriesBefore;<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      if (subEntryWithinEntry &lt; 0 || subEntryWithinEntry &gt; Integer.MAX_VALUE)<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>        throw new IOException("Could not identify mid-key index within the "<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>            + "leaf-level block containing mid-key: out of range ("<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>            + subEntryWithinEntry + ", numSubEntriesBefore="<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>            + numSubEntriesBefore + ", midKeySubEntry=" + midKeySubEntry<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>            + ")");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      }<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span><a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      baosDos.writeInt((int) subEntryWithinEntry);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span><a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      if (baosDos.size() != MID_KEY_METADATA_SIZE) {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>        throw new IOException("Could not write mid-key metadata: size=" +<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>            baosDos.size() + ", correct size: " + MID_KEY_METADATA_SIZE);<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
+<span class="sourceLineNo">1435</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>     */<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>    private int curTotalRootSize = 0;<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span><a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>    /**<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>     * The "secondary index" used for binary search over variable-length<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>     * end of this secondary index.<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>     */<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    /**<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>     * Adds a new entry to this block index chunk.<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>     *<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>     *          entry<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>     *          entry, including header size<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>     *          construction, this specifies the current total number of<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>     *          corresponding to the second-level entry being added.<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>     */<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        long curTotalNumSubEntries) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>      // Record the offset for the secondary index<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>          + firstKey.length;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span><a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      blockKeys.add(firstKey);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>      blockOffsets.add(blockOffset);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      if (curTotalNumSubEntries != -1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        // Make sure the parallel arrays are in sync.<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>              "entries out of " + blockKeys.size());<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>        }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>    }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    /**<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>     * key/value into account. Used for single-level indexes.<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>     *<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>     * @see #add(byte[], long, int, long)<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>     */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span><a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    public void clear() {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      blockKeys.clear();<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>      blockOffsets.clear();<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      onDiskDataSizes.clear();<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      secondaryIndexOffsetMarks.clear();<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>      numSubEntriesAt.clear();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>      curTotalNonRootEntrySize = 0;<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>      curTotalRootSize = 0;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    }<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>    /**<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>     * ordering of sub-entries.<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>     *<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>     * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>     * numSubEntriesAt.<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>     *<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/CachedBlock.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/CachedBlock.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/CachedBlock.html
index 917fc61..4a03c9a 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/CachedBlock.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/CachedBlock.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -254,7 +254,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html
index 59bdbf4..c4386b1 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -195,142 +195,150 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getBloomChunkMissCount--">getBloomChunkMissCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getBucketCacheStats--">getBucketCacheStats</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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getDataHitCount--">getDataHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getDataMissCount--">getDataMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" 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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getDeleteFamilyBloomHitCount--">getDeleteFamilyBloomHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getDeleteFamilyBloomMissCount--">getDeleteFamilyBloomMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getEvictedCount--">getEvictedCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" 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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getEvictionCount--">getEvictionCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getFailedInserts--">getFailedInserts</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getFileInfoHitCount--">getFileInfoHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getFileInfoMissCount--">getFileInfoMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" 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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getGeneralBloomMetaHitCount--">getGeneralBloomMetaHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" 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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getGeneralBloomMetaMissCount--">getGeneralBloomMetaMissCount</a></span>()</code>&nbsp;</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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getHitCachingCount--">getHitCachingCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i14" 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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getHitCount--">getHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getIntermediateIndexHitCount--">getIntermediateIndexHitCount</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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getIntermediateIndexMissCount--">getIntermediateIndexMissCount</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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getLeafIndexHitCount--">getLeafIndexHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getLeafIndexMissCount--">getLeafIndexMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getLruCacheStats--">getLruCacheStats</a></span>()</code>&nbsp;</td>
+</tr>
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getMetaHitCount--">getMetaHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getMetaMissCount--">getMetaMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i21" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getMissCachingCount--">getMissCachingCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getMissCount--">getMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i23" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getPrimaryEvictedCount--">getPrimaryEvictedCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i24" class="altColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getPrimaryHitCount--">getPrimaryHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getPrimaryMissCount--">getPrimaryMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getRequestCachingCount--">getRequestCachingCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getRequestCount--">getRequestCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getRootIndexHitCount--">getRootIndexHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<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/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getRootIndexMissCount--">getRootIndexMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getSumHitCachingCountsPastNPeriods--">getSumHitCachingCountsPastNPeriods</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getSumHitCountsPastNPeriods--">getSumHitCountsPastNPeriods</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getSumRequestCachingCountsPastNPeriods--">getSumRequestCachingCountsPastNPeriods</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getSumRequestCountsPastNPeriods--">getSumRequestCountsPastNPeriods</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getTrailerHitCount--">getTrailerHitCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getTrailerMissCount--">getTrailerMissCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#rollMetricsPeriod--">rollMetricsPeriod</a></span>()</code>&nbsp;</td>
 </tr>
@@ -407,13 +415,31 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="getLruCacheStats--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLruCacheStats</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.155">getLruCacheStats</a>()</pre>
+</li>
+</ul>
+<a name="getBucketCacheStats--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBucketCacheStats</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.159">getBucketCacheStats</a>()</pre>
+</li>
+</ul>
 <a name="getDataMissCount--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.156">getDataMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.164">getDataMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getDataMissCount--">getDataMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -426,7 +452,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getLeafIndexMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.161">getLeafIndexMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.169">getLeafIndexMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getLeafIndexMissCount--">getLeafIndexMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -439,7 +465,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getBloomChunkMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.166">getBloomChunkMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.174">getBloomChunkMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getBloomChunkMissCount--">getBloomChunkMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -452,7 +478,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.171">getMetaMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.179">getMetaMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getMetaMissCount--">getMetaMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -465,7 +491,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootIndexMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.176">getRootIndexMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.184">getRootIndexMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getRootIndexMissCount--">getRootIndexMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -478,7 +504,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getIntermediateIndexMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.181">getIntermediateIndexMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.189">getIntermediateIndexMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getIntermediateIndexMissCount--">getIntermediateIndexMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -491,7 +517,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileInfoMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.187">getFileInfoMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.195">getFileInfoMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getFileInfoMissCount--">getFileInfoMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -504,7 +530,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getGeneralBloomMetaMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.192">getGeneralBloomMetaMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.200">getGeneralBloomMetaMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getGeneralBloomMetaMissCount--">getGeneralBloomMetaMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -517,7 +543,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getDeleteFamilyBloomMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.198">getDeleteFamilyBloomMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.206">getDeleteFamilyBloomMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getDeleteFamilyBloomMissCount--">getDeleteFamilyBloomMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -530,7 +556,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getTrailerMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.204">getTrailerMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.212">getTrailerMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getTrailerMissCount--">getTrailerMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -543,7 +569,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.209">getDataHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.217">getDataHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getDataHitCount--">getDataHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -556,7 +582,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getLeafIndexHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.214">getLeafIndexHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.222">getLeafIndexHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getLeafIndexHitCount--">getLeafIndexHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -569,7 +595,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getBloomChunkHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.219">getBloomChunkHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.227">getBloomChunkHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getBloomChunkHitCount--">getBloomChunkHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -582,7 +608,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.224">getMetaHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.232">getMetaHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getMetaHitCount--">getMetaHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -595,7 +621,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootIndexHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.229">getRootIndexHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.237">getRootIndexHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getRootIndexHitCount--">getRootIndexHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -608,7 +634,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getIntermediateIndexHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.234">getIntermediateIndexHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.242">getIntermediateIndexHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getIntermediateIndexHitCount--">getIntermediateIndexHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -621,7 +647,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileInfoHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.240">getFileInfoHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.248">getFileInfoHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getFileInfoHitCount--">getFileInfoHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -634,7 +660,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getGeneralBloomMetaHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.245">getGeneralBloomMetaHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.253">getGeneralBloomMetaHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getGeneralBloomMetaHitCount--">getGeneralBloomMetaHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -647,7 +673,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getDeleteFamilyBloomHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.251">getDeleteFamilyBloomHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.259">getDeleteFamilyBloomHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getDeleteFamilyBloomHitCount--">getDeleteFamilyBloomHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -660,7 +686,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getTrailerHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.257">getTrailerHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.265">getTrailerHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getTrailerHitCount--">getTrailerHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -673,7 +699,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.262">getRequestCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.270">getRequestCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getRequestCount--">getRequestCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -686,7 +712,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCachingCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.268">getRequestCachingCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.276">getRequestCachingCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getRequestCachingCount--">getRequestCachingCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -699,7 +725,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.274">getMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.282">getMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getMissCount--">getMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -712,7 +738,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getPrimaryMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.279">getPrimaryMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.287">getPrimaryMissCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getPrimaryMissCount--">getPrimaryMissCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -725,7 +751,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getMissCachingCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.284">getMissCachingCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.292">getMissCachingCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getMissCachingCount--">getMissCachingCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -738,7 +764,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.290">getHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.298">getHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getHitCount--">getHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -751,7 +777,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getPrimaryHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.295">getPrimaryHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.303">getPrimaryHitCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getPrimaryHitCount--">getPrimaryHitCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -764,7 +790,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getHitCachingCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.299">getHitCachingCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.307">getHitCachingCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getHitCachingCount--">getHitCachingCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -777,7 +803,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getEvictionCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.305">getEvictionCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.313">getEvictionCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getEvictionCount--">getEvictionCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -790,7 +816,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getEvictedCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.311">getEvictedCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.319">getEvictedCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getEvictedCount--">getEvictedCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -803,7 +829,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getPrimaryEvictedCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.317">getPrimaryEvictedCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.325">getPrimaryEvictedCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getPrimaryEvictedCount--">getPrimaryEvictedCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -816,7 +842,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>rollMetricsPeriod</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.323">rollMetricsPeriod</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.331">rollMetricsPeriod</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#rollMetricsPeriod--">rollMetricsPeriod</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -829,7 +855,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getFailedInserts</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.329">getFailedInserts</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.337">getFailedInserts</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getFailedInserts--">getFailedInserts</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -842,7 +868,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getSumHitCountsPastNPeriods</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.334">getSumHitCountsPastNPeriods</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.342">getSumHitCountsPastNPeriods</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getSumHitCountsPastNPeriods--">getSumHitCountsPastNPeriods</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -855,7 +881,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getSumRequestCountsPastNPeriods</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.340">getSumRequestCountsPastNPeriods</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.348">getSumRequestCountsPastNPeriods</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getSumRequestCountsPastNPeriods--">getSumRequestCountsPastNPeriods</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -868,7 +894,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getSumHitCachingCountsPastNPeriods</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.346">getSumHitCachingCountsPastNPeriods</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.354">getSumHitCachingCountsPastNPeriods</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getSumHitCachingCountsPastNPeriods--">getSumHitCachingCountsPastNPeriods</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>
@@ -881,7 +907,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getSumRequestCachingCountsPastNPeriods</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.352">getSumRequestCachingCountsPastNPeriods</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#line.360">getSumRequestCachingCountsPastNPeriods</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html#getSumRequestCachingCountsPastNPeriods--">getSumRequestCachingCountsPastNPeriods</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html
index af71ec4..2793797 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -286,24 +286,28 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
 </td>
 </tr>
 <tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getOnHeapCache--">getOnHeapCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getRefCount-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">getRefCount</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getStats--">getStats</a></span>()</code>
 <div class="block">Get the statistics for this block cache.</div>
 </td>
 </tr>
-<tr id="i14" 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/io/hfile/CombinedBlockCache.html#heapSize--">heapSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#iterator--">iterator</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<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/io/hfile/CombinedBlockCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">returnBlock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey,
            <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;block)</code>
@@ -311,19 +315,19 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
  is over.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<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/io/hfile/CombinedBlockCache.html#setMaxSize-long-">setMaxSize</a></span>(long&nbsp;size)</code>
 <div class="block">Sets the max heap size that can be used by the BlockCache.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<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/io/hfile/CombinedBlockCache.html#shutdown--">shutdown</a></span>()</code>
 <div class="block">Shutdown the cache.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#size--">size</a></span>()</code>
 <div class="block">Returns the total size of the block cache, in bytes.</div>
@@ -686,7 +690,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
 <ul class="blockList">
 <li class="blockList">
 <h4>iterator</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.359">iterator</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.367">iterator</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/Iterable.html?is-external=true#iterator--" title="class or interface in java.lang">iterator</a></code>&nbsp;in interface&nbsp;<code><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/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>&gt;</code></dd>
@@ -703,7 +707,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCaches</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.364">getBlockCaches</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.372">getBlockCaches</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCaches--">getBlockCaches</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd>
@@ -718,7 +722,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.369">setMaxSize</a>(long&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.377">setMaxSize</a>(long&nbsp;size)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html#setMaxSize-long-">ResizableBlockCache</a></code></span></div>
 <div class="block">Sets the max heap size that can be used by the BlockCache.</div>
 <dl>
@@ -735,7 +739,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
 <ul class="blockList">
 <li class="blockList">
 <h4>returnBlock</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.374">returnBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.382">returnBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey,
                         <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a>&nbsp;block)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">BlockCache</a></code></span></div>
 <div class="block">Called when the scanner using the block decides to return the block once its usage
@@ -756,10 +760,19 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Resizable
 <a name="getRefCount-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getRefCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.380">getRefCount</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.388">getRefCount</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey)</pre>
+</li>
+</ul>
+<a name="getOnHeapCache--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOnHeapCache</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#line.393">getOnHeapCache</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
index cb9ca66..9049486 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html#line.1404">HFileBlockIndex.BlockIndexChunk</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html#line.1409">HFileBlockIndex.BlockIndexChunk</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">A single chunk of the block index in the process of writing. The data in
  this chunk can become a leaf-level, intermediate-level, or root index
@@ -318,7 +318,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>blockKeys</h4>
-<pre>private 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;byte[]&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1407">blockKeys</a></pre>
+<pre>private 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;byte[]&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1412">blockKeys</a></pre>
 <div class="block">First keys of the key range corresponding to each index entry.</div>
 </li>
 </ul>
@@ -328,7 +328,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>blockOffsets</h4>
-<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1410">blockOffsets</a></pre>
+<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1415">blockOffsets</a></pre>
 <div class="block">Block offset in backing stream.</div>
 </li>
 </ul>
@@ -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>onDiskDataSizes</h4>
-<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1413">onDiskDataSizes</a></pre>
+<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1418">onDiskDataSizes</a></pre>
 <div class="block">On-disk data sizes of lower-level data or index blocks.</div>
 </li>
 </ul>
@@ -348,7 +348,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>numSubEntriesAt</h4>
-<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1420">numSubEntriesAt</a></pre>
+<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1425">numSubEntriesAt</a></pre>
 <div class="block">The cumulative number of sub-entries, i.e. entries on deeper-level block
  index entries. numSubEntriesAt[i] is the number of sub-entries in the
  blocks corresponding to this chunk's entries #0 through #i inclusively.</div>
@@ -360,7 +360,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>curTotalNonRootEntrySize</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1427">curTotalNonRootEntrySize</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1432">curTotalNonRootEntrySize</a></pre>
 <div class="block">The offset of the next entry to be added, relative to the end of the
  "secondary index" in the "non-root" format representation of this index
  chunk. This is the next value to be added to the secondary index.</div>
@@ -372,7 +372,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>curTotalRootSize</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1432">curTotalRootSize</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1437">curTotalRootSize</a></pre>
 <div class="block">The accumulated size of this chunk if stored in the root index format.</div>
 </li>
 </ul>
@@ -382,7 +382,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>secondaryIndexOffsetMarks</h4>
-<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1439">secondaryIndexOffsetMarks</a></pre>
+<pre>private 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="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; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1444">secondaryIndexOffsetMarks</a></pre>
 <div class="block">The "secondary index" used for binary search over variable-length
  records in a "non-root" format block. These offsets are relative to the
  end of this secondary index.</div>
@@ -402,7 +402,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BlockIndexChunk</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1404">BlockIndexChunk</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1409">BlockIndexChunk</a>()</pre>
 </li>
 </ul>
 </li>
@@ -419,7 +419,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>add</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1454">add</a>(byte[]&nbsp;firstKey,
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1459">add</a>(byte[]&nbsp;firstKey,
          long&nbsp;blockOffset,
          int&nbsp;onDiskDataSize,
          long&nbsp;curTotalNumSubEntries)</pre>
@@ -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>add</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1486">add</a>(byte[]&nbsp;firstKey,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1491">add</a>(byte[]&nbsp;firstKey,
                 long&nbsp;blockOffset,
                 int&nbsp;onDiskDataSize)</pre>
 <div class="block">The same as <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#add-byte:A-long-int-long-"><code>add(byte[], long, int, long)</code></a> but does not take the
@@ -461,7 +461,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>clear</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1490">clear</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1495">clear</a>()</pre>
 </li>
 </ul>
 <a name="getEntryBySubEntry-long-">
@@ -470,7 +470,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getEntryBySubEntry</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1517">getEntryBySubEntry</a>(long&nbsp;k)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1522">getEntryBySubEntry</a>(long&nbsp;k)</pre>
 <div class="block">Finds the entry corresponding to the deeper-level index block containing
  the given deeper-level entry (a "sub-entry"), assuming a global 0-based
  ordering of sub-entries.
@@ -497,7 +497,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMidKeyMetadata</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1541">getMidKeyMetadata</a>()
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1546">getMidKeyMetadata</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">Used when writing the root block index of a multi-level block index.
  Serializes additional information allowing to efficiently identify the
@@ -516,7 +516,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeNonRoot</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1589">writeNonRoot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1594">writeNonRoot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
            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 block index chunk in the non-root index block format. This
  format contains the number of entries, an index of integer offsets
@@ -536,7 +536,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonRootSize</h4>
-<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1621">getNonRootSize</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1626">getNonRootSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the size of this chunk if stored in the non-root index block
@@ -550,7 +550,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeRoot</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1637">writeRoot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1642">writeRoot</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
         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 this chunk into the given output stream in the root block index
  format. This format is similar to the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> version 1 block
@@ -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>getRootSize</h4>
-<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1648">getRootSize</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1653">getRootSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the size of this chunk if stored in the root index block format</dd>
@@ -584,7 +584,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumEntries</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1655">getNumEntries</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1660">getNumEntries</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of entries in this block index chunk</dd>
@@ -597,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>getBlockKey</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1659">getBlockKey</a>(int&nbsp;i)</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1664">getBlockKey</a>(int&nbsp;i)</pre>
 </li>
 </ul>
 <a name="getBlockOffset-int-">
@@ -606,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>getBlockOffset</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1663">getBlockOffset</a>(int&nbsp;i)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1668">getBlockOffset</a>(int&nbsp;i)</pre>
 </li>
 </ul>
 <a name="getOnDiskDataSize-int-">
@@ -615,7 +615,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnDiskDataSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1667">getOnDiskDataSize</a>(int&nbsp;i)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1672">getOnDiskDataSize</a>(int&nbsp;i)</pre>
 </li>
 </ul>
 <a name="getCumulativeNumKV-int-">
@@ -624,7 +624,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCumulativeNumKV</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1671">getCumulativeNumKV</a>(int&nbsp;i)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html#line.1676">getCumulativeNumKV</a>(int&nbsp;i)</pre>
 </li>
 </ul>
 </li>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 6e51c4e..5a2a23d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -18,9 +18,9 @@
 <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 = "";<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 = "Sat Dec 15 14:43:55 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Tue Dec 18 14:46:13 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 = "25dbb3fd216cbc954b8b2ebf17377a47";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "0ff9598693406383f0355b09c8c7ea64";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html
new file mode 100644
index 0000000..2a70085
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.hfile;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_IOENGINE_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_SIZE_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.conf.Configuration;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HConstants;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.ReflectionUtils;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.util.StringUtils;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.slf4j.Logger;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.slf4j.LoggerFactory;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>@InterfaceAudience.Private<a name="line.35"></a>
+<span class="sourceLineNo">036</span>public final class BlockCacheFactory {<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheFactory.class.getName());<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   * Configuration keys for Bucket cache<a name="line.41"></a>
+<span class="sourceLineNo">042</span>   */<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.48"></a>
+<span class="sourceLineNo">049</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY = "hbase.bucketcache.persistent.path";<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY = "hbase.bucketcache.writer.queuelength";<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * A comma-delimited array of values for use as bucket sizes.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * Defaults for Bucket cache<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  /**<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * The target block size used by blockcache instances. Defaults to<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   * target block size of BlockCache instances. Rename.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private BlockCacheFactory() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public static BlockCache createBlockCache(Configuration conf) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    LruBlockCache onHeapCache = createOnHeapCache(conf);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    if (onHeapCache == null) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      return null;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    boolean useExternal = conf.getBoolean(EXTERNAL_BLOCKCACHE_KEY, EXTERNAL_BLOCKCACHE_DEFAULT);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    if (useExternal) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      BlockCache l2CacheInstance = createExternalBlockcache(conf);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      return l2CacheInstance == null ?<a name="line.95"></a>
+<span class="sourceLineNo">096</span>          onHeapCache :<a name="line.96"></a>
+<span class="sourceLineNo">097</span>          new InclusiveCombinedBlockCache(onHeapCache, l2CacheInstance);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    } else {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      // otherwise use the bucket cache.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      BucketCache bucketCache = createBucketCache(conf);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      if (!conf.getBoolean("hbase.bucketcache.combinedcache.enabled", true)) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        // Non combined mode is off from 2.0<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        LOG.warn(<a name="line.103"></a>
+<span class="sourceLineNo">104</span>            "From HBase 2.0 onwards only combined mode of LRU cache and bucket cache is available");<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      return bucketCache == null ? onHeapCache : new CombinedBlockCache(onHeapCache, bucketCache);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  private static LruBlockCache createOnHeapCache(final Configuration c) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    final long cacheSize = MemorySizeUtil.getOnHeapCacheSize(c);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    if (cacheSize &lt; 0) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      return null;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    LOG.info(<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        "Allocating onheap LruBlockCache size=" + StringUtils.byteDesc(cacheSize) + ", blockSize="<a name="line.117"></a>
+<span class="sourceLineNo">118</span>            + StringUtils.byteDesc(blockSize));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return new LruBlockCache(cacheSize, blockSize, true, c);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Enum of all built in external block caches.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * This is used for config.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  private static enum ExternalBlockCaches {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    ExternalBlockCaches(String clazzName) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      try {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      } catch (ClassNotFoundException cnef) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        clazz = null;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      this.clazz = clazz;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private static BlockCache createExternalBlockcache(Configuration c) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    if (LOG.isDebugEnabled()) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      LOG.debug("Trying to use External l2 cache");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    Class klass = null;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // Get the class, from the config. s<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    try {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      klass = ExternalBlockCaches<a name="line.150"></a>
+<span class="sourceLineNo">151</span>          .valueOf(c.get(EXTERNAL_BLOCKCACHE_CLASS_KEY, "memcache")).clazz;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    } catch (IllegalArgumentException exception) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      try {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        klass = c.getClass(EXTERNAL_BLOCKCACHE_CLASS_KEY, Class.forName(<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            "org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache"));<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      } catch (ClassNotFoundException e) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        return null;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    // Now try and create an instance of the block cache.<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    try {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      LOG.info("Creating external block cache of type: " + klass);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return (BlockCache) ReflectionUtils.newInstance(klass, c);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    } catch (Exception e) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      LOG.warn("Error creating external block cache", e);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    return null;<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  private static BucketCache createBucketCache(Configuration c) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // Check for L2.  ioengine name must be non-null.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    String bucketCacheIOEngineName = c.get(BUCKET_CACHE_IOENGINE_KEY, null);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    if (bucketCacheIOEngineName == null || bucketCacheIOEngineName.length() &lt;= 0) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      return null;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    final long bucketCacheSize = MemorySizeUtil.getBucketCacheSize(c);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    if (bucketCacheSize &lt;= 0) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      throw new IllegalStateException("bucketCacheSize &lt;= 0; Check " +<a name="line.182"></a>
+<span class="sourceLineNo">183</span>          BUCKET_CACHE_SIZE_KEY + " setting and/or server java heap size");<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    if (c.get("hbase.bucketcache.percentage.in.combinedcache") != null) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      LOG.warn("Configuration 'hbase.bucketcache.percentage.in.combinedcache' is no longer "<a name="line.186"></a>
+<span class="sourceLineNo">187</span>          + "respected. See comments in http://hbase.apache.org/book.html#_changes_of_note");<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    int writerThreads = c.getInt(BUCKET_CACHE_WRITER_THREADS_KEY,<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        DEFAULT_BUCKET_CACHE_WRITER_THREADS);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    int writerQueueLen = c.getInt(BUCKET_CACHE_WRITER_QUEUE_KEY,<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        DEFAULT_BUCKET_CACHE_WRITER_QUEUE);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    String persistentPath = c.get(BUCKET_CACHE_PERSISTENT_PATH_KEY);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    String[] configuredBucketSizes = c.getStrings(BUCKET_CACHE_BUCKETS_KEY);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    int [] bucketSizes = null;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (configuredBucketSizes != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      bucketSizes = new int[configuredBucketSizes.length];<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      for (int i = 0; i &lt; configuredBucketSizes.length; i++) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        int bucketSize = Integer.parseInt(configuredBucketSizes[i].trim());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        if (bucketSize % 256 != 0) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>          // We need all the bucket sizes to be multiples of 256. Having all the configured bucket<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          // sizes to be multiples of 256 will ensure that the block offsets within buckets,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>          // that are calculated, will also be multiples of 256.<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          // See BucketEntry where offset to each block is represented using 5 bytes (instead of 8<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          // bytes long). We would like to save heap overhead as less as possible.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>          throw new IllegalArgumentException("Illegal value: " + bucketSize + " configured for '"<a name="line.206"></a>
+<span class="sourceLineNo">207</span>              + BUCKET_CACHE_BUCKETS_KEY + "'. All bucket sizes to be multiples of 256");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        bucketSizes[i] = bucketSize;<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>    BucketCache bucketCache = null;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      int ioErrorsTolerationDuration = c.getInt(<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          "hbase.bucketcache.ioengine.errors.tolerated.duration",<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          BucketCache.DEFAULT_ERROR_TOLERATION_DURATION);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      // Bucket cache logs its stats on creation internal to the constructor.<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      bucketCache = new BucketCache(bucketCacheIOEngineName,<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          bucketCacheSize, blockSize, bucketSizes, writerThreads, writerQueueLen, persistentPath,<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          ioErrorsTolerationDuration, c);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    } catch (IOException ioex) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      LOG.error("Can't instantiate bucket cache", ioex); throw new RuntimeException(ioex);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    return bucketCache;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>}<a name="line.226"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
new file mode 100644
index 0000000..2a70085
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.hfile;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_IOENGINE_KEY;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_SIZE_KEY;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.conf.Configuration;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HConstants;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.ReflectionUtils;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.util.StringUtils;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.slf4j.Logger;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.slf4j.LoggerFactory;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>@InterfaceAudience.Private<a name="line.35"></a>
+<span class="sourceLineNo">036</span>public final class BlockCacheFactory {<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheFactory.class.getName());<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   * Configuration keys for Bucket cache<a name="line.41"></a>
+<span class="sourceLineNo">042</span>   */<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.48"></a>
+<span class="sourceLineNo">049</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY = "hbase.bucketcache.persistent.path";<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY = "hbase.bucketcache.writer.queuelength";<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * A comma-delimited array of values for use as bucket sizes.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * Defaults for Bucket cache<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  /**<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * The target block size used by blockcache instances. Defaults to<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   * target block size of BlockCache instances. Rename.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private BlockCacheFactory() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public static BlockCache createBlockCache(Configuration conf) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    LruBlockCache onHeapCache = createOnHeapCache(conf);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    if (onHeapCache == null) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      return null;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    boolean useExternal = conf.getBoolean(EXTERNAL_BLOCKCACHE_KEY, EXTERNAL_BLOCKCACHE_DEFAULT);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    if (useExternal) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      BlockCache l2CacheInstance = createExternalBlockcache(conf);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      return l2CacheInstance == null ?<a name="line.95"></a>
+<span class="sourceLineNo">096</span>          onHeapCache :<a name="line.96"></a>
+<span class="sourceLineNo">097</span>          new InclusiveCombinedBlockCache(onHeapCache, l2CacheInstance);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    } else {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      // otherwise use the bucket cache.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      BucketCache bucketCache = createBucketCache(conf);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      if (!conf.getBoolean("hbase.bucketcache.combinedcache.enabled", true)) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        // Non combined mode is off from 2.0<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        LOG.warn(<a name="line.103"></a>
+<span class="sourceLineNo">104</span>            "From HBase 2.0 onwards only combined mode of LRU cache and bucket cache is available");<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      return bucketCache == null ? onHeapCache : new CombinedBlockCache(onHeapCache, bucketCache);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  private static LruBlockCache createOnHeapCache(final Configuration c) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    final long cacheSize = MemorySizeUtil.getOnHeapCacheSize(c);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    if (cacheSize &lt; 0) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      return null;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    LOG.info(<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        "Allocating onheap LruBlockCache size=" + StringUtils.byteDesc(cacheSize) + ", blockSize="<a name="line.117"></a>
+<span class="sourceLineNo">118</span>            + StringUtils.byteDesc(blockSize));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return new LruBlockCache(cacheSize, blockSize, true, c);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Enum of all built in external block caches.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * This is used for config.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  private static enum ExternalBlockCaches {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    ExternalBlockCaches(String clazzName) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      try {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      } catch (ClassNotFoundException cnef) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        clazz = null;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      this.clazz = clazz;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private static BlockCache createExternalBlockcache(Configuration c) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    if (LOG.isDebugEnabled()) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      LOG.debug("Trying to use External l2 cache");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    Class klass = null;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // Get the class, from the config. s<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    try {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      klass = ExternalBlockCaches<a name="line.150"></a>
+<span class="sourceLineNo">151</span>          .valueOf(c.get(EXTERNAL_BLOCKCACHE_CLASS_KEY, "memcache")).clazz;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    } catch (IllegalArgumentException exception) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      try {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        klass = c.getClass(EXTERNAL_BLOCKCACHE_CLASS_KEY, Class.forName(<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            "org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache"));<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      } catch (ClassNotFoundException e) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        return null;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    // Now try and create an instance of the block cache.<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    try {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      LOG.info("Creating external block cache of type: " + klass);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return (BlockCache) ReflectionUtils.newInstance(klass, c);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    } catch (Exception e) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      LOG.warn("Error creating external block cache", e);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    return null;<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  private static BucketCache createBucketCache(Configuration c) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // Check for L2.  ioengine name must be non-null.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    String bucketCacheIOEngineName = c.get(BUCKET_CACHE_IOENGINE_KEY, null);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    if (bucketCacheIOEngineName == null || bucketCacheIOEngineName.length() &lt;= 0) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      return null;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    final long bucketCacheSize = MemorySizeUtil.getBucketCacheSize(c);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    if (bucketCacheSize &lt;= 0) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      throw new IllegalStateException("bucketCacheSize &lt;= 0; Check " +<a name="line.182"></a>
+<span class="sourceLineNo">183</span>          BUCKET_CACHE_SIZE_KEY + " setting and/or server java heap size");<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    if (c.get("hbase.bucketcache.percentage.in.combinedcache") != null) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      LOG.warn("Configuration 'hbase.bucketcache.percentage.in.combinedcache' is no longer "<a name="line.186"></a>
+<span class="sourceLineNo">187</span>          + "respected. See comments in http://hbase.apache.org/book.html#_changes_of_note");<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    int writerThreads = c.getInt(BUCKET_CACHE_WRITER_THREADS_KEY,<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        DEFAULT_BUCKET_CACHE_WRITER_THREADS);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    int writerQueueLen = c.getInt(BUCKET_CACHE_WRITER_QUEUE_KEY,<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        DEFAULT_BUCKET_CACHE_WRITER_QUEUE);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    String persistentPath = c.get(BUCKET_CACHE_PERSISTENT_PATH_KEY);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    String[] configuredBucketSizes = c.getStrings(BUCKET_CACHE_BUCKETS_KEY);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    int [] bucketSizes = null;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (configuredBucketSizes != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      bucketSizes = new int[configuredBucketSizes.length];<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      for (int i = 0; i &lt; configuredBucketSizes.length; i++) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        int bucketSize = Integer.parseInt(configuredBucketSizes[i].trim());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        if (bucketSize % 256 != 0) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>          // We need all the bucket sizes to be multiples of 256. Having all the configured bucket<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          // sizes to be multiples of 256 will ensure that the block offsets within buckets,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>          // that are calculated, will also be multiples of 256.<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          // See BucketEntry where offset to each block is represented using 5 bytes (instead of 8<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          // bytes long). We would like to save heap overhead as less as possible.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>          throw new IllegalArgumentException("Illegal value: " + bucketSize + " configured for '"<a name="line.206"></a>
+<span class="sourceLineNo">207</span>              + BUCKET_CACHE_BUCKETS_KEY + "'. All bucket sizes to be multiples of 256");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        bucketSizes[i] = bucketSize;<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>    BucketCache bucketCache = null;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      int ioErrorsTolerationDuration = c.getInt(<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          "hbase.bucketcache.ioengine.errors.tolerated.duration",<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          BucketCache.DEFAULT_ERROR_TOLERATION_DURATION);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      // Bucket cache logs its stats on creation internal to the constructor.<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      bucketCache = new BucketCache(bucketCacheIOEngineName,<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          bucketCacheSize, blockSize, bucketSizes, writerThreads, writerQueueLen, persistentPath,<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          ioErrorsTolerationDuration, c);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    } catch (IOException ioex) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      LOG.error("Can't instantiate bucket cache", ioex); throw new RuntimeException(ioex);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    return bucketCache;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>}<a name="line.226"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
index 35bd407..8e8f974 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
@@ -176,20 +176,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#blockCache">blockCache</a></span></code>
-<div class="block">Local reference to the block cache, null if completely disabled</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#GLOBAL_BLOCK_CACHE_INSTANCE">GLOBAL_BLOCK_CACHE_INSTANCE</a></span></code>
-<div class="block">Static reference to the block cache, or null if no caching should be used
- at all.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#L2_CACHE_INSTANCE">L2_CACHE_INSTANCE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#blockCache">blockCache</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
@@ -212,7 +199,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>(package private) <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;? extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.ExternalBlockCaches.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#clazz">clazz</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheFactory.ExternalBlockCaches.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#clazz">clazz</a></span></code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -224,35 +211,42 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getBlockCache--">getBlockCache</a></span>()</code>
-<div class="block">Returns the block cache.</div>
-</td>
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheFactory.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createBlockCache-org.apache.hadoop.conf.Configuration-">createBlockCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheFactory.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createExternalBlockcache-org.apache.hadoop.conf.Configuration-">createExternalBlockcache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">CombinedBlockCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getBlockCaches--">getBlockCaches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">LruBlockCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#getBlockCaches--">getBlockCaches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">BlockCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html#getBlockCaches--">getBlockCaches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]</code></td>
 <td class="colLast"><span class="typeNameLabel">MemcachedBlockCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/MemcachedBlockCache.html#getBlockCaches--">getBlockCaches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getExternalBlockcache-org.apache.hadoop.conf.Configuration-">getExternalBlockcache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a> that return types with arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
 </tr>
+<tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#instantiateBlockCache-org.apache.hadoop.conf.Configuration-">instantiateBlockCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
-<div class="block">Returns the block cache or <code>null</code> in case none should be used.</div>
+<td class="colFirst"><code><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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getBlockCache--">getBlockCache</a></span>()</code>
+<div class="block">Returns the block cache.</div>
 </td>
 </tr>
 </tbody>
@@ -301,24 +295,22 @@
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html#BlockCachesIterator-org.apache.hadoop.hbase.io.hfile.BlockCache:A-">BlockCachesIterator</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]&nbsp;blockCaches)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.hbase.io.hfile.BlockCache-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">CacheConfig</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
-           boolean&nbsp;cacheDataOnRead,
-           boolean&nbsp;inMemory,
-           boolean&nbsp;cacheDataOnWrite,
-           boolean&nbsp;cacheIndexesOnWrite,
-           boolean&nbsp;cacheBloomsOnWrite,
-           boolean&nbsp;evictOnClose,
-           boolean&nbsp;cacheDataCompressed,
-           boolean&nbsp;prefetchOnOpen,
-           boolean&nbsp;dropBehindCompaction)</code>
-<div class="block">Create a block cache configuration with the specified cache and configuration parameters.</div>
-</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+           <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-org.apache.hadoop.hbase.io.hfile.BlockCache-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+           <a href="../../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family,
+           <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>
+<div class="block">Create a cache configuration using the specified configuration object and
+ family descriptor.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#CombinedBlockCache-org.apache.hadoop.hbase.io.hfile.LruBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">CombinedBlockCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;onHeapCache,
                   <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;l2Cache)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/InclusiveCombinedBlockCache.html#InclusiveCombinedBlockCache-org.apache.hadoop.hbase.io.hfile.LruBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">InclusiveCombinedBlockCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;l1,
                            <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;l2)</code>&nbsp;</td>
 </tr>
@@ -331,7 +323,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#ExternalBlockCaches-java.lang.Class-">ExternalBlockCaches</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;? extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;&nbsp;clazz)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#ExternalBlockCaches-java.lang.Class-">ExternalBlockCaches</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;? extends <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;&nbsp;clazz)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -384,15 +376,139 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#blockCache">blockCache</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#blockCache">blockCache</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with type parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerWrapperImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#blockCache">blockCache</a></span></code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getBlockCache--">getBlockCache</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return types with arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerServices.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getBlockCache--">getBlockCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getBlockCache--">getBlockCache</a></span>()</code>
+<div class="block">May be null if this is a master which not carry table.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods 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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#setBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">setBlockCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>
+<div class="block">Only used for unit test which doesn't start region server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HeapMemoryManager.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#toResizableBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">toResizableBlockCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</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/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
+                 <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
+                 <a href="../../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
+                 <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
 </li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.tmpl.regionserver">
 <!--   -->
 </a>
 <h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> declared as <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#bc">bc</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#blockCache">blockCache</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#m_bc">m_bc</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_blockCache">m_blockCache</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#getBc--">getBc</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#getBlockCache--">getBlockCache</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
 <caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a> with parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
@@ -402,11 +518,23 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_baseInfo-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-java.lang.String-java.lang.String-">__jamon_innerUnit__bc_baseInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+                              <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc,
+                              <a href="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;bcUrl,
+                              <a href="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;bcName)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_l-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-java.lang.String-boolean-">__jamon_innerUnit__bc_l</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                        <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc,
                        <a href="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,
                        boolean&nbsp;evictions)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_stats-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-">__jamon_innerUnit__bc_stats</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+                           <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__block_cache-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-java.lang.String-boolean-">__jamon_innerUnit__block_cache</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
@@ -424,6 +552,60 @@
 <td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__hits_tmpl-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-">__jamon_innerUnit__hits_tmpl</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.jamon.Renderer</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+            org.apache.hadoop.conf.Configuration&nbsp;config,
+            <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.jamon.Renderer</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+            org.apache.hadoop.conf.Configuration&nbsp;conf,
+            <a href="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;bcn,
+            <a href="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;bcv,
+            <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+      <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+      org.apache.hadoop.conf.Configuration&nbsp;config,
+      <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+      <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+      org.apache.hadoop.conf.Configuration&nbsp;conf,
+      <a href="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;bcn,
+      <a href="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;bcv,
+      <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+             org.apache.hadoop.conf.Configuration&nbsp;config,
+             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+             org.apache.hadoop.conf.Configuration&nbsp;conf,
+             <a href="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;bcn,
+             <a href="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;bcv,
+             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#setBc-org.apache.hadoop.hbase.io.hfile.BlockCache-">setBc</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.ImplData.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#setBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">setBlockCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.ExternalBlockCaches.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.ExternalBlockCaches.html
new file mode 100644
index 0000000..c71843e
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.ExternalBlockCaches.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.ExternalBlockCaches.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.ExternalBlockCaches" class="title">Uses of Class<br>org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.ExternalBlockCaches</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.io.hfile">org.apache.hadoop.hbase.io.hfile</a></td>
+<td class="colLast">
+<div class="block">Provides implementations of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> and HFile
+ <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><code>BlockCache</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.io.hfile">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a> in <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheFactory.ExternalBlockCaches.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#valueOf-java.lang.String-">valueOf</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;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheFactory.ExternalBlockCaches.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.ExternalBlockCaches.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.html
new file mode 100644
index 0000000..f253e14
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory" class="title">Uses of Class<br>org.apache.hadoop.hbase.io.hfile.BlockCacheFactory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.io.hfile.BlockCacheFactory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.ExternalBlockCaches.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.ExternalBlockCaches.html
deleted file mode 100644
index cca0424..0000000
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.ExternalBlockCaches.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.io.hfile.CacheConfig.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.hadoop.hbase.io.hfile.CacheConfig.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.ExternalBlockCaches.html" target="_top">Frames</a></li>
-<li><a href="CacheConfig.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h2 title="Uses of Class org.apache.hadoop.hbase.io.hfile.CacheConfig.ExternalBlockCaches" class="title">Uses of Class<br>org.apache.hadoop.hbase.io.hfile.CacheConfig.ExternalBlockCaches</h2>
-</div>
-<div class="classUseContainer">
-<ul class="blockList">
-<li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Package</th>
-<th class="colLast" scope="col">Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.io.hfile">org.apache.hadoop.hbase.io.hfile</a></td>
-<td class="colLast">
-<div class="block">Provides implementations of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> and HFile
- <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><code>BlockCache</code></a>.</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<ul class="blockList">
-<li class="blockList"><a name="org.apache.hadoop.hbase.io.hfile">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a> in <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.ExternalBlockCaches.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#valueOf-java.lang.String-">valueOf</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;name)</code>
-<div class="block">Returns the enum constant of this type with the specified name.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>[]</code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.ExternalBlockCaches.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#values--">values</a></span>()</code>
-<div class="block">Returns an array containing the constants of this enum type, in
-the order they are declared.</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.ExternalBlockCaches.html" target="_top">Frames</a></li>
-<li><a href="CacheConfig.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.html
index 7bde38f..5b22f01 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.html
@@ -378,21 +378,6 @@
 <!--   -->
 </a>
 <h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> in <a href="../../../../../../../org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
-<caption><span>Subclasses of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> in <a href="../../../../../../../org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></span></code>
-<div class="block">The cache configuration for the mob.</div>
-</td>
-</tr>
-</tbody>
-</table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
 <caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/mob/package-summary.html">org.apache.hadoop.hbase.mob</a> with parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
@@ -531,6 +516,14 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/mob/MobFile.html" title="class in org.apache.hadoop.hbase.mob">MobFile</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MobFileCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html#openFile-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.hfile.CacheConfig-">openFile</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+        org.apache.hadoop.fs.Path&nbsp;path,
+        <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</code>
+<div class="block">Opens a mob file.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><span class="typeNameLabel">MobUtils.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/mob/MobUtils.html#validateMobFile-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.hfile.CacheConfig-boolean-">validateMobFile</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                org.apache.hadoop.fs.FileSystem&nbsp;fs,
@@ -584,10 +577,6 @@
 <td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><span class="typeNameLabel">StoreFileWriter.Builder.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.Builder.html#cacheConf">cacheConf</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a></span></code>&nbsp;</td>
-</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -603,10 +592,6 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig--">getCacheConfig</a></span>()</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCacheConfig--">getCacheConfig</a></span>()</code>
 <div class="block">Used for tests.</div>
 </td>
@@ -776,60 +761,54 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_baseInfo-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-java.lang.String-java.lang.String-">__jamon_innerUnit__bc_baseInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
-                              <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-                              <a href="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;bcUrl,
-                              <a href="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;bcName)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_config-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-">__jamon_innerUnit__bc_config</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheTmplImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_stats-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-">__jamon_innerUnit__bc_stats</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
-                           <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</code>&nbsp;</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>org.jamon.Renderer</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">makeRenderer</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-            org.apache.hadoop.conf.Configuration&nbsp;config)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+            org.apache.hadoop.conf.Configuration&nbsp;config,
+            <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>org.jamon.Renderer</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">makeRenderer</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
             org.apache.hadoop.conf.Configuration&nbsp;conf,
             <a href="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;bcn,
-            <a href="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;bcv)</code>&nbsp;</td>
+            <a href="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;bcv,
+            <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
       <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-      org.apache.hadoop.conf.Configuration&nbsp;config)</code>&nbsp;</td>
+      org.apache.hadoop.conf.Configuration&nbsp;config,
+      <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
       <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
       org.apache.hadoop.conf.Configuration&nbsp;conf,
       <a href="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;bcn,
-      <a href="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;bcv)</code>&nbsp;</td>
+      <a href="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;bcv,
+      <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><span class="typeNameLabel">BlockCacheTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
              <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-             org.apache.hadoop.conf.Configuration&nbsp;config)</code>&nbsp;</td>
+             org.apache.hadoop.conf.Configuration&nbsp;config,
+             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><span class="typeNameLabel">BlockCacheViewTmpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
              <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
              org.apache.hadoop.conf.Configuration&nbsp;conf,
              <a href="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;bcn,
-             <a href="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;bcv)</code>&nbsp;</td>
+             <a href="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;bcv,
+             <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html
index 55ab978..21b0e6d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.49">HeapMemoryManager</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.50">HeapMemoryManager</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">Manages tuning of Heap memory using <code>HeapMemoryTuner</code>. Most part of the heap memory is
  split between Memstores and BlockCache. This manager helps in tuning sizes of both these
@@ -301,7 +301,7 @@ 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/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.ResizableBlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a>&nbsp;blockCache,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
                  <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>
@@ -316,42 +316,39 @@ 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>
+<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>static <a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">create</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-      <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
-      <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
-      <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#doInit-org.apache.hadoop.conf.Configuration-">doInit</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>float</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#getHeapOccupancyPercent--">getHeapOccupancyPercent</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#isTunerOn--">isTunerOn</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<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/HeapMemoryManager.html#registerTuneObserver-org.apache.hadoop.hbase.regionserver.HeapMemoryManager.HeapMemoryTuneObserver-">registerTuneObserver</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.HeapMemoryTuneObserver.html" title="interface in org.apache.hadoop.hbase.regionserver">HeapMemoryManager.HeapMemoryTuneObserver</a>&nbsp;observer)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<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/HeapMemoryManager.html#start-org.apache.hadoop.hbase.ChoreService-">start</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a>&nbsp;service)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<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/HeapMemoryManager.html#stop--">stop</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#toResizableBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">toResizableBlockCache</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -380,7 +377,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <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/HeapMemoryManager.html#line.50">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.51">LOG</a></pre>
 </li>
 </ul>
 <a name="CONVERT_TO_PERCENTAGE">
@@ -389,7 +386,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CONVERT_TO_PERCENTAGE</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.51">CONVERT_TO_PERCENTAGE</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.52">CONVERT_TO_PERCENTAGE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.CONVERT_TO_PERCENTAGE">Constant Field Values</a></dd>
@@ -402,7 +399,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLUSTER_MINIMUM_MEMORY_THRESHOLD</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.52">CLUSTER_MINIMUM_MEMORY_THRESHOLD</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.53">CLUSTER_MINIMUM_MEMORY_THRESHOLD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.CLUSTER_MINIMUM_MEMORY_THRESHOLD">Constant Field Values</a></dd>
@@ -415,7 +412,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>BLOCK_CACHE_SIZE_MAX_RANGE_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/regionserver/HeapMemoryManager.html#line.55">BLOCK_CACHE_SIZE_MAX_RANGE_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/regionserver/HeapMemoryManager.html#line.56">BLOCK_CACHE_SIZE_MAX_RANGE_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.BLOCK_CACHE_SIZE_MAX_RANGE_KEY">Constant Field Values</a></dd>
@@ -428,7 +425,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>BLOCK_CACHE_SIZE_MIN_RANGE_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/regionserver/HeapMemoryManager.html#line.56">BLOCK_CACHE_SIZE_MIN_RANGE_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/regionserver/HeapMemoryManager.html#line.57">BLOCK_CACHE_SIZE_MIN_RANGE_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.BLOCK_CACHE_SIZE_MIN_RANGE_KEY">Constant Field Values</a></dd>
@@ -441,7 +438,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>MEMSTORE_SIZE_MAX_RANGE_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/regionserver/HeapMemoryManager.html#line.57">MEMSTORE_SIZE_MAX_RANGE_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/regionserver/HeapMemoryManager.html#line.58">MEMSTORE_SIZE_MAX_RANGE_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.MEMSTORE_SIZE_MAX_RANGE_KEY">Constant Field Values</a></dd>
@@ -454,7 +451,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>MEMSTORE_SIZE_MIN_RANGE_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/regionserver/HeapMemoryManager.html#line.59">MEMSTORE_SIZE_MIN_RANGE_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/regionserver/HeapMemoryManager.html#line.60">MEMSTORE_SIZE_MIN_RANGE_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.MEMSTORE_SIZE_MIN_RANGE_KEY">Constant Field Values</a></dd>
@@ -467,7 +464,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>HBASE_RS_HEAP_MEMORY_TUNER_PERIOD</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/regionserver/HeapMemoryManager.html#line.61">HBASE_RS_HEAP_MEMORY_TUNER_PERIOD</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/regionserver/HeapMemoryManager.html#line.62">HBASE_RS_HEAP_MEMORY_TUNER_PERIOD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.HBASE_RS_HEAP_MEMORY_TUNER_PERIOD">Constant Field Values</a></dd>
@@ -480,7 +477,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>HBASE_RS_HEAP_MEMORY_TUNER_DEFAULT_PERIOD</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.63">HBASE_RS_HEAP_MEMORY_TUNER_DEFAULT_PERIOD</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.64">HBASE_RS_HEAP_MEMORY_TUNER_DEFAULT_PERIOD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.HBASE_RS_HEAP_MEMORY_TUNER_DEFAULT_PERIOD">Constant Field Values</a></dd>
@@ -493,7 +490,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>HBASE_RS_HEAP_MEMORY_TUNER_CLASS</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/regionserver/HeapMemoryManager.html#line.64">HBASE_RS_HEAP_MEMORY_TUNER_CLASS</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/regionserver/HeapMemoryManager.html#line.65">HBASE_RS_HEAP_MEMORY_TUNER_CLASS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.HBASE_RS_HEAP_MEMORY_TUNER_CLASS">Constant Field Values</a></dd>
@@ -506,7 +503,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>HEAP_OCCUPANCY_ERROR_VALUE</h4>
-<pre>public static final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.67">HEAP_OCCUPANCY_ERROR_VALUE</a></pre>
+<pre>public static final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.68">HEAP_OCCUPANCY_ERROR_VALUE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HeapMemoryManager.HEAP_OCCUPANCY_ERROR_VALUE">Constant Field Values</a></dd>
@@ -519,7 +516,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>globalMemStorePercent</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.69">globalMemStorePercent</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.70">globalMemStorePercent</a></pre>
 </li>
 </ul>
 <a name="globalMemStorePercentMinRange">
@@ -528,7 +525,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>globalMemStorePercentMinRange</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.70">globalMemStorePercentMinRange</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.71">globalMemStorePercentMinRange</a></pre>
 </li>
 </ul>
 <a name="globalMemStorePercentMaxRange">
@@ -537,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>globalMemStorePercentMaxRange</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.71">globalMemStorePercentMaxRange</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.72">globalMemStorePercentMaxRange</a></pre>
 </li>
 </ul>
 <a name="blockCachePercent">
@@ -546,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>blockCachePercent</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.73">blockCachePercent</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.74">blockCachePercent</a></pre>
 </li>
 </ul>
 <a name="blockCachePercentMinRange">
@@ -555,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>blockCachePercentMinRange</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.74">blockCachePercentMinRange</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.75">blockCachePercentMinRange</a></pre>
 </li>
 </ul>
 <a name="blockCachePercentMaxRange">
@@ -564,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>blockCachePercentMaxRange</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.75">blockCachePercentMaxRange</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.76">blockCachePercentMaxRange</a></pre>
 </li>
 </ul>
 <a name="heapOccupancyPercent">
@@ -573,7 +570,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>heapOccupancyPercent</h4>
-<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.77">heapOccupancyPercent</a></pre>
+<pre>private&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.78">heapOccupancyPercent</a></pre>
 </li>
 </ul>
 <a name="blockCache">
@@ -582,7 +579,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>blockCache</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.79">blockCache</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.80">blockCache</a></pre>
 </li>
 </ul>
 <a name="memStoreFlusher">
@@ -591,7 +588,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>memStoreFlusher</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.81">memStoreFlusher</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.82">memStoreFlusher</a></pre>
 </li>
 </ul>
 <a name="server">
@@ -600,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>server</h4>
-<pre>private 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/regionserver/HeapMemoryManager.html#line.82">server</a></pre>
+<pre>private 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/regionserver/HeapMemoryManager.html#line.83">server</a></pre>
 </li>
 </ul>
 <a name="regionServerAccounting">
@@ -609,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>regionServerAccounting</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.83">regionServerAccounting</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.84">regionServerAccounting</a></pre>
 </li>
 </ul>
 <a name="heapMemTunerChore">
@@ -618,7 +615,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>heapMemTunerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.HeapMemoryTunerChore.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager.HeapMemoryTunerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.85">heapMemTunerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.HeapMemoryTunerChore.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager.HeapMemoryTunerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.86">heapMemTunerChore</a></pre>
 </li>
 </ul>
 <a name="tunerOn">
@@ -627,7 +624,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tunerOn</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.86">tunerOn</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.87">tunerOn</a></pre>
 </li>
 </ul>
 <a name="defaultChorePeriod">
@@ -636,7 +633,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>defaultChorePeriod</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.87">defaultChorePeriod</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.88">defaultChorePeriod</a></pre>
 </li>
 </ul>
 <a name="heapOccupancyLowWatermark">
@@ -645,7 +642,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>heapOccupancyLowWatermark</h4>
-<pre>private final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.88">heapOccupancyLowWatermark</a></pre>
+<pre>private final&nbsp;float <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.89">heapOccupancyLowWatermark</a></pre>
 </li>
 </ul>
 <a name="maxHeapSize">
@@ -654,7 +651,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>maxHeapSize</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.90">maxHeapSize</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.91">maxHeapSize</a></pre>
 </li>
 </ul>
 <a name="metricsHeapMemoryManager">
@@ -663,7 +660,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>metricsHeapMemoryManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsHeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.104">metricsHeapMemoryManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsHeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.105">metricsHeapMemoryManager</a></pre>
 </li>
 </ul>
 <a name="tuneObservers">
@@ -672,7 +669,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tuneObservers</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/HeapMemoryManager.HeapMemoryTuneObserver.html" title="interface in org.apache.hadoop.hbase.regionserver">HeapMemoryManager.HeapMemoryTuneObserver</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.106">tuneObservers</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;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.HeapMemoryTuneObserver.html" title="interface in org.apache.hadoop.hbase.regionserver">HeapMemoryManager.HeapMemoryTuneObserver</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.107">tuneObservers</a></pre>
 </li>
 </ul>
 </li>
@@ -683,13 +680,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.ResizableBlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">
+<a name="HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HeapMemoryManager</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.118">HeapMemoryManager</a>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a>&nbsp;blockCache,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.110">HeapMemoryManager</a>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
                   <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</pre>
@@ -703,16 +700,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">
+<a name="toResizableBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>create</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.108">create</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                                       <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
-                                       <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
-                                       <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</pre>
+<h4>toResizableBlockCache</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#line.125">toResizableBlockCache</a>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</pre>
 </li>
 </ul>
 <a name="doInit-org.apache.hadoop.conf.Configuration-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html
index 4103a85..36e4994 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.733">MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.663">MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable</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>
 <div class="block">This is the runnable that will be executed on the executor every PERIOD number of seconds
@@ -225,7 +225,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>lastRan</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.735">lastRan</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.665">lastRan</a></pre>
 </li>
 </ul>
 <a name="lastRequestCount">
@@ -234,7 +234,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>lastRequestCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.736">lastRequestCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.666">lastRequestCount</a></pre>
 </li>
 </ul>
 <a name="lastReadRequestsCount">
@@ -243,7 +243,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>lastReadRequestsCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.737">lastReadRequestsCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.667">lastReadRequestsCount</a></pre>
 </li>
 </ul>
 <a name="lastWriteRequestsCount">
@@ -252,7 +252,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>lastWriteRequestsCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.738">lastWriteRequestsCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.668">lastWriteRequestsCount</a></pre>
 </li>
 </ul>
 <a name="lastStoreFileSize">
@@ -261,7 +261,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lastStoreFileSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.739">lastStoreFileSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.669">lastStoreFileSize</a></pre>
 </li>
 </ul>
 </li>
@@ -278,7 +278,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionServerMetricsWrapperRunnable</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.733">RegionServerMetricsWrapperRunnable</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.663">RegionServerMetricsWrapperRunnable</a>()</pre>
 </li>
 </ul>
 </li>
@@ -295,7 +295,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/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.742">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.RegionServerMetricsWrapperRunnable.html#line.672">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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
index 2b4e52a..3a3ea1d 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.483">HFileReaderImpl.HFileScannerImpl</a>
+<pre>protected static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.486">HFileReaderImpl.HFileScannerImpl</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/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a></pre>
 </li>
@@ -503,7 +503,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>blockBuffer</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.484">blockBuffer</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.487">blockBuffer</a></pre>
 </li>
 </ul>
 <a name="cacheBlocks">
@@ -512,7 +512,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheBlocks</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.485">cacheBlocks</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.488">cacheBlocks</a></pre>
 </li>
 </ul>
 <a name="pread">
@@ -521,7 +521,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>pread</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.486">pread</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.489">pread</a></pre>
 </li>
 </ul>
 <a name="isCompaction">
@@ -530,7 +530,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>isCompaction</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.487">isCompaction</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.490">isCompaction</a></pre>
 </li>
 </ul>
 <a name="currKeyLen">
@@ -539,7 +539,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>currKeyLen</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.488">currKeyLen</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.491">currKeyLen</a></pre>
 </li>
 </ul>
 <a name="currValueLen">
@@ -548,7 +548,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>currValueLen</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.489">currValueLen</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.492">currValueLen</a></pre>
 </li>
 </ul>
 <a name="currMemstoreTSLen">
@@ -557,7 +557,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>currMemstoreTSLen</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.490">currMemstoreTSLen</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.493">currMemstoreTSLen</a></pre>
 </li>
 </ul>
 <a name="currMemstoreTS">
@@ -566,7 +566,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>currMemstoreTS</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.491">currMemstoreTS</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.494">currMemstoreTS</a></pre>
 </li>
 </ul>
 <a name="blockFetches">
@@ -575,7 +575,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>blockFetches</h4>
-<pre>protected&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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.493">blockFetches</a></pre>
+<pre>protected&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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.496">blockFetches</a></pre>
 </li>
 </ul>
 <a name="reader">
@@ -584,7 +584,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>reader</h4>
-<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.494">reader</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.497">reader</a></pre>
 </li>
 </ul>
 <a name="currTagsLen">
@@ -593,7 +593,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>currTagsLen</h4>
-<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.495">currTagsLen</a></pre>
+<pre>private&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.498">currTagsLen</a></pre>
 </li>
 </ul>
 <a name="bufBackedKeyOnlyKv">
@@ -602,7 +602,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>bufBackedKeyOnlyKv</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ByteBufferKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyOnlyKeyValue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.497">bufBackedKeyOnlyKv</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ByteBufferKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyOnlyKeyValue</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.500">bufBackedKeyOnlyKv</a></pre>
 </li>
 </ul>
 <a name="pair">
@@ -611,7 +611,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>pair</h4>
-<pre>final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/ObjectIntPair.html" title="class in org.apache.hadoop.hbase.util">ObjectIntPair</a>&lt;<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>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.499">pair</a></pre>
+<pre>final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/ObjectIntPair.html" title="class in org.apache.hadoop.hbase.util">ObjectIntPair</a>&lt;<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>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.502">pair</a></pre>
 </li>
 </ul>
 <a name="nextIndexedKey">
@@ -620,7 +620,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>nextIndexedKey</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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.508">nextIndexedKey</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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.511">nextIndexedKey</a></pre>
 <div class="block">The next indexed key is to keep track of the indexed key of the next data block.
  If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the
  current data block is the last data block.
@@ -634,7 +634,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>curBlock</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.510">curBlock</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.513">curBlock</a></pre>
 </li>
 </ul>
 <a name="prevBlocks">
@@ -643,7 +643,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>prevBlocks</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.512">prevBlocks</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.515">prevBlocks</a></pre>
 </li>
 </ul>
 </li>
@@ -660,7 +660,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HFileScannerImpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.514">HFileScannerImpl</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a>&nbsp;reader,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.517">HFileScannerImpl</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a>&nbsp;reader,
                         boolean&nbsp;cacheBlocks,
                         boolean&nbsp;pread,
                         boolean&nbsp;isCompaction)</pre>
@@ -680,7 +680,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCurrBlockRef</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.522">updateCurrBlockRef</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;block)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.525">updateCurrBlockRef</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;block)</pre>
 </li>
 </ul>
 <a name="reset--">
@@ -689,7 +689,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>reset</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.534">reset</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.537">reset</a>()</pre>
 </li>
 </ul>
 <a name="returnBlockToCache-org.apache.hadoop.hbase.io.hfile.HFileBlock-">
@@ -698,7 +698,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>returnBlockToCache</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.542">returnBlockToCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;block)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.545">returnBlockToCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;block)</pre>
 </li>
 </ul>
 <a name="returnBlocks-boolean-">
@@ -707,7 +707,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>returnBlocks</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.549">returnBlocks</a>(boolean&nbsp;returnAll)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.552">returnBlocks</a>(boolean&nbsp;returnAll)</pre>
 </li>
 </ul>
 <a name="isSeeked--">
@@ -716,7 +716,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>isSeeked</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.560">isSeeked</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.563">isSeeked</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#isSeeked--">isSeeked</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a></code></dd>
@@ -733,7 +733,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.565">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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.568">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>
@@ -746,7 +746,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>assertSeeked</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.569">assertSeeked</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.572">assertSeeked</a>()</pre>
 </li>
 </ul>
 <a name="getReader--">
@@ -755,7 +755,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getReader</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.575">getReader</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.578">getReader</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a></code></dd>
@@ -770,7 +770,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getKVBufSize</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.582">getKVBufSize</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.585">getKVBufSize</a>()</pre>
 </li>
 </ul>
 <a name="close--">
@@ -779,7 +779,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.591">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.594">close</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#close--">HFileScanner</a></code></span></div>
 <div class="block">Close this HFile scanner and do necessary cleanup.</div>
 <dl>
@@ -798,7 +798,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurCellSerializedSize</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.601">getCurCellSerializedSize</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.604">getCurCellSerializedSize</a>()</pre>
 </li>
 </ul>
 <a name="readKeyValueLen--">
@@ -807,7 +807,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>readKeyValueLen</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.610">readKeyValueLen</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.613">readKeyValueLen</a>()</pre>
 </li>
 </ul>
 <a name="checkTagsLen--">
@@ -816,7 +816,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTagsLen</h4>
-<pre>private final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.636">checkTagsLen</a>()</pre>
+<pre>private final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.639">checkTagsLen</a>()</pre>
 </li>
 </ul>
 <a name="readMvccVersion-int-">
@@ -825,7 +825,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>readMvccVersion</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.649">readMvccVersion</a>(int&nbsp;offsetFromPos)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.652">readMvccVersion</a>(int&nbsp;offsetFromPos)</pre>
 <div class="block">Read mvcc. Does checks to see if we even need to read the mvcc at all.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -839,7 +839,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>_readMvccVersion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.664">_readMvccVersion</a>(int&nbsp;offsetFromPos)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.667">_readMvccVersion</a>(int&nbsp;offsetFromPos)</pre>
 <div class="block">Actually do the mvcc read. Does no checks.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -853,7 +853,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>blockSeek</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.714">blockSeek</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.717">blockSeek</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
                         boolean&nbsp;seekBefore)</pre>
 <div class="block">Within a loaded block, seek looking for the last key that is smaller than
  (or equal to?) the key we are interested in.
@@ -878,7 +878,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getNextIndexedKey</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.796">getNextIndexedKey</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.799">getNextIndexedKey</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getNextIndexedKey--">getNextIndexedKey</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a></code></dd>
@@ -893,7 +893,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>seekTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.801">seekTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.804">seekTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
            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/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-">HFileScanner</a></code></span></div>
 <div class="block">SeekTo or just before the passed <code>cell</code>.  Examine the return
@@ -923,7 +923,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>reseekTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.806">reseekTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.809">reseekTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
              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/io/hfile/HFileScanner.html#reseekTo-org.apache.hadoop.hbase.Cell-">HFileScanner</a></code></span></div>
 <div class="block">Reseek to or just before the passed <code>cell</code>. Similar to seekTo
@@ -959,7 +959,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>seekTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.850">seekTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.853">seekTo</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
                   boolean&nbsp;rewind)
            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">An internal API function. Seek to the given key, optionally rewinding to
@@ -986,7 +986,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>seekBefore</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.864">seekBefore</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.867">seekBefore</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
                    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/io/hfile/HFileScanner.html#seekBefore-org.apache.hadoop.hbase.Cell-">HFileScanner</a></code></span></div>
 <div class="block">Consider the cell stream of all the cells in the file,
@@ -1012,7 +1012,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>readNextDataBlock</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.908">readNextDataBlock</a>()
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.911">readNextDataBlock</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">Scans blocks in the "scanned" section of the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> until the next
  data block is found.</div>
@@ -1030,7 +1030,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getEffectiveDataBlockEncoding</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.939">getEffectiveDataBlockEncoding</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.942">getEffectiveDataBlockEncoding</a>()</pre>
 </li>
 </ul>
 <a name="getCell--">
@@ -1039,7 +1039,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getCell</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.944">getCell</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.947">getCell</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getCell--">getCell</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a></code></dd>
@@ -1054,7 +1054,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getKey</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.982">getKey</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.985">getKey</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getKey--">HFileScanner</a></code></span></div>
 <div class="block">Gets the current key in the form of a cell. You must call
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -1072,7 +1072,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getValue</h4>
-<pre>public&nbsp;<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1003">getValue</a>()</pre>
+<pre>public&nbsp;<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1006">getValue</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getValue--">HFileScanner</a></code></span></div>
 <div class="block">Gets a buffer view to the current value.  You must call
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -1091,7 +1091,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>setNonSeekedState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1015">setNonSeekedState</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1018">setNonSeekedState</a>()</pre>
 </li>
 </ul>
 <a name="positionThisBlockBuffer--">
@@ -1100,7 +1100,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>positionThisBlockBuffer</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1028">positionThisBlockBuffer</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1031">positionThisBlockBuffer</a>()</pre>
 <div class="block">Set the position on current backing blockBuffer.</div>
 </li>
 </ul>
@@ -1110,7 +1110,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>positionForNextBlock</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1046">positionForNextBlock</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1049">positionForNextBlock</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">Set our selves up for the next 'next' invocation, set up next block.</div>
 <dl>
@@ -1127,7 +1127,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>isNextBlock</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1057">isNextBlock</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1060">isNextBlock</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>
@@ -1141,7 +1141,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>_next</h4>
-<pre>private final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1068">_next</a>()
+<pre>private final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1071">_next</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>
@@ -1155,7 +1155,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1087">next</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1090">next</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">Go to the next key/value in the block section. Loads the next block if
  necessary. If successful, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#getKey--"><code>getKey()</code></a> and <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#getValue--"><code>getValue()</code></a> can
@@ -1176,7 +1176,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>seekTo</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1103">seekTo</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1106">seekTo</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">Positions this scanner at the start of the file.</div>
 <dl>
@@ -1196,7 +1196,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>processFirstDataBlock</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1123">processFirstDataBlock</a>()
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1126">processFirstDataBlock</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>
@@ -1210,7 +1210,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>readAndUpdateNewBlock</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1129">readAndUpdateNewBlock</a>(long&nbsp;firstDataBlockOffset)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1132">readAndUpdateNewBlock</a>(long&nbsp;firstDataBlockOffset)
                               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="../../../../../../org/apache/hadoop/hbase/io/hfile/CorruptHFileException.html" title="class in org.apache.hadoop.hbase.io.hfile">CorruptHFileException</a></pre>
 <dl>
@@ -1226,7 +1226,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>loadBlockAndSeekToKey</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1139">loadBlockAndSeekToKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;seekToBlock,
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1142">loadBlockAndSeekToKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;seekToBlock,
                                     <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextIndexedKey,
                                     boolean&nbsp;rewind,
                                     <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
@@ -1244,7 +1244,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>checkKeyLen</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1157">checkKeyLen</a>(int&nbsp;v)</pre>
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1160">checkKeyLen</a>(int&nbsp;v)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>v</code> - </dd>
@@ -1259,7 +1259,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>checkLen</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1165">checkLen</a>(int&nbsp;v)</pre>
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1168">checkLen</a>(int&nbsp;v)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>v</code> - </dd>
@@ -1274,7 +1274,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>checkKeyValueLen</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1172">checkKeyValueLen</a>()</pre>
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1175">checkKeyValueLen</a>()</pre>
 <div class="block">Check key and value lengths are wholesome.</div>
 </li>
 </ul>
@@ -1284,7 +1284,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCurrentBlock</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1188">updateCurrentBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;newBlock)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1191">updateCurrentBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;newBlock)
                            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">Updates the current block to be the given <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFileBlock</code></a>. Seeks to
  the the first key/value pair.</div>
@@ -1302,7 +1302,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getFirstKeyCellInBlock</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1207">getFirstKeyCellInBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;curBlock)</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1210">getFirstKeyCellInBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;curBlock)</pre>
 </li>
 </ul>
 <a name="getKeyString--">
@@ -1311,7 +1311,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getKeyString</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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1223">getKeyString</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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1226">getKeyString</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getKeyString--">HFileScanner</a></code></span></div>
 <div class="block">Convenience method to get a copy of the key as a string - interpreting the
  bytes as UTF8. You must call <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -1329,7 +1329,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>getValueString</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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1228">getValueString</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/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1231">getValueString</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#getValueString--">HFileScanner</a></code></span></div>
 <div class="block">Convenience method to get a copy of the value as a string - interpreting
  the bytes as UTF8. You must call <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> before this method.</div>
@@ -1347,7 +1347,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockList">
 <li class="blockList">
 <h4>compareKey</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1232">compareKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1235">compareKey</a>(<a href="../../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator,
                       <a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)</pre>
 </li>
 </ul>
@@ -1357,7 +1357,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScan
 <ul class="blockListLast">
 <li class="blockList">
 <h4>shipped</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1239">shipped</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html#line.1242">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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
index e83f2ee..c0a80ec 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html
@@ -131,7 +131,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.477">HFileReaderImpl.NotSeekedException</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.480">HFileReaderImpl.NotSeekedException</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></pre>
 <div class="block">An exception thrown when an operation requiring a scanner to be seeked
  is invoked on a scanner that is not seeked.</div>
@@ -202,7 +202,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NotSeekedException</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html#line.478">NotSeekedException</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.NotSeekedException.html#line.481">NotSeekedException</a>()</pre>
 </li>
 </ul>
 </li>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
index 93aa689..8634180 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
@@ -550,301 +550,302 @@
 <span class="sourceLineNo">542</span>   *          the cache key.<a name="line.542"></a>
 <span class="sourceLineNo">543</span>   */<a name="line.543"></a>
 <span class="sourceLineNo">544</span>  private void doCacheOnWrite(long offset) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    HFileBlock cacheFormatBlock = blockWriter.getBlockForCaching(cacheConf);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    cacheConf.getBlockCache().cacheBlock(<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        new BlockCacheKey(name, offset, true, cacheFormatBlock.getBlockType()),<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        cacheFormatBlock);<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>  /**<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * Ready a new block for writing.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   *<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * @throws IOException<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   */<a name="line.555"></a>
-<span class="sourceLineNo">556</span>  protected void newBlock() throws IOException {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    // This is where the next block begins.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    blockWriter.startWriting(BlockType.DATA);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    firstCellInBlock = null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    if (lastCell != null) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      lastCellOfPreviousBlock = lastCell;<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>  /**<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * Add a meta block to the end of the file. Call before close(). Metadata<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * blocks are expensive. Fill one with a bunch of serialized data rather than<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * do a metadata block per metadata instance. If metadata is small, consider<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   * adding to file info using {@link #appendFileInfo(byte[], byte[])}<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   *<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * @param metaBlockName<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   *          name of the block<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   * @param content<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   *          will call readFields to get data later (DO NOT REUSE)<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   */<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  @Override<a name="line.576"></a>
-<span class="sourceLineNo">577</span>  public void appendMetaBlock(String metaBlockName, Writable content) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    byte[] key = Bytes.toBytes(metaBlockName);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    int i;<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    for (i = 0; i &lt; metaNames.size(); ++i) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      // stop when the current key is greater than our own<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      byte[] cur = metaNames.get(i);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      if (Bytes.BYTES_RAWCOMPARATOR.compare(cur, 0, cur.length, key, 0,<a name="line.583"></a>
-<span class="sourceLineNo">584</span>          key.length) &gt; 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        break;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    }<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    metaNames.add(i, key);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    metaData.add(i, content);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>  }<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>  @Override<a name="line.592"></a>
-<span class="sourceLineNo">593</span>  public void close() throws IOException {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    if (outputStream == null) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      return;<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    // Save data block encoder metadata in the file info.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    blockEncoder.saveMetadata(this);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    // Write out the end of the data blocks, then write meta data blocks.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // followed by fileinfo, data block index and meta block index.<a name="line.600"></a>
-<span class="sourceLineNo">601</span><a name="line.601"></a>
-<span class="sourceLineNo">602</span>    finishBlock();<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    writeInlineBlocks(true);<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    FixedFileTrailer trailer = new FixedFileTrailer(getMajorVersion(), getMinorVersion());<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>    // Write out the metadata blocks if any.<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    if (!metaNames.isEmpty()) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      for (int i = 0; i &lt; metaNames.size(); ++i) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        // store the beginning offset<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        long offset = outputStream.getPos();<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        // write the metadata content<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        DataOutputStream dos = blockWriter.startWriting(BlockType.META);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        metaData.get(i).write(dos);<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span>        blockWriter.writeHeaderAndData(outputStream);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>        // Add the new meta block to the meta index.<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        metaBlockIndexWriter.addEntry(metaNames.get(i), offset,<a name="line.620"></a>
-<span class="sourceLineNo">621</span>            blockWriter.getOnDiskSizeWithHeader());<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><a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // Load-on-open section.<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>    // Data block index.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    //<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    // In version 2, this section of the file starts with the root level data<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    // block index. We call a function that writes intermediate-level blocks<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    // first, then root level, and returns the offset of the root level block<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    // index.<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>    long rootIndexOffset = dataBlockIndexWriter.writeIndexBlocks(outputStream);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    trailer.setLoadOnOpenOffset(rootIndexOffset);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    // Meta block index.<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    metaBlockIndexWriter.writeSingleLevelIndex(blockWriter.startWriting(<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        BlockType.ROOT_INDEX), "meta");<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    blockWriter.writeHeaderAndData(outputStream);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.641"></a>
-<span class="sourceLineNo">642</span><a name="line.642"></a>
-<span class="sourceLineNo">643</span>    if (this.hFileContext.isIncludesMvcc()) {<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      appendFileInfo(MAX_MEMSTORE_TS_KEY, Bytes.toBytes(maxMemstoreTS));<a name="line.644"></a>
-<span class="sourceLineNo">645</span>      appendFileInfo(KEY_VALUE_VERSION, Bytes.toBytes(KEY_VALUE_VER_WITH_MEMSTORE));<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>    // File info<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    writeFileInfo(trailer, blockWriter.startWriting(BlockType.FILE_INFO));<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    blockWriter.writeHeaderAndData(outputStream);<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>    // Load-on-open data supplied by higher levels, e.g. Bloom filters.<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    for (BlockWritable w : additionalLoadOnOpenData){<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      blockWriter.writeBlock(w, outputStream);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>    // Now finish off the trailer.<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    trailer.setNumDataIndexLevels(dataBlockIndexWriter.getNumLevels());<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    trailer.setUncompressedDataIndexSize(<a name="line.661"></a>
-<span class="sourceLineNo">662</span>        dataBlockIndexWriter.getTotalUncompressedSize());<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    trailer.setFirstDataBlockOffset(firstDataBlockOffset);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    trailer.setLastDataBlockOffset(lastDataBlockOffset);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    trailer.setComparatorClass(comparator.getClass());<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    trailer.setDataIndexCount(dataBlockIndexWriter.getNumRootEntries());<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">545</span>    cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      HFileBlock cacheFormatBlock = blockWriter.getBlockForCaching(cacheConf);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>      cache.cacheBlock(new BlockCacheKey(name, offset, true, cacheFormatBlock.getBlockType()),<a name="line.547"></a>
+<span class="sourceLineNo">548</span>          cacheFormatBlock);<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><a name="line.551"></a>
+<span class="sourceLineNo">552</span>  /**<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   * Ready a new block for writing.<a name="line.553"></a>
+<span class="sourceLineNo">554</span>   *<a name="line.554"></a>
+<span class="sourceLineNo">555</span>   * @throws IOException<a name="line.555"></a>
+<span class="sourceLineNo">556</span>   */<a name="line.556"></a>
+<span class="sourceLineNo">557</span>  protected void newBlock() throws IOException {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    // This is where the next block begins.<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    blockWriter.startWriting(BlockType.DATA);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>    firstCellInBlock = null;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    if (lastCell != null) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      lastCellOfPreviousBlock = lastCell;<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>  /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   * Add a meta block to the end of the file. Call before close(). Metadata<a name="line.567"></a>
+<span class="sourceLineNo">568</span>   * blocks are expensive. Fill one with a bunch of serialized data rather than<a name="line.568"></a>
+<span class="sourceLineNo">569</span>   * do a metadata block per metadata instance. If metadata is small, consider<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * adding to file info using {@link #appendFileInfo(byte[], byte[])}<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   *<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   * @param metaBlockName<a name="line.572"></a>
+<span class="sourceLineNo">573</span>   *          name of the block<a name="line.573"></a>
+<span class="sourceLineNo">574</span>   * @param content<a name="line.574"></a>
+<span class="sourceLineNo">575</span>   *          will call readFields to get data later (DO NOT REUSE)<a name="line.575"></a>
+<span class="sourceLineNo">576</span>   */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>  @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  public void appendMetaBlock(String metaBlockName, Writable content) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    byte[] key = Bytes.toBytes(metaBlockName);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    int i;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    for (i = 0; i &lt; metaNames.size(); ++i) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      // stop when the current key is greater than our own<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      byte[] cur = metaNames.get(i);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      if (Bytes.BYTES_RAWCOMPARATOR.compare(cur, 0, cur.length, key, 0,<a name="line.584"></a>
+<span class="sourceLineNo">585</span>          key.length) &gt; 0) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        break;<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>    metaNames.add(i, key);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    metaData.add(i, content);<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>  @Override<a name="line.593"></a>
+<span class="sourceLineNo">594</span>  public void close() throws IOException {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    if (outputStream == null) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      return;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>    // Save data block encoder metadata in the file info.<a name="line.598"></a>
+<span class="sourceLineNo">599</span>    blockEncoder.saveMetadata(this);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    // Write out the end of the data blocks, then write meta data blocks.<a name="line.600"></a>
+<span class="sourceLineNo">601</span>    // followed by fileinfo, data block index and meta block index.<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>    finishBlock();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    writeInlineBlocks(true);<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span>    FixedFileTrailer trailer = new FixedFileTrailer(getMajorVersion(), getMinorVersion());<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>    // Write out the metadata blocks if any.<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    if (!metaNames.isEmpty()) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      for (int i = 0; i &lt; metaNames.size(); ++i) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        // store the beginning offset<a name="line.611"></a>
+<span class="sourceLineNo">612</span>        long offset = outputStream.getPos();<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        // write the metadata content<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        DataOutputStream dos = blockWriter.startWriting(BlockType.META);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        metaData.get(i).write(dos);<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>        blockWriter.writeHeaderAndData(outputStream);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>        // Add the new meta block to the meta index.<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        metaBlockIndexWriter.addEntry(metaNames.get(i), offset,<a name="line.621"></a>
+<span class="sourceLineNo">622</span>            blockWriter.getOnDiskSizeWithHeader());<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      }<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>    // Load-on-open section.<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>    // Data block index.<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    //<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    // In version 2, this section of the file starts with the root level data<a name="line.630"></a>
+<span class="sourceLineNo">631</span>    // block index. We call a function that writes intermediate-level blocks<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    // first, then root level, and returns the offset of the root level block<a name="line.632"></a>
+<span class="sourceLineNo">633</span>    // index.<a name="line.633"></a>
+<span class="sourceLineNo">634</span><a name="line.634"></a>
+<span class="sourceLineNo">635</span>    long rootIndexOffset = dataBlockIndexWriter.writeIndexBlocks(outputStream);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    trailer.setLoadOnOpenOffset(rootIndexOffset);<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>    // Meta block index.<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    metaBlockIndexWriter.writeSingleLevelIndex(blockWriter.startWriting(<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        BlockType.ROOT_INDEX), "meta");<a name="line.640"></a>
+<span class="sourceLineNo">641</span>    blockWriter.writeHeaderAndData(outputStream);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>    if (this.hFileContext.isIncludesMvcc()) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      appendFileInfo(MAX_MEMSTORE_TS_KEY, Bytes.toBytes(maxMemstoreTS));<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      appendFileInfo(KEY_VALUE_VERSION, Bytes.toBytes(KEY_VALUE_VER_WITH_MEMSTORE));<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>    // File info<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    writeFileInfo(trailer, blockWriter.startWriting(BlockType.FILE_INFO));<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    blockWriter.writeHeaderAndData(outputStream);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.652"></a>
+<span class="sourceLineNo">653</span><a name="line.653"></a>
+<span class="sourceLineNo">654</span>    // Load-on-open data supplied by higher levels, e.g. Bloom filters.<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    for (BlockWritable w : additionalLoadOnOpenData){<a name="line.655"></a>
+<span class="sourceLineNo">656</span>      blockWriter.writeBlock(w, outputStream);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>      totalUncompressedBytes += blockWriter.getUncompressedSizeWithHeader();<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
+<span class="sourceLineNo">659</span><a name="line.659"></a>
+<span class="sourceLineNo">660</span>    // Now finish off the trailer.<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    trailer.setNumDataIndexLevels(dataBlockIndexWriter.getNumLevels());<a name="line.661"></a>
+<span class="sourceLineNo">662</span>    trailer.setUncompressedDataIndexSize(<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        dataBlockIndexWriter.getTotalUncompressedSize());<a name="line.663"></a>
+<span class="sourceLineNo">664</span>    trailer.setFirstDataBlockOffset(firstDataBlockOffset);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    trailer.setLastDataBlockOffset(lastDataBlockOffset);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    trailer.setComparatorClass(comparator.getClass());<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    trailer.setDataIndexCount(dataBlockIndexWriter.getNumRootEntries());<a name="line.667"></a>
 <span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>    finishClose(trailer);<a name="line.669"></a>
-<span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>    blockWriter.release();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  @Override<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  public void addInlineBlockWriter(InlineBlockWriter ibw) {<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    inlineBlockWriters.add(ibw);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  @Override<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  public void addGeneralBloomFilter(final BloomFilterWriter bfw) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    this.addBloomFilter(bfw, BlockType.GENERAL_BLOOM_META);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>  }<a name="line.682"></a>
-<span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span>  @Override<a name="line.684"></a>
-<span class="sourceLineNo">685</span>  public void addDeleteFamilyBloomFilter(final BloomFilterWriter bfw) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    this.addBloomFilter(bfw, BlockType.DELETE_FAMILY_BLOOM_META);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  private void addBloomFilter(final BloomFilterWriter bfw,<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      final BlockType blockType) {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    if (bfw.getKeyCount() &lt;= 0)<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      return;<a name="line.692"></a>
-<span class="sourceLineNo">693</span><a name="line.693"></a>
-<span class="sourceLineNo">694</span>    if (blockType != BlockType.GENERAL_BLOOM_META &amp;&amp;<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        blockType != BlockType.DELETE_FAMILY_BLOOM_META) {<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      throw new RuntimeException("Block Type: " + blockType.toString() +<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          "is not supported");<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    }<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    additionalLoadOnOpenData.add(new BlockWritable() {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      @Override<a name="line.700"></a>
-<span class="sourceLineNo">701</span>      public BlockType getBlockType() {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        return blockType;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>      @Override<a name="line.705"></a>
-<span class="sourceLineNo">706</span>      public void writeToBlock(DataOutput out) throws IOException {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>        bfw.getMetaWriter().write(out);<a name="line.707"></a>
-<span class="sourceLineNo">708</span>        Writable dataWriter = bfw.getDataWriter();<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        if (dataWriter != null)<a name="line.709"></a>
-<span class="sourceLineNo">710</span>          dataWriter.write(out);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    });<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  @Override<a name="line.715"></a>
-<span class="sourceLineNo">716</span>  public HFileContext getFileContext() {<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    return hFileContext;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>  }<a name="line.718"></a>
-<span class="sourceLineNo">719</span><a name="line.719"></a>
-<span class="sourceLineNo">720</span>  /**<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * Add key/value to file. Keys must be added in an order that agrees with the<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * Comparator passed on construction.<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   *<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param cell<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   *          Cell to add. Cannot be empty nor null.<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @throws IOException<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  @Override<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  public void append(final Cell cell) throws IOException {<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    // checkKey uses comparator to check we are writing in order.<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    boolean dupKey = checkKey(cell);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    if (!dupKey) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      checkBlockBoundary();<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    }<a name="line.734"></a>
-<span class="sourceLineNo">735</span><a name="line.735"></a>
-<span class="sourceLineNo">736</span>    if (!blockWriter.isWriting()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      newBlock();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    }<a name="line.738"></a>
-<span class="sourceLineNo">739</span><a name="line.739"></a>
-<span class="sourceLineNo">740</span>    blockWriter.write(cell);<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>    totalKeyLength += PrivateCellUtil.estimatedSerializedSizeOfKey(cell);<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    totalValueLength += cell.getValueLength();<a name="line.743"></a>
-<span class="sourceLineNo">744</span><a name="line.744"></a>
-<span class="sourceLineNo">745</span>    // Are we the first key in this block?<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    if (firstCellInBlock == null) {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      // If cell is big, block will be closed and this firstCellInBlock reference will only last<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      // a short while.<a name="line.748"></a>
-<span class="sourceLineNo">749</span>      firstCellInBlock = cell;<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    }<a name="line.750"></a>
-<span class="sourceLineNo">751</span><a name="line.751"></a>
-<span class="sourceLineNo">752</span>    // TODO: What if cell is 10MB and we write infrequently? We hold on to cell here indefinitely?<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    lastCell = cell;<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    entryCount++;<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    this.maxMemstoreTS = Math.max(this.maxMemstoreTS, cell.getSequenceId());<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    int tagsLength = cell.getTagsLength();<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    if (tagsLength &gt; this.maxTagsLength) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>      this.maxTagsLength = tagsLength;<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>  }<a name="line.760"></a>
-<span class="sourceLineNo">761</span><a name="line.761"></a>
-<span class="sourceLineNo">762</span>  @Override<a name="line.762"></a>
-<span class="sourceLineNo">763</span>  public void beforeShipped() throws IOException {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>    // Add clone methods for every cell<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    if (this.lastCell != null) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      this.lastCell = KeyValueUtil.toNewKeyCell(this.lastCell);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (this.firstCellInBlock != null) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      this.firstCellInBlock = KeyValueUtil.toNewKeyCell(this.firstCellInBlock);<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    }<a name="line.770"></a>
-<span class="sourceLineNo">771</span>    if (this.lastCellOfPreviousBlock != null) {<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      this.lastCellOfPreviousBlock = KeyValueUtil.toNewKeyCell(this.lastCellOfPreviousBlock);<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>  protected void finishFileInfo() throws IOException {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    if (lastCell != null) {<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      // Make a copy. The copy is stuffed into our fileinfo map. Needs a clean<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      // byte buffer. Won't take a tuple.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>      byte [] lastKey = PrivateCellUtil.getCellKeySerializedAsKeyValueKey(this.lastCell);<a name="line.780"></a>
-<span class="sourceLineNo">781</span>      fileInfo.append(FileInfo.LASTKEY, lastKey, false);<a name="line.781"></a>
-<span class="sourceLineNo">782</span>    }<a name="line.782"></a>
-<span class="sourceLineNo">783</span><a name="line.783"></a>
-<span class="sourceLineNo">784</span>    // Average key length.<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    int avgKeyLen =<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        entryCount == 0 ? 0 : (int) (totalKeyLength / entryCount);<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    fileInfo.append(FileInfo.AVG_KEY_LEN, Bytes.toBytes(avgKeyLen), false);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    fileInfo.append(FileInfo.CREATE_TIME_TS, Bytes.toBytes(hFileContext.getFileCreateTime()),<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      false);<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>    // Average value length.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>    int avgValueLen =<a name="line.792"></a>
-<span class="sourceLineNo">793</span>        entryCount == 0 ? 0 : (int) (totalValueLength / entryCount);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    fileInfo.append(FileInfo.AVG_VALUE_LEN, Bytes.toBytes(avgValueLen), false);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    if (hFileContext.isIncludesTags()) {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      // When tags are not being written in this file, MAX_TAGS_LEN is excluded<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      // from the FileInfo<a name="line.797"></a>
-<span class="sourceLineNo">798</span>      fileInfo.append(FileInfo.MAX_TAGS_LEN, Bytes.toBytes(this.maxTagsLength), false);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      boolean tagsCompressed = (hFileContext.getDataBlockEncoding() != DataBlockEncoding.NONE)<a name="line.799"></a>
-<span class="sourceLineNo">800</span>        &amp;&amp; hFileContext.isCompressTags();<a name="line.800"></a>
-<span class="sourceLineNo">801</span>      fileInfo.append(FileInfo.TAGS_COMPRESSED, Bytes.toBytes(tagsCompressed), false);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    }<a name="line.802"></a>
-<span class="sourceLineNo">803</span>  }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>  protected int getMajorVersion() {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    return 3;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>  }<a name="line.807"></a>
-<span class="sourceLineNo">808</span><a name="line.808"></a>
-<span class="sourceLineNo">809</span>  protected int getMinorVersion() {<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    return HFileReaderImpl.MAX_MINOR_VERSION;<a name="line.810"></a>
-<span class="sourceLineNo">811</span>  }<a name="line.811"></a>
-<span class="sourceLineNo">812</span><a name="line.812"></a>
-<span class="sourceLineNo">813</span>  protected void finishClose(FixedFileTrailer trailer) throws IOException {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    // Write out encryption metadata before finalizing if we have a valid crypto context<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    Encryption.Context cryptoContext = hFileContext.getEncryptionContext();<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    if (cryptoContext != Encryption.Context.NONE) {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      // Wrap the context's key and write it as the encryption metadata, the wrapper includes<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      // all information needed for decryption<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      trailer.setEncryptionKey(EncryptionUtil.wrapKey(cryptoContext.getConf(),<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        cryptoContext.getConf().get(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY,<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          User.getCurrent().getShortName()),<a name="line.821"></a>
-<span class="sourceLineNo">822</span>        cryptoContext.getKey()));<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    // Now we can finish the close<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    trailer.setMetaIndexCount(metaNames.size());<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    trailer.setTotalUncompressedBytes(totalUncompressedBytes+ trailer.getTrailerSize());<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    trailer.setEntryCount(entryCount);<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    trailer.setCompressionCodec(hFileContext.getCompression());<a name="line.828"></a>
-<span class="sourceLineNo">829</span><a name="line.829"></a>
-<span class="sourceLineNo">830</span>    long startTime = System.currentTimeMillis();<a name="line.830"></a>
-<span class="sourceLineNo">831</span>    trailer.serialize(outputStream);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    HFile.updateWriteLatency(System.currentTimeMillis() - startTime);<a name="line.832"></a>
-<span class="sourceLineNo">833</span><a name="line.833"></a>
-<span class="sourceLineNo">834</span>    if (closeOutputStream) {<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      outputStream.close();<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      outputStream = null;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    }<a name="line.837"></a>
-<span class="sourceLineNo">838</span>  }<a name="line.838"></a>
-<span class="sourceLineNo">839</span>}<a name="line.839"></a>
+<span class="sourceLineNo">669</span><a name="line.669"></a>
+<span class="sourceLineNo">670</span>    finishClose(trailer);<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>    blockWriter.release();<a name="line.672"></a>
+<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
+<span class="sourceLineNo">674</span><a name="line.674"></a>
+<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
+<span class="sourceLineNo">676</span>  public void addInlineBlockWriter(InlineBlockWriter ibw) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    inlineBlockWriters.add(ibw);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
+<span class="sourceLineNo">679</span><a name="line.679"></a>
+<span class="sourceLineNo">680</span>  @Override<a name="line.680"></a>
+<span class="sourceLineNo">681</span>  public void addGeneralBloomFilter(final BloomFilterWriter bfw) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    this.addBloomFilter(bfw, BlockType.GENERAL_BLOOM_META);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>  }<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>  @Override<a name="line.685"></a>
+<span class="sourceLineNo">686</span>  public void addDeleteFamilyBloomFilter(final BloomFilterWriter bfw) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    this.addBloomFilter(bfw, BlockType.DELETE_FAMILY_BLOOM_META);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>  private void addBloomFilter(final BloomFilterWriter bfw,<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      final BlockType blockType) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    if (bfw.getKeyCount() &lt;= 0)<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      return;<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>    if (blockType != BlockType.GENERAL_BLOOM_META &amp;&amp;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        blockType != BlockType.DELETE_FAMILY_BLOOM_META) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>      throw new RuntimeException("Block Type: " + blockType.toString() +<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          "is not supported");<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    additionalLoadOnOpenData.add(new BlockWritable() {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>      @Override<a name="line.701"></a>
+<span class="sourceLineNo">702</span>      public BlockType getBlockType() {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        return blockType;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      }<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>      @Override<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      public void writeToBlock(DataOutput out) throws IOException {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        bfw.getMetaWriter().write(out);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        Writable dataWriter = bfw.getDataWriter();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        if (dataWriter != null)<a name="line.710"></a>
+<span class="sourceLineNo">711</span>          dataWriter.write(out);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>      }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    });<a name="line.713"></a>
+<span class="sourceLineNo">714</span>  }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>  @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>  public HFileContext getFileContext() {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return hFileContext;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Add key/value to file. Keys must be added in an order that agrees with the<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * Comparator passed on construction.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   *<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * @param cell<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   *          Cell to add. Cannot be empty nor null.<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @throws IOException<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   */<a name="line.728"></a>
+<span class="sourceLineNo">729</span>  @Override<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  public void append(final Cell cell) throws IOException {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>    // checkKey uses comparator to check we are writing in order.<a name="line.731"></a>
+<span class="sourceLineNo">732</span>    boolean dupKey = checkKey(cell);<a name="line.732"></a>
+<span class="sourceLineNo">733</span>    if (!dupKey) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      checkBlockBoundary();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>    if (!blockWriter.isWriting()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>      newBlock();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>    blockWriter.write(cell);<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>    totalKeyLength += PrivateCellUtil.estimatedSerializedSizeOfKey(cell);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    totalValueLength += cell.getValueLength();<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>    // Are we the first key in this block?<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    if (firstCellInBlock == null) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      // If cell is big, block will be closed and this firstCellInBlock reference will only last<a name="line.748"></a>
+<span class="sourceLineNo">749</span>      // a short while.<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      firstCellInBlock = cell;<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    }<a name="line.751"></a>
+<span class="sourceLineNo">752</span><a name="line.752"></a>
+<span class="sourceLineNo">753</span>    // TODO: What if cell is 10MB and we write infrequently? We hold on to cell here indefinitely?<a name="line.753"></a>
+<span class="sourceLineNo">754</span>    lastCell = cell;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    entryCount++;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    this.maxMemstoreTS = Math.max(this.maxMemstoreTS, cell.getSequenceId());<a name="line.756"></a>
+<span class="sourceLineNo">757</span>    int tagsLength = cell.getTagsLength();<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    if (tagsLength &gt; this.maxTagsLength) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      this.maxTagsLength = tagsLength;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>  }<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>  @Override<a name="line.763"></a>
+<span class="sourceLineNo">764</span>  public void beforeShipped() throws IOException {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>    // Add clone methods for every cell<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    if (this.lastCell != null) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>      this.lastCell = KeyValueUtil.toNewKeyCell(this.lastCell);<a name="line.767"></a>
+<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    if (this.firstCellInBlock != null) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>      this.firstCellInBlock = KeyValueUtil.toNewKeyCell(this.firstCellInBlock);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    if (this.lastCellOfPreviousBlock != null) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      this.lastCellOfPreviousBlock = KeyValueUtil.toNewKeyCell(this.lastCellOfPreviousBlock);<a name="line.773"></a>
+<span class="sourceLineNo">774</span>    }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
+<span class="sourceLineNo">776</span><a name="line.776"></a>
+<span class="sourceLineNo">777</span>  protected void finishFileInfo() throws IOException {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>    if (lastCell != null) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>      // Make a copy. The copy is stuffed into our fileinfo map. Needs a clean<a name="line.779"></a>
+<span class="sourceLineNo">780</span>      // byte buffer. Won't take a tuple.<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      byte [] lastKey = PrivateCellUtil.getCellKeySerializedAsKeyValueKey(this.lastCell);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>      fileInfo.append(FileInfo.LASTKEY, lastKey, false);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    }<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>    // Average key length.<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    int avgKeyLen =<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        entryCount == 0 ? 0 : (int) (totalKeyLength / entryCount);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    fileInfo.append(FileInfo.AVG_KEY_LEN, Bytes.toBytes(avgKeyLen), false);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    fileInfo.append(FileInfo.CREATE_TIME_TS, Bytes.toBytes(hFileContext.getFileCreateTime()),<a name="line.789"></a>
+<span class="sourceLineNo">790</span>      false);<a name="line.790"></a>
+<span class="sourceLineNo">791</span><a name="line.791"></a>
+<span class="sourceLineNo">792</span>    // Average value length.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    int avgValueLen =<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        entryCount == 0 ? 0 : (int) (totalValueLength / entryCount);<a name="line.794"></a>
+<span class="sourceLineNo">795</span>    fileInfo.append(FileInfo.AVG_VALUE_LEN, Bytes.toBytes(avgValueLen), false);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>    if (hFileContext.isIncludesTags()) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>      // When tags are not being written in this file, MAX_TAGS_LEN is excluded<a name="line.797"></a>
+<span class="sourceLineNo">798</span>      // from the FileInfo<a name="line.798"></a>
+<span class="sourceLineNo">799</span>      fileInfo.append(FileInfo.MAX_TAGS_LEN, Bytes.toBytes(this.maxTagsLength), false);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>      boolean tagsCompressed = (hFileContext.getDataBlockEncoding() != DataBlockEncoding.NONE)<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        &amp;&amp; hFileContext.isCompressTags();<a name="line.801"></a>
+<span class="sourceLineNo">802</span>      fileInfo.append(FileInfo.TAGS_COMPRESSED, Bytes.toBytes(tagsCompressed), false);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>  }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>  protected int getMajorVersion() {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    return 3;<a name="line.807"></a>
+<span class="sourceLineNo">808</span>  }<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>  protected int getMinorVersion() {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    return HFileReaderImpl.MAX_MINOR_VERSION;<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>  protected void finishClose(FixedFileTrailer trailer) throws IOException {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    // Write out encryption metadata before finalizing if we have a valid crypto context<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    Encryption.Context cryptoContext = hFileContext.getEncryptionContext();<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    if (cryptoContext != Encryption.Context.NONE) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      // Wrap the context's key and write it as the encryption metadata, the wrapper includes<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      // all information needed for decryption<a name="line.819"></a>
+<span class="sourceLineNo">820</span>      trailer.setEncryptionKey(EncryptionUtil.wrapKey(cryptoContext.getConf(),<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        cryptoContext.getConf().get(HConstants.CRYPTO_MASTERKEY_NAME_CONF_KEY,<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          User.getCurrent().getShortName()),<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        cryptoContext.getKey()));<a name="line.823"></a>
+<span class="sourceLineNo">824</span>    }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>    // Now we can finish the close<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    trailer.setMetaIndexCount(metaNames.size());<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    trailer.setTotalUncompressedBytes(totalUncompressedBytes+ trailer.getTrailerSize());<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    trailer.setEntryCount(entryCount);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    trailer.setCompressionCodec(hFileContext.getCompression());<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>    long startTime = System.currentTimeMillis();<a name="line.831"></a>
+<span class="sourceLineNo">832</span>    trailer.serialize(outputStream);<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    HFile.updateWriteLatency(System.currentTimeMillis() - startTime);<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>    if (closeOutputStream) {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      outputStream.close();<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      outputStream = null;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>  }<a name="line.839"></a>
+<span class="sourceLineNo">840</span>}<a name="line.840"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html
index 29f1b92..65b7a57 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.Bucket.html
@@ -37,11 +37,11 @@
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.concurrent.atomic.LongAdder;<a name="line.30"></a>
 <span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.slf4j.Logger;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.slf4j.LoggerFactory;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.36"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.slf4j.Logger;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.slf4j.LoggerFactory;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import com.fasterxml.jackson.annotation.JsonIgnoreProperties;<a name="line.38"></a>
 <span class="sourceLineNo">039</span><a name="line.39"></a>
@@ -459,7 +459,7 @@
 <span class="sourceLineNo">451</span>    BucketSizeInfo bsi = roundUpToBucketSizeInfo(blockSize);<a name="line.451"></a>
 <span class="sourceLineNo">452</span>    if (bsi == null) {<a name="line.452"></a>
 <span class="sourceLineNo">453</span>      throw new BucketAllocatorException("Allocation too big size=" + blockSize +<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + CacheConfig.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
+<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + BlockCacheFactory.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
 <span class="sourceLineNo">455</span>        " to accomodate if size seems reasonable and you want it cached.");<a name="line.455"></a>
 <span class="sourceLineNo">456</span>    }<a name="line.456"></a>
 <span class="sourceLineNo">457</span>    long offset = bsi.allocateBlock();<a name="line.457"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html
index 29f1b92..65b7a57 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.BucketSizeInfo.html
@@ -37,11 +37,11 @@
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.concurrent.atomic.LongAdder;<a name="line.30"></a>
 <span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.slf4j.Logger;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.slf4j.LoggerFactory;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.36"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.slf4j.Logger;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.slf4j.LoggerFactory;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import com.fasterxml.jackson.annotation.JsonIgnoreProperties;<a name="line.38"></a>
 <span class="sourceLineNo">039</span><a name="line.39"></a>
@@ -459,7 +459,7 @@
 <span class="sourceLineNo">451</span>    BucketSizeInfo bsi = roundUpToBucketSizeInfo(blockSize);<a name="line.451"></a>
 <span class="sourceLineNo">452</span>    if (bsi == null) {<a name="line.452"></a>
 <span class="sourceLineNo">453</span>      throw new BucketAllocatorException("Allocation too big size=" + blockSize +<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + CacheConfig.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
+<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + BlockCacheFactory.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
 <span class="sourceLineNo">455</span>        " to accomodate if size seems reasonable and you want it cached.");<a name="line.455"></a>
 <span class="sourceLineNo">456</span>    }<a name="line.456"></a>
 <span class="sourceLineNo">457</span>    long offset = bsi.allocateBlock();<a name="line.457"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.IndexStatistics.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.IndexStatistics.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.IndexStatistics.html
index 29f1b92..65b7a57 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.IndexStatistics.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.IndexStatistics.html
@@ -37,11 +37,11 @@
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.concurrent.atomic.LongAdder;<a name="line.30"></a>
 <span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.slf4j.Logger;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.slf4j.LoggerFactory;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.36"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.slf4j.Logger;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.slf4j.LoggerFactory;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import com.fasterxml.jackson.annotation.JsonIgnoreProperties;<a name="line.38"></a>
 <span class="sourceLineNo">039</span><a name="line.39"></a>
@@ -459,7 +459,7 @@
 <span class="sourceLineNo">451</span>    BucketSizeInfo bsi = roundUpToBucketSizeInfo(blockSize);<a name="line.451"></a>
 <span class="sourceLineNo">452</span>    if (bsi == null) {<a name="line.452"></a>
 <span class="sourceLineNo">453</span>      throw new BucketAllocatorException("Allocation too big size=" + blockSize +<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + CacheConfig.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
+<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + BlockCacheFactory.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
 <span class="sourceLineNo">455</span>        " to accomodate if size seems reasonable and you want it cached.");<a name="line.455"></a>
 <span class="sourceLineNo">456</span>    }<a name="line.456"></a>
 <span class="sourceLineNo">457</span>    long offset = bsi.allocateBlock();<a name="line.457"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html
index 29f1b92..65b7a57 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html
@@ -37,11 +37,11 @@
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.concurrent.atomic.LongAdder;<a name="line.30"></a>
 <span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.slf4j.Logger;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.slf4j.LoggerFactory;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.36"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.slf4j.Logger;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.slf4j.LoggerFactory;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.BucketEntry;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import com.fasterxml.jackson.annotation.JsonIgnoreProperties;<a name="line.38"></a>
 <span class="sourceLineNo">039</span><a name="line.39"></a>
@@ -459,7 +459,7 @@
 <span class="sourceLineNo">451</span>    BucketSizeInfo bsi = roundUpToBucketSizeInfo(blockSize);<a name="line.451"></a>
 <span class="sourceLineNo">452</span>    if (bsi == null) {<a name="line.452"></a>
 <span class="sourceLineNo">453</span>      throw new BucketAllocatorException("Allocation too big size=" + blockSize +<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + CacheConfig.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
+<span class="sourceLineNo">454</span>        "; adjust BucketCache sizes " + BlockCacheFactory.BUCKET_CACHE_BUCKETS_KEY +<a name="line.454"></a>
 <span class="sourceLineNo">455</span>        " to accomodate if size seems reasonable and you want it cached.");<a name="line.455"></a>
 <span class="sourceLineNo">456</span>    }<a name="line.456"></a>
 <span class="sourceLineNo">457</span>    long offset = bsi.allocateBlock();<a name="line.457"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
index abfa74b..11f49fa 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
@@ -136,72 +136,75 @@
 <span class="sourceLineNo">128</span>    // '-SPLITTING'. Each splitting server should have a corresponding SCP. Log if not.<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    splittingServersFromWALDir.stream().filter(s -&gt; !deadServersFromPE.contains(s)).<a name="line.129"></a>
 <span class="sourceLineNo">130</span>      forEach(s -&gt; LOG.error("{} has no matching ServerCrashProcedure", s));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    watcher.registerListener(this);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    synchronized (this) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      List&lt;String&gt; servers =<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        ZKUtil.listChildrenAndWatchForNewChildren(watcher, watcher.getZNodePaths().rsZNode);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      for (String n : servers) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        Pair&lt;ServerName, RegionServerInfo&gt; pair = getServerInfo(n);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>        ServerName serverName = pair.getFirst();<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        RegionServerInfo info = pair.getSecond();<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        regionServers.add(serverName);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        ServerMetrics serverMetrics = info != null ? ServerMetricsBuilder.of(serverName,<a name="line.140"></a>
-<span class="sourceLineNo">141</span>          VersionInfoUtil.getVersionNumber(info.getVersionInfo()),<a name="line.141"></a>
-<span class="sourceLineNo">142</span>          info.getVersionInfo().getVersion()) : ServerMetricsBuilder.of(serverName);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        serverManager.checkAndRecordNewServer(serverName, serverMetrics);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      }<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      serverManager.findDeadServersAndProcess(deadServersFromPE, liveServersFromWALDir);<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><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  public void stop() {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    executor.shutdownNow();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  private synchronized void refresh() {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    List&lt;String&gt; names;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    try {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      names = ZKUtil.listChildrenAndWatchForNewChildren(watcher, watcher.getZNodePaths().rsZNode);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    } catch (KeeperException e) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      // here we need to abort as we failed to set watcher on the rs node which means that we can<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      // not track the node deleted evetnt any more.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      server.abort("Unexpected zk exception getting RS nodes", e);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    Set&lt;ServerName&gt; servers =<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      names.stream().map(ServerName::parseServerName).collect(Collectors.toSet());<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    for (Iterator&lt;ServerName&gt; iter = regionServers.iterator(); iter.hasNext();) {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      ServerName sn = iter.next();<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      if (!servers.contains(sn)) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        LOG.info("RegionServer ephemeral node deleted, processing expiration [{}]", sn);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        serverManager.expireServer(sn);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        iter.remove();<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>    // here we do not need to parse the region server info as it is useless now, we only need the<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // server name.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    boolean newServerAdded = false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    for (ServerName sn : servers) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      if (regionServers.add(sn)) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        newServerAdded = true;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        LOG.info("RegionServer ephemeral node created, adding [" + sn + "]");<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (newServerAdded &amp;&amp; server.isInitialized()) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      // Only call the check to move servers if a RegionServer was added to the cluster; in this<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // case it could be a server with a new version so it makes sense to run the check.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      server.checkIfShouldMoveSystemRegionAsync();<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    }<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>  @Override<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  public void nodeChildrenChanged(String path) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    if (path.equals(watcher.getZNodePaths().rsZNode) &amp;&amp; !server.isAborted() &amp;&amp;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      !server.isStopped()) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      executor.execute(this::refresh);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>}<a name="line.196"></a>
+<span class="sourceLineNo">131</span>    //create ServerNode for all possible live servers from wal directory<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    liveServersFromWALDir.stream()<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        .forEach(sn -&gt; server.getAssignmentManager().getRegionStates().getOrCreateServer(sn));<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    watcher.registerListener(this);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    synchronized (this) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      List&lt;String&gt; servers =<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        ZKUtil.listChildrenAndWatchForNewChildren(watcher, watcher.getZNodePaths().rsZNode);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      for (String n : servers) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        Pair&lt;ServerName, RegionServerInfo&gt; pair = getServerInfo(n);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        ServerName serverName = pair.getFirst();<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        RegionServerInfo info = pair.getSecond();<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        regionServers.add(serverName);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        ServerMetrics serverMetrics = info != null ? ServerMetricsBuilder.of(serverName,<a name="line.143"></a>
+<span class="sourceLineNo">144</span>          VersionInfoUtil.getVersionNumber(info.getVersionInfo()),<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          info.getVersionInfo().getVersion()) : ServerMetricsBuilder.of(serverName);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        serverManager.checkAndRecordNewServer(serverName, serverMetrics);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      serverManager.findDeadServersAndProcess(deadServersFromPE, liveServersFromWALDir);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public void stop() {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    executor.shutdownNow();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  private synchronized void refresh() {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    List&lt;String&gt; names;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    try {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      names = ZKUtil.listChildrenAndWatchForNewChildren(watcher, watcher.getZNodePaths().rsZNode);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    } catch (KeeperException e) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      // here we need to abort as we failed to set watcher on the rs node which means that we can<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      // not track the node deleted evetnt any more.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      server.abort("Unexpected zk exception getting RS nodes", e);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    Set&lt;ServerName&gt; servers =<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      names.stream().map(ServerName::parseServerName).collect(Collectors.toSet());<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    for (Iterator&lt;ServerName&gt; iter = regionServers.iterator(); iter.hasNext();) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      ServerName sn = iter.next();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      if (!servers.contains(sn)) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        LOG.info("RegionServer ephemeral node deleted, processing expiration [{}]", sn);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        serverManager.expireServer(sn);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        iter.remove();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // here we do not need to parse the region server info as it is useless now, we only need the<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // server name.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    boolean newServerAdded = false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    for (ServerName sn : servers) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      if (regionServers.add(sn)) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        newServerAdded = true;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        LOG.info("RegionServer ephemeral node created, adding [" + sn + "]");<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    if (newServerAdded &amp;&amp; server.isInitialized()) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      // Only call the check to move servers if a RegionServer was added to the cluster; in this<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      // case it could be a server with a new version so it makes sense to run the check.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      server.checkIfShouldMoveSystemRegionAsync();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  public void nodeChildrenChanged(String path) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    if (path.equals(watcher.getZNodePaths().rsZNode) &amp;&amp; !server.isAborted() &amp;&amp;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      !server.isStopped()) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      executor.execute(this::refresh);<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>}<a name="line.199"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
index 1124f8b..0c29054 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html
@@ -1111,587 +1111,592 @@
 <span class="sourceLineNo">1103</span>          blockStream.write(midKeyMetadata);<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>        blockWriter.writeHeaderAndData(out);<a name="line.1104"></a>
 <span class="sourceLineNo">1105</span>        if (cacheConf != null) {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>          cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>            rootLevelIndexPos, true, blockForCaching.getBlockType()), blockForCaching);<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><a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      // Add root index block size<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      totalBlockUncompressedSize +=<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      if (LOG.isTraceEnabled()) {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>          " on-disk size, "<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>          " total uncompressed size.");<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      return rootLevelIndexPos;<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>    /**<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>     * block framing.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>     *<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>     *          stream writing into an {@link HFile} block.<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>     * @param description a short description of the index being written. Used<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>     *          in a log message.<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>     * @throws IOException<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>     */<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>        throws IOException {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      expectNumLevels(1);<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (!singleLevelOnly)<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>        throw new IOException("Single-level mode is turned off");<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        throw new IOException("Root-level entries already added in " +<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>            "single-level mode");<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span><a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      rootChunk = curInlineChunk;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>      if (LOG.isTraceEnabled()) {<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>          + " bytes");<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      }<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      rootChunk.writeRoot(out);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    /**<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>     * Split the current level of the block index into intermediate index<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>     *<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>     * @param out<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>     *          chunk referencing all leaf-level index blocks<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>     * @return the parent level block index, which becomes the root index after<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>     *         a few (usually zero) iterations<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>     * @throws IOException<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>     */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span><a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      // The current intermediate-level block index chunk.<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span><a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span><a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>          writeIntermediateBlock(out, parent, curChunk);<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>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>      }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      return parent;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>    }<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      long beginOffset = out.getPos();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      curChunk.writeNonRoot(dos);<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      blockWriter.writeHeaderAndData(out);<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      if (getCacheOnWrite()) {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>        HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>          beginOffset, true, blockForCaching.getBlockType()), blockForCaching);<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // Add intermediate index block size<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      totalBlockUncompressedSize +=<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1218"></a>
+<span class="sourceLineNo">1106</span>          cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>            HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>            cache.cacheBlock(new BlockCacheKey(nameForCaching, rootLevelIndexPos, true,<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                blockForCaching.getBlockType()), blockForCaching);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>          });<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      // Add root index block size<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      totalBlockUncompressedSize +=<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>      if (LOG.isTraceEnabled()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          " on-disk size, "<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>          " total uncompressed size.");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      return rootLevelIndexPos;<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    /**<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>     * block framing.<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>     *<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>     *          stream writing into an {@link HFile} block.<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>     * @param description a short description of the index being written. Used<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>     *          in a log message.<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>     * @throws IOException<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>     */<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        throws IOException {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      expectNumLevels(1);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      if (!singleLevelOnly)<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>        throw new IOException("Single-level mode is turned off");<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        throw new IOException("Root-level entries already added in " +<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>            "single-level mode");<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      rootChunk = curInlineChunk;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      if (LOG.isTraceEnabled()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          + " bytes");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>      }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      rootChunk.writeRoot(out);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>     * Split the current level of the block index into intermediate index<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>     *<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>     * @param out<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>     *          chunk referencing all leaf-level index blocks<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>     * @return the parent level block index, which becomes the root index after<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>     *         a few (usually zero) iterations<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>     * @throws IOException<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>     */<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span><a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>      // The current intermediate-level block index chunk.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span><a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>          writeIntermediateBlock(out, parent, curChunk);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span><a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      return parent;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>      long beginOffset = out.getPos();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      curChunk.writeNonRoot(dos);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      blockWriter.writeHeaderAndData(out);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (getCacheOnWrite()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>          cache.cacheBlock(<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>              new BlockCacheKey(nameForCaching, beginOffset, true, blockForCaching.getBlockType()),<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>              blockForCaching);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        });<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>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>      // + the secondary index size<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // entries.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      parent.add(curFirstKey, beginOffset,<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span><a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      // clear current block index chunk<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      curChunk.clear();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      curFirstKey = null;<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    }<a name="line.1231"></a>
+<span class="sourceLineNo">1220</span>      // Add intermediate index block size<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      totalBlockUncompressedSize +=<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span><a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      // + the secondary index size<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      // entries.<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      parent.add(curFirstKey, beginOffset,<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span><a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    /**<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>     * @return how many block index entries there are in the root level<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>     */<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    public final int getNumRootEntries() {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return rootChunk.getNumEntries();<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>     * @return the number of levels in this block index.<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>     */<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>    public int getNumLevels() {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>      return numLevels;<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    }<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span><a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>      if (numLevels != expectedNumLevels) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>            + numLevels + "but is expected to be " + expectedNumLevels);<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>     * Whether there is an inline block ready to be written. In general, we<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>     */<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    @Override<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>      if (singleLevelOnly) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span><a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      if (curInlineChunk == null) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>            "called with closing=true and then called again?");<a name="line.1267"></a>
+<span class="sourceLineNo">1233</span>      // clear current block index chunk<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>      curChunk.clear();<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>      curFirstKey = null;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>    }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span><a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    /**<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>     * @return how many block index entries there are in the root level<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>     */<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>    public final int getNumRootEntries() {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>      return rootChunk.getNumEntries();<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>    }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>    /**<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>     * @return the number of levels in this block index.<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>     */<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    public int getNumLevels() {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return numLevels;<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>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>      if (numLevels != expectedNumLevels) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>            + numLevels + "but is expected to be " + expectedNumLevels);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>      }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    /**<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>     * Whether there is an inline block ready to be written. In general, we<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>     */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>    @Override<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      if (singleLevelOnly) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<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>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        return false;<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      // We do have some entries in the current inline chunk.<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      if (closing) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>          // leaf level with one block, move these entries to the root level.<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          expectNumLevels(1);<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          rootChunk = curInlineChunk;<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          curInlineChunk = null;  // Disallow adding any more index entries.<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>          return false;<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>        return true;<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>      } else {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    /**<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>     * blocks, so the non-root index format is used.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>     *<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>     * @param out<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>     */<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>    @Override<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      if (singleLevelOnly)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span><a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>      // Write the inline block index to the output stream in the non-root<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      // index block format.<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      curInlineChunk.writeNonRoot(out);<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      // parent-level index.<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      // Start a new inline index block<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      curInlineChunk.clear();<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    }<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>     * Called after an inline block has been written so that we can add an<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>     * entry referring to that block to the parent-level index.<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>     */<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    @Override<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>      // Add leaf index block size<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      if (singleLevelOnly)<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span><a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      if (firstKey == null) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>            "but the first key was not set in writeInlineBlock");<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>      if (rootChunk.getNumEntries() == 0) {<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        // We are writing the first leaf block, so increase index level.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        expectNumLevels(1);<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        numLevels = 2;<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>      // Add another entry to the second-level index. Include the number of<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      firstKey = null;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    }<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span><a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    @Override<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    public BlockType getInlineBlockType() {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      return BlockType.LEAF_INDEX;<a name="line.1348"></a>
+<span class="sourceLineNo">1270</span>      if (curInlineChunk == null) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>            "called with closing=true and then called again?");<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>        return false;<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>      // We do have some entries in the current inline chunk.<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      if (closing) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>          // leaf level with one block, move these entries to the root level.<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          expectNumLevels(1);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          rootChunk = curInlineChunk;<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          curInlineChunk = null;  // Disallow adding any more index entries.<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><a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        return true;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    /**<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>     * blocks, so the non-root index format is used.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>     *<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>     * @param out<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>     */<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>    @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      if (singleLevelOnly)<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>      // Write the inline block index to the output stream in the non-root<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      // index block format.<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>      curInlineChunk.writeNonRoot(out);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span><a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>      // parent-level index.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>      // Start a new inline index block<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>      curInlineChunk.clear();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span><a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    /**<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>     * Called after an inline block has been written so that we can add an<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>     * entry referring to that block to the parent-level index.<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>     */<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    @Override<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>      // Add leaf index block size<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>      if (singleLevelOnly)<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>      if (firstKey == null) {<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>            "but the first key was not set in writeInlineBlock");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>      if (rootChunk.getNumEntries() == 0) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>        // We are writing the first leaf block, so increase index level.<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        expectNumLevels(1);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        numLevels = 2;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>      }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>      // Add another entry to the second-level index. Include the number of<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>      firstKey = null;<a name="line.1348"></a>
 <span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
 <span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    /**<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>     *<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>     * @param firstKey the first key of the data block<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>     * @param blockOffset the offset of the data block<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>     *          {@link HFile} format version 1).<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>     */<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      ++totalNumEntries;<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>     * @throws IOException if we happened to write a multi-level index.<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>     */<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    public void ensureSingleLevel() throws IOException {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>      if (numLevels &gt; 1) {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>            "this is expected to be a single-level block index.");<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<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>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>     *         or null.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>     */<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    @Override<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>    public boolean getCacheOnWrite() {<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>    }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>    /**<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>     * index blocks, and leaf-level index blocks.<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>     *<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>     * @return the total uncompressed size of all index blocks<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>     */<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>    public long getTotalUncompressedSize() {<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      return totalBlockUncompressedSize;<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>    }<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span><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>  /**<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>   * block.<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>   */<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  static class BlockIndexChunk {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span><a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    /** Block offset in backing stream. */<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span><a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>    /**<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>     */<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    /**<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>     */<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span><a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    /**<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1430"></a>
+<span class="sourceLineNo">1351</span>    @Override<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    public BlockType getInlineBlockType() {<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      return BlockType.LEAF_INDEX;<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>    /**<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>     *<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>     * @param firstKey the first key of the data block<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>     * @param blockOffset the offset of the data block<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>     *          {@link HFile} format version 1).<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>     */<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>      ++totalNumEntries;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span><a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    /**<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>     * @throws IOException if we happened to write a multi-level index.<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>     */<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>    public void ensureSingleLevel() throws IOException {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>      if (numLevels &gt; 1) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>            "this is expected to be a single-level block index.");<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    /**<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>     *         or null.<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>     */<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>    @Override<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>    public boolean getCacheOnWrite() {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>    }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>    /**<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>     * index blocks, and leaf-level index blocks.<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>     *<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>     * @return the total uncompressed size of all index blocks<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>     */<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    public long getTotalUncompressedSize() {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      return totalBlockUncompressedSize;<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span><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>  /**<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>   * block.<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>   */<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  static class BlockIndexChunk {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>    /** Block offset in backing stream. */<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span><a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    /**<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>     */<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>    /**<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1430"></a>
 <span class="sourceLineNo">1431</span>     */<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>    private int curTotalRootSize = 0;<a name="line.1432"></a>
+<span class="sourceLineNo">1432</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1432"></a>
 <span class="sourceLineNo">1433</span><a name="line.1433"></a>
 <span class="sourceLineNo">1434</span>    /**<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>     * The "secondary index" used for binary search over variable-length<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>     * end of this secondary index.<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>     */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span><a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>    /**<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>     * Adds a new entry to this block index chunk.<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>     *<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>     *          entry<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>     *          entry, including header size<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>     *          construction, this specifies the current total number of<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>     *          corresponding to the second-level entry being added.<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>     */<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        long curTotalNumSubEntries) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      // Record the offset for the secondary index<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>          + firstKey.length;<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span><a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span><a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      blockKeys.add(firstKey);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      blockOffsets.add(blockOffset);<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span><a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>      if (curTotalNumSubEntries != -1) {<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>        // Make sure the parallel arrays are in sync.<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>              "entries out of " + blockKeys.size());<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>        }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      }<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>    }<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span><a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    /**<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    public void clear() {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      blockKeys.clear();<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      blockOffsets.clear();<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>      onDiskDataSizes.clear();<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>      secondaryIndexOffsetMarks.clear();<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>      numSubEntriesAt.clear();<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      curTotalNonRootEntrySize = 0;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      curTotalRootSize = 0;<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    }<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span><a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    /**<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>     * ordering of sub-entries.<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>     *<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>     * &lt;p&gt;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>     * numSubEntriesAt.<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>     *<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>     *         sub-entry<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>     */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    public int getEntryBySubEntry(long k) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      // We define mid-key as the key corresponding to k'th sub-entry<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      // (0-based).<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      int i = Collections.binarySearch(numSubEntriesAt, k);<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span><a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      // Exact match: cumulativeWeight[i] = k. This means chunks #0 through<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>      // #i contain exactly k sub-entries, and the sub-entry #k (0-based)<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // is in the (i + 1)'th chunk.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (i &gt;= 0)<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        return i + 1;<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span><a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Inexact match. Return the insertion point.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      return -i - 1;<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>    /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>     * Used when writing the root block index of a multi-level block index.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>     * Serializes additional information allowing to efficiently identify the<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>     * mid-key.<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>     *<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>     * @return a few serialized fields for finding the mid-key<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>     * @throws IOException if could not create metadata for computing mid-key<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>     */<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    public byte[] getMidKeyMetadata() throws IOException {<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>      ByteArrayOutputStream baos = new ByteArrayOutputStream(<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>          MID_KEY_METADATA_SIZE);<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>      DataOutputStream baosDos = new DataOutputStream(baos);<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      long totalNumSubEntries = numSubEntriesAt.get(blockKeys.size() - 1);<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      if (totalNumSubEntries == 0) {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>        throw new IOException("No leaf-level entries, mid-key unavailable");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      }<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      long midKeySubEntry = (totalNumSubEntries - 1) / 2;<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      int midKeyEntry = getEntryBySubEntry(midKeySubEntry);<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span><a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      baosDos.writeLong(blockOffsets.get(midKeyEntry));<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      baosDos.writeInt(onDiskDataSizes.get(midKeyEntry));<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span><a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      long numSubEntriesBefore = midKeyEntry &gt; 0<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>          ? numSubEntriesAt.get(midKeyEntry - 1) : 0;<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      long subEntryWithinEntry = midKeySubEntry - numSubEntriesBefore;<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      if (subEntryWithinEntry &lt; 0 || subEntryWithinEntry &gt; Integer.MAX_VALUE)<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>        throw new IOException("Could not identify mid-key index within the "<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>            + "leaf-level block containing mid-key: out of range ("<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>            + subEntryWithinEntry + ", numSubEntriesBefore="<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>            + numSubEntriesBefore + ", midKeySubEntry=" + midKeySubEntry<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>            + ")");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      }<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span><a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      baosDos.writeInt((int) subEntryWithinEntry);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span><a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      if (baosDos.size() != MID_KEY_METADATA_SIZE) {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>        throw new IOException("Could not write mid-key metadata: size=" +<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>            baosDos.size() + ", correct size: " + MID_KEY_METADATA_SIZE);<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
+<span class="sourceLineNo">1435</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>     */<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>    private int curTotalRootSize = 0;<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span><a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>    /**<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>     * The "secondary index" used for binary search over variable-length<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>     * end of this secondary index.<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>     */<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    /**<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>     * Adds a new entry to this block index chunk.<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>     *<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>     *          entry<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>     *          entry, including header size<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>     *          construction, this specifies the current total number of<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>     *          corresponding to the second-level entry being added.<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>     */<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        long curTotalNumSubEntries) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>      // Record the offset for the secondary index<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>          + firstKey.length;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span><a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      blockKeys.add(firstKey);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>      blockOffsets.add(blockOffset);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      if (curTotalNumSubEntries != -1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        // Make sure the parallel arrays are in sync.<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>              "entries out of " + blockKeys.size());<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>        }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>    }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    /**<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>     * key/value into account. Used for single-level indexes.<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>     *<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>     * @see #add(byte[], long, int, long)<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>     */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span><a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    public void clear() {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      blockKeys.clear();<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>      blockOffsets.clear();<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      onDiskDataSizes.clear();<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      secondaryIndexOffsetMarks.clear();<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>      numSubEntriesAt.clear();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>      curTotalNonRootEntrySize = 0;<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>      curTotalRootSize = 0;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    }<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>    /**<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>     * ordering of sub-entries.<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>     *<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>     * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>     * numSubEntriesAt.<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>     *<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>     *     

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index cd14215..07384a0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.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":9,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":9,"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,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109
 ":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":9,"i131":10,"i132":9,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":9,"i152":10,"i153":9,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":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":9,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":9,"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,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109
 ":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":9,"i132":10,"i133":9,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":9,"i153":10,"i154":9,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Tools")
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.229">HRegionServer</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.230">HRegionServer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/LastSequenceId.html" title="interface in org.apache.hadoop.hbase.regionserver">LastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
 <div class="block">HRegionServer makes a set of HRegions available to clients. It checks in with
@@ -205,8 +205,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abortRequested">abortRequested</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#blockCache">blockCache</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a></code></td>
@@ -359,8 +359,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#metricsTable">metricsTable</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#mobCacheConfig">mobCacheConfig</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected <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/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionInfo</a>&gt;</code></td>
@@ -867,8 +867,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
                 <a href="../../../../../org/apache/hadoop/hbase/procedure2/RSProcedureCallable.html" title="interface in org.apache.hadoop.hbase.procedure2">RSProcedureCallable</a>&nbsp;callable)</code>&nbsp;</td>
 </tr>
 <tr id="i40" class="altColor">
-<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig--">getCacheConfig</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getBlockCache--">getBlockCache</a></span>()</code>
+<div class="block">May be null if this is a master which not carry table.</div>
+</td>
 </tr>
 <tr id="i41" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a></code></td>
@@ -993,292 +995,298 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i69" class="rowColor">
+<td class="colFirst"><code><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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMobFileCache--">getMobFileCache</a></span>()</code>
+<div class="block">May be null if this is a master which not carry table.</div>
+</td>
+</tr>
+<tr id="i70" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a></span>()</code>
 <div class="block">Get the top N most loaded regions this server is serving so we can tell the
  master which regions it can reallocate if we're overloaded.</div>
 </td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMovedRegion-java.lang.String-">getMovedRegion</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;encodedRegionName)</code>&nbsp;</td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i72" 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/regionserver/HRegionServer.html#getMyEphemeralNodePath--">getMyEphemeralNodePath</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a></span>()</code>
 <div class="block">Only required for "old" log replay; if it's removed, remove this.</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a></span>(byte[]&nbsp;regionName)</code>&nbsp;</td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i76" 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/regionserver/HRegionServer.html#getOnlineRegionsAsPrintableString--">getOnlineRegionsAsPrintableString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i77" 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/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a></span>()</code>
 <div class="block">For tests, web ui and metrics.</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i78" 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="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTables</a></span>()</code>
 <div class="block">Gets the online tables in this RS.</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i79" class="rowColor">
 <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/regionserver/HRegionServer.html#getProcessName--">getProcessName</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a></span>(byte[]&nbsp;regionName)</code>
 <div class="block">Protected Utility method for safely obtaining an HRegion handle.</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</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;encodedRegionName)</code>
 <div class="block">Return <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>Region</code></a> instance.</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code><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>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</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;encodedRegionName)</code>&nbsp;</td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a></span>(byte[]&nbsp;regionName,
                       <a href="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;encodedRegionName)</code>&nbsp;</td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</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;encodedRegionName)</code>&nbsp;</td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i85" 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/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a></span>()</code>
 <div class="block">Get all online regions in this RS.</div>
 </td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i86" class="altColor">
 <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/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Gets the online regions of the specified table.</div>
 </td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerCoprocessorHost</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i89" 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/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code><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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a></span>()</code>
 <div class="block">Get the regions that are currently being opened or closed in the RS</div>
 </td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>protected org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a></span>()</code>
 <div class="block">Returns a reference to the region server's RPC server</div>
 </td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getServerName--">getServerName</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getTableDescriptors--">getTableDescriptors</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a></span>()</code>
 <div class="block">Interval at which threads should run</div>
 </td>
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" 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/regionserver/HRegionServer.html#getUseThisHostnameInstead-org.apache.hadoop.conf.Configuration-">getUseThisHostnameInstead</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.fs.FileSystem</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code><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/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
 <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/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock.WriteLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWriteLock--">getWriteLock</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i111" class="rowColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWriteRequestCount--">getWriteRequestCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getZooKeeper--">getZooKeeper</a></span>()</code>
 <div class="block">Gets the ZooKeeper instance for this server.</div>
 </td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;c)</code>&nbsp;</td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeFileSystem--">initializeFileSystem</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeThreads--">initializeThreads</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeZooKeeper--">initializeZooKeeper</a></span>()</code>
 <div class="block">Bring up connection to zk ensemble and then wait until a master for this cluster and then after
  that, wait until cluster 'up' flag has been set.</div>
 </td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a></span>()</code>
 <div class="block">Check if the server or client was aborted.</div>
 </td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i121" class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isHealthCheckerConfigured--">isHealthCheckerConfigured</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isHealthy--">isHealthy</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a></span>()</code>
 <div class="block">Report the status of the server.</div>
 </td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnlineRegionsEmpty--">isOnlineRegionsEmpty</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i125" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i126" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#keepLooping--">keepLooping</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i128" class="altColor">
+<tr id="i129" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i129" class="rowColor">
+<tr id="i130" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#login-org.apache.hadoop.hbase.security.UserProvider-java.lang.String-">login</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;user,
      <a href="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;host)</code>&nbsp;</td>
 </tr>
-<tr id="i130" class="altColor">
+<tr id="i131" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#main-java.lang.String:A-">main</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;args)</code>&nbsp;</td>
 </tr>
-<tr id="i131" class="rowColor">
+<tr id="i132" class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i132" class="altColor">
+<tr id="i133" class="rowColor">
 <td class="colFirst"><code>private static &lt;T extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationService</a>&gt;<br>T</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#newReplicationInstance-java.lang.String-java.lang.Class-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.HRegionServer-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.wal.WALProvider-">newReplicationInstance</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;classname,
                       <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;xface,
@@ -1289,33 +1297,33 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
                       org.apache.hadoop.fs.Path&nbsp;oldLogDir,
                       <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider</a>&nbsp;walProvider)</code>&nbsp;</td>
 </tr>
-<tr id="i133" class="rowColor">
+<tr id="i134" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></span>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</code>
 <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>
 </td>
 </tr>
-<tr id="i134" class="altColor">
+<tr id="i135" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)</code>
 <div class="block">Tasks to perform after region open to complete deploy of region on regionserver</div>
 </td>
 </tr>
-<tr id="i135" class="rowColor">
+<tr id="i136" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#preRegistrationInitialization--">preRegistrationInitialization</a></span>()</code>
 <div class="block">All initialization needed before we go register with Master.<br>
  Do bare minimum.</div>
 </td>
 </tr>
-<tr id="i136" class="altColor">
+<tr id="i137" class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#putUpWebUI--">putUpWebUI</a></span>()</code>
 <div class="block">Puts up the webui.</div>
 </td>
 </tr>
-<tr id="i137" class="rowColor">
+<tr id="i138" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/locking/EntityLock.html" title="class in org.apache.hadoop.hbase.client.locking">EntityLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</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="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
           <a href="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;description,
@@ -1323,34 +1331,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <div class="block">Master based locks on namespaces/tables/regions.</div>
 </td>
 </tr>
-<tr id="i138" class="altColor">
+<tr id="i139" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#registerConfigurationObservers--">registerConfigurationObservers</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i139" class="rowColor">
+<tr id="i140" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#registerService-com.google.protobuf.Service-">registerService</a></span>(com.google.protobuf.Service&nbsp;instance)</code>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
 </td>
 </tr>
-<tr id="i140" class="altColor">
+<tr id="i141" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a></span>(long&nbsp;procId,
                        <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;error)</code>&nbsp;</td>
 </tr>
-<tr id="i141" class="rowColor">
+<tr id="i142" 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/HRegionServer.html#removeFromMovedRegions-java.lang.String-">removeFromMovedRegions</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;encodedName)</code>&nbsp;</td>
 </tr>
-<tr id="i142" class="altColor">
+<tr id="i143" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
             <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destination)</code>
 <div class="block">Removes the given Region from the list of onlineRegions.</div>
 </td>
 </tr>
-<tr id="i143" class="rowColor">
+<tr id="i144" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                            <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="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</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="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;&gt;&nbsp;archivedFiles)</code>
@@ -1358,90 +1366,90 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
  just moved to the archive directory.</div>
 </td>
 </tr>
-<tr id="i144" class="altColor">
+<tr id="i145" class="rowColor">
 <td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportForDuty--">reportForDuty</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i145" class="rowColor">
+<tr id="i146" 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/HRegionServer.html#reportProcedureDone-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneRequest-">reportProcedureDone</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneRequest&nbsp;request)</code>&nbsp;</td>
 </tr>
-<tr id="i146" class="altColor">
+<tr id="i147" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;regionSizeStore)</code>
 <div class="block">Reports the given map of Regions and their size on the filesystem to the active Master.</div>
 </td>
 </tr>
-<tr id="i147" class="rowColor">
+<tr id="i148" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</code>
 <div class="block">Notify master that a handler requests to change a region state</div>
 </td>
 </tr>
-<tr id="i148" class="altColor">
+<tr id="i149" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#run--">run</a></span>()</code>
 <div class="block">The HRegionServer sticks in this loop until closed.</div>
 </td>
 </tr>
-<tr id="i149" class="rowColor">
+<tr id="i150" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a></span>()</code>
 <div class="block">Called on stop/abort before closing the cluster connection and meta locator.</div>
 </td>
 </tr>
-<tr id="i150" class="altColor">
+<tr id="i151" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a></span>()</code>
 <div class="block">Setup our cluster connection if not already initialized.</div>
 </td>
 </tr>
-<tr id="i151" class="rowColor">
+<tr id="i152" class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.html" title="class in org.apache.hadoop.hbase.util">NettyEventLoopGroupConfig</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupNetty-org.apache.hadoop.conf.Configuration-">setupNetty</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
-<tr id="i152" class="altColor">
+<tr id="i153" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupWALAndReplication--">setupWALAndReplication</a></span>()</code>
 <div class="block">Setup WAL log and replication if enabled.</div>
 </td>
 </tr>
-<tr id="i153" class="rowColor">
+<tr id="i154" class="altColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupWindows-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.conf.ConfigurationManager-">setupWindows</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
             <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;cm)</code>
 <div class="block">If running on Windows, do windows-specific setup.</div>
 </td>
 </tr>
-<tr id="i154" class="altColor">
+<tr id="i155" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#shutdownWAL-boolean-">shutdownWAL</a></span>(boolean&nbsp;close)</code>&nbsp;</td>
 </tr>
-<tr id="i155" class="rowColor">
+<tr id="i156" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleep-long-">sleep</a></span>(long&nbsp;millis)</code>&nbsp;</td>
 </tr>
-<tr id="i156" class="altColor">
+<tr id="i157" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startHeapMemoryManager--">startHeapMemoryManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i157" class="rowColor">
+<tr id="i158" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startReplicationService--">startReplicationService</a></span>()</code>
 <div class="block">Start up replication source and sink handlers.</div>
 </td>
 </tr>
-<tr id="i158" class="altColor">
+<tr id="i159" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startServices--">startServices</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i159" class="rowColor">
+<tr id="i160" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-">stop</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>
 <div class="block">Stop this service.</div>
 </td>
 </tr>
-<tr id="i160" class="altColor">
+<tr id="i161" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</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,
     boolean&nbsp;force,
@@ -1449,63 +1457,63 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <div class="block">Stops the regionserver.</div>
 </td>
 </tr>
-<tr id="i161" class="rowColor">
+<tr id="i162" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stopServiceThreads--">stopServiceThreads</a></span>()</code>
 <div class="block">Wait on all threads to finish.</div>
 </td>
 </tr>
-<tr id="i162" class="altColor">
+<tr id="i163" 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/HRegionServer.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i163" class="rowColor">
+<tr id="i164" 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/HRegionServer.html#triggerFlushInPrimaryRegion-org.apache.hadoop.hbase.regionserver.HRegion-">triggerFlushInPrimaryRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</code>
 <div class="block">Trigger a flush in the primary region replica if this region is a secondary replica.</div>
 </td>
 </tr>
-<tr id="i164" class="altColor">
+<tr id="i165" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a></span>(long&nbsp;reportStartTime,
                      long&nbsp;reportEndTime)</code>&nbsp;</td>
 </tr>
-<tr id="i165" class="rowColor">
+<tr id="i166" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a></span>(byte[]&nbsp;regionName)</code>
 <div class="block">Unassign the given region from the current regionserver and assign it randomly.</div>
 </td>
 </tr>
-<tr id="i166" class="altColor">
+<tr id="i167" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a></span>()</code>
 <div class="block">Reload the configuration from disk.</div>
 </td>
 </tr>
-<tr id="i167" class="rowColor">
+<tr id="i168" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</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;encodedRegionName,
                                <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.hbase.shaded.protobuf.generated.HBaseProtos.ServerName&gt;&nbsp;favoredNodes)</code>
 <div class="block">Used to update the favored nodes mapping when required.</div>
 </td>
 </tr>
-<tr id="i168" class="altColor">
+<tr id="i169" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForMasterActive--">waitForMasterActive</a></span>()</code>
 <div class="block">Wait for an active Master.</div>
 </td>
 </tr>
-<tr id="i169" class="rowColor">
+<tr id="i170" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i170" class="altColor">
+<tr id="i171" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitOnAllRegionsToClose-boolean-">waitOnAllRegionsToClose</a></span>(boolean&nbsp;abort)</code>
 <div class="block">Wait on regions close.</div>
 </td>
 </tr>
-<tr id="i171" class="rowColor">
+<tr id="i172" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></span>()</code>
 <div class="block">For testing</div>
@@ -1546,7 +1554,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>INIT_PAUSE_TIME_MS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.232">INIT_PAUSE_TIME_MS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.233">INIT_PAUSE_TIME_MS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.INIT_PAUSE_TIME_MS">Constant Field Values</a></dd>
@@ -1559,7 +1567,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <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/HRegionServer.html#line.234">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.235">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_SKIP_REPORTING_TRANSITION">
@@ -1568,7 +1576,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_SKIP_REPORTING_TRANSITION</h4>
-<pre>public static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.241">TEST_SKIP_REPORTING_TRANSITION</a></pre>
+<pre>public static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.242">TEST_SKIP_REPORTING_TRANSITION</a></pre>
 <div class="block">For testing only!  Set to true to skip notifying region assignment to master .</div>
 </li>
 </ul>
@@ -1578,7 +1586,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionsInTransitionInRS</h4>
-<pre>protected final&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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.246">regionsInTransitionInRS</a></pre>
+<pre>protected final&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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.247">regionsInTransitionInRS</a></pre>
 </li>
 </ul>
 <a name="cacheFlusher">
@@ -1587,7 +1595,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlusher</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.250">cacheFlusher</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.251">cacheFlusher</a></pre>
 </li>
 </ul>
 <a name="hMemManager">
@@ -1596,7 +1604,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>hMemManager</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.252">hMemManager</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.253">hMemManager</a></pre>
 </li>
 </ul>
 <a name="clusterConnection">
@@ -1605,7 +1613,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterConnection</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.262">clusterConnection</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.263">clusterConnection</a></pre>
 <div class="block">Cluster connection to be shared by services.
  Initialized at server startup and closed when server shuts down.
  Clients must never close it explicitly.
@@ -1620,7 +1628,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>tableDescriptors</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.267">tableDescriptors</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.268">tableDescriptors</a></pre>
 <div class="block">Go here to get table descriptors.</div>
 </li>
 </ul>
@@ -1630,7 +1638,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationSourceHandler</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.270">replicationSourceHandler</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.271">replicationSourceHandler</a></pre>
 </li>
 </ul>
 <a name="replicationSinkHandler">
@@ -1639,7 +1647,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationSinkHandler</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.271">replicationSinkHandler</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.272">replicationSinkHandler</a></pre>
 </li>
 </ul>
 <a name="compactSplitThread">
@@ -1648,7 +1656,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>compactSplitThread</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplit.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplit</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.274">compactSplitThread</a></pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplit.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplit</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.275">compactSplitThread</a></pre>
 </li>
 </ul>
 <a name="onlineRegions">
@@ -1657,7 +1665,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>onlineRegions</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;<a href="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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.280">onlineRegions</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;<a href="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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.281">onlineRegions</a></pre>
 <div class="block">Map of regions currently being served by this region server. Key is the
  encoded region name.  All access should be synchronized.</div>
 </li>
@@ -1668,7 +1676,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionFavoredNodesMap</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;<a href="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="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.291">regionFavoredNodesMap</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;<a href="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="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.292">regionFavoredNodesMap</a></pre>
 <div class="block">Map of encoded region names to the DataNode locations they should be hosted on
  We store the value as InetSocketAddress since this is used only in HDFS
  API (create() that takes favored nodes as hints for placing file blocks).
@@ -1684,7 +1692,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>leases</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.295">leases</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.296">leases</a></pre>
 </li>
 </ul>
 <a name="executorService">
@@ -1693,7 +1701,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>executorService</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.298">executorService</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.299">executorService</a></pre>
 </li>
 </ul>
 <a name="fsOk">
@@ -1702,7 +1710,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>fsOk</h4>
-<pre>protected volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.301">fsOk</a></pre>
+<pre>protected volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.302">fsOk</a></pre>
 </li>
 </ul>
 <a name="fs">
@@ -1711,7 +1719,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>fs</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.302">fs</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.303">fs</a></pre>
 </li>
 </ul>
 <a name="walFs">
@@ -1720,7 +1728,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>walFs</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.303">walFs</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.304">walFs</a></pre>
 </li>
 </ul>
 <a name="stopped">
@@ -1729,7 +1737,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>stopped</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.308">stopped</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.309">stopped</a></pre>
 </li>
 </ul>
 <a name="abortRequested">
@@ -1738,7 +1746,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>abortRequested</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.312">abortRequested</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.313">abortRequested</a></pre>
 </li>
 </ul>
 <a name="ABORT_TIMEOUT">
@@ -1747,7 +1755,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>ABORT_TIMEOUT</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/regionserver/HRegionServer.html#line.313">ABORT_TIMEOUT</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/regionserver/HRegionServer.html#line.314">ABORT_TIMEOUT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.ABORT_TIMEOUT">Constant Field Values</a></dd>
@@ -1760,7 +1768,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_ABORT_TIMEOUT</h4>
-<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.315">DEFAULT_ABORT_TIMEOUT</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.316">DEFAULT_ABORT_TIMEOUT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.DEFAULT_ABORT_TIMEOUT">Constant Field Values</a></dd>
@@ -1773,7 +1781,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>ABORT_TIMEOUT_TASK</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/regionserver/HRegionServer.html#line.317">ABORT_TIMEOUT_TASK</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/regionserver/HRegionServer.html#line.318">ABORT_TIMEOUT_TASK</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.ABORT_TIMEOUT_TASK">Constant Field Values</a></dd>
@@ -1786,7 +1794,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rowlocks</h4>
-<pre><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/String.html?is-external=true" title="class or interface in java.lang">String</a>,<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; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.319">rowlocks</a></pre>
+<pre><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/String.html?is-external=true" title="class or interface in java.lang">String</a>,<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; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.320">rowlocks</a></pre>
 </li>
 </ul>
 <a name="stopping">
@@ -1795,7 +1803,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>stopping</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.323">stopping</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.324">stopping</a></pre>
 </li>
 </ul>
 <a name="killed">
@@ -1804,7 +1812,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>killed</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.325">killed</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.326">killed</a></pre>
 </li>
 </ul>
 <a name="shutDown">
@@ -1813,7 +1821,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>shutDown</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.327">shutDown</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.328">shutDown</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -1822,7 +1830,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.329">conf</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.330">conf</a></pre>
 </li>
 </ul>
 <a name="rootDir">
@@ -1831,7 +1839,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rootDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.331">rootDir</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.332">rootDir</a></pre>
 </li>
 </ul>
 <a name="walRootDir">
@@ -1840,7 +1848,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>walRootDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.332">walRootDir</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.333">walRootDir</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -1849,7 +1857,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>lock</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.334">lock</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.335">lock</a></pre>
 </li>
 </ul>
 <a name="numRetries">
@@ -1858,7 +1866,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>numRetries</h4>
-<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.336">numRetries</a></pre>
+<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.337">numRetries</a></pre>
 </li>
 </ul>
 <a name="threadWakeFrequency">
@@ -1867,7 +1875,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>threadWakeFrequ

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html
index d9d843f..21793b2 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.38">BlockCacheViewTmpl</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.39">BlockCacheViewTmpl</a>
 extends org.jamon.AbstractTemplateProxy</pre>
 </li>
 </ul>
@@ -209,26 +209,29 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>org.jamon.Renderer</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
             org.apache.hadoop.conf.Configuration&nbsp;conf,
             <a href="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;bcn,
-            <a href="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;bcv)</code>&nbsp;</td>
+            <a href="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;bcv,
+            <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</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/tmpl/regionserver/BlockCacheViewTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
       <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
       org.apache.hadoop.conf.Configuration&nbsp;conf,
       <a href="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;bcn,
-      <a href="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;bcv)</code>&nbsp;</td>
+      <a href="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;bcv,
+      <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</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/tmpl/regionserver/BlockCacheViewTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
              <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
              org.apache.hadoop.conf.Configuration&nbsp;conf,
              <a href="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;bcn,
-             <a href="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;bcv)</code>&nbsp;</td>
+             <a href="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;bcv,
+             <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -265,7 +268,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>BlockCacheViewTmpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.42">BlockCacheViewTmpl</a>(org.jamon.TemplateManager&nbsp;p_manager)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.43">BlockCacheViewTmpl</a>(org.jamon.TemplateManager&nbsp;p_manager)</pre>
 </li>
 </ul>
 <a name="BlockCacheViewTmpl-java.lang.String-">
@@ -274,7 +277,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>BlockCacheViewTmpl</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.47">BlockCacheViewTmpl</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;p_path)</pre>
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.48">BlockCacheViewTmpl</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;p_path)</pre>
 </li>
 </ul>
 <a name="BlockCacheViewTmpl--">
@@ -283,7 +286,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BlockCacheViewTmpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.52">BlockCacheViewTmpl</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.53">BlockCacheViewTmpl</a>()</pre>
 </li>
 </ul>
 </li>
@@ -300,7 +303,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>makeImplData</h4>
-<pre>protected&nbsp;org.jamon.AbstractTemplateProxy.ImplData&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.113">makeImplData</a>()</pre>
+<pre>protected&nbsp;org.jamon.AbstractTemplateProxy.ImplData&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.125">makeImplData</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>makeImplData</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -313,7 +316,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getImplData</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.117">getImplData</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.129">getImplData</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>getImplData</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -326,7 +329,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>constructImpl</h4>
-<pre>public&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.124">constructImpl</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;? extends org.jamon.AbstractTemplateImpl&gt;&nbsp;p_class)</pre>
+<pre>public&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.136">constructImpl</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;? extends org.jamon.AbstractTemplateImpl&gt;&nbsp;p_class)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>constructImpl</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -339,36 +342,38 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>constructImpl</h4>
-<pre>protected&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.142">constructImpl</a>()</pre>
+<pre>protected&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.154">constructImpl</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>constructImpl</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
 </dl>
 </li>
 </ul>
-<a name="makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">
+<a name="makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>makeRenderer</h4>
-<pre>public&nbsp;org.jamon.Renderer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.145">makeRenderer</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+<pre>public&nbsp;org.jamon.Renderer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.157">makeRenderer</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
                                        org.apache.hadoop.conf.Configuration&nbsp;conf,
                                        <a href="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;bcn,
-                                       <a href="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;bcv)</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;bcv,
+                                       <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</pre>
 </li>
 </ul>
-<a name="render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">
+<a name="render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>render</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.157">render</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.169">render</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                    <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
                    org.apache.hadoop.conf.Configuration&nbsp;conf,
                    <a href="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;bcn,
-                   <a href="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;bcv)
+                   <a href="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;bcv,
+                   <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)
             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>
@@ -376,17 +381,18 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-">
+<a name="renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.163">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.175">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
                           org.apache.hadoop.conf.Configuration&nbsp;conf,
                           <a href="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;bcn,
-                          <a href="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;bcv)
+                          <a href="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;bcv,
+                          <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)
                    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/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html
index a4b6e94..ca6b181 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html
@@ -148,10 +148,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#bcv">bcv</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#blockCache">blockCache</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#cacheConfig">cacheConfig</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#conf">conf</a></span></code>&nbsp;</td>
 </tr>
@@ -260,12 +264,21 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <a name="bcv">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>bcv</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/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.39">bcv</a></pre>
 </li>
 </ul>
+<a name="blockCache">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>blockCache</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.40">blockCache</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -280,7 +293,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BlockCacheViewTmplImpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.44">BlockCacheViewTmplImpl</a>(org.jamon.TemplateManager&nbsp;p_templateManager,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.45">BlockCacheViewTmplImpl</a>(org.jamon.TemplateManager&nbsp;p_templateManager,
                               <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a>&nbsp;p_implData)</pre>
 </li>
 </ul>
@@ -298,7 +311,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_setOptionalArguments</h4>
-<pre>protected static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.40">__jamon_setOptionalArguments</a>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a>&nbsp;p_implData)</pre>
+<pre>protected static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.41">__jamon_setOptionalArguments</a>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheViewTmpl.ImplData</a>&nbsp;p_implData)</pre>
 </li>
 </ul>
 <a name="renderNoFlush-java.io.Writer-">
@@ -307,7 +320,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.53">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.55">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
                    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>
@@ -323,7 +336,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>__jamon_innerUnit__bc_by_file</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.108">__jamon_innerUnit__bc_by_file</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmplImpl.html#line.110">__jamon_innerUnit__bc_by_file</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                                            <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheUtil.CachedBlocksByFile</a>&nbsp;cbsbf)
                                     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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index f8a2778..d876796 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.58">RSStatusTmpl.ImplData</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.60">RSStatusTmpl.ImplData</a>
 extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 </li>
 </ul>
@@ -290,7 +290,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_regionServer</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.71">m_regionServer</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.73">m_regionServer</a></pre>
 </li>
 </ul>
 <a name="m_bcn">
@@ -299,7 +299,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_bcn</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.83">m_bcn</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.85">m_bcn</a></pre>
 </li>
 </ul>
 <a name="m_bcn__IsNotDefault">
@@ -308,7 +308,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_bcn__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.88">m_bcn__IsNotDefault</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">m_bcn__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_bcv">
@@ -317,7 +317,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_bcv</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.100">m_bcv</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.102">m_bcv</a></pre>
 </li>
 </ul>
 <a name="m_bcv__IsNotDefault">
@@ -326,7 +326,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_bcv__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_bcv__IsNotDefault</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">m_bcv__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_filter">
@@ -335,7 +335,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_filter</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_filter</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.119">m_filter</a></pre>
 </li>
 </ul>
 <a name="m_filter__IsNotDefault">
@@ -344,7 +344,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_filter__IsNotDefault</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_format">
@@ -353,7 +353,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_format</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.134">m_format</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.136">m_format</a></pre>
 </li>
 </ul>
 <a name="m_format__IsNotDefault">
@@ -362,7 +362,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.139">m_format__IsNotDefault</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.141">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -379,7 +379,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ImplData</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.58">ImplData</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.60">ImplData</a>()</pre>
 </li>
 </ul>
 </li>
@@ -396,7 +396,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.62">setRegionServer</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;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.64">setRegionServer</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>
 <a name="getRegionServer--">
@@ -405,7 +405,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServer</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.67">getRegionServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.69">getRegionServer</a>()</pre>
 </li>
 </ul>
 <a name="setBcn-java.lang.String-">
@@ -414,7 +414,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setBcn</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.73">setBcn</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;bcn)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.75">setBcn</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;bcn)</pre>
 </li>
 </ul>
 <a name="getBcn--">
@@ -423,7 +423,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getBcn</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.79">getBcn</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.81">getBcn</a>()</pre>
 </li>
 </ul>
 <a name="getBcn__IsNotDefault--">
@@ -432,7 +432,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getBcn__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.84">getBcn__IsNotDefault</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.86">getBcn__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setBcv-java.lang.String-">
@@ -441,7 +441,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setBcv</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">setBcv</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;bcv)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.92">setBcv</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;bcv)</pre>
 </li>
 </ul>
 <a name="getBcv--">
@@ -450,7 +450,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getBcv</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.96">getBcv</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.98">getBcv</a>()</pre>
 </li>
 </ul>
 <a name="getBcv__IsNotDefault--">
@@ -459,7 +459,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getBcv__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getBcv__IsNotDefault</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.103">getBcv__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setFilter-java.lang.String-">
@@ -468,7 +468,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setFilter</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;filter)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.109">setFilter</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;filter)</pre>
 </li>
 </ul>
 <a name="getFilter--">
@@ -477,7 +477,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilter</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getFilter</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.115">getFilter</a>()</pre>
 </li>
 </ul>
 <a name="getFilter__IsNotDefault--">
@@ -486,7 +486,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getFilter__IsNotDefault</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.120">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setFormat-java.lang.String-">
@@ -495,7 +495,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">setFormat</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;format)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.126">setFormat</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;format)</pre>
 </li>
 </ul>
 <a name="getFormat--">
@@ -504,7 +504,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getFormat</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.130">getFormat</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/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.132">getFormat</a>()</pre>
 </li>
 </ul>
 <a name="getFormat__IsNotDefault--">
@@ -513,7 +513,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.135">getFormat__IsNotDefault</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.137">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
index 1b9d9d5..c23991e 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.51">RSStatusTmpl.Intf</a>
+<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.53">RSStatusTmpl.Intf</a>
 extends org.jamon.AbstractTemplateProxy.Intf</pre>
 </li>
 </ul>
@@ -158,7 +158,7 @@ extends org.jamon.AbstractTemplateProxy.Intf</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html#line.55">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html#line.57">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
             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/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index 7c04571..da548e7 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.32">RSStatusTmpl</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.34">RSStatusTmpl</a>
 extends org.jamon.AbstractTemplateProxy</pre>
 </li>
 </ul>
@@ -303,7 +303,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>bcn</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">bcn</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.153">bcn</a></pre>
 </li>
 </ul>
 <a name="bcv">
@@ -312,7 +312,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>bcv</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">bcv</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.160">bcv</a></pre>
 </li>
 </ul>
 <a name="filter">
@@ -321,7 +321,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>filter</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">filter</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.167">filter</a></pre>
 </li>
 </ul>
 <a name="format">
@@ -330,7 +330,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>format</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">format</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.174">format</a></pre>
 </li>
 </ul>
 </li>
@@ -347,7 +347,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>RSStatusTmpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.36">RSStatusTmpl</a>(org.jamon.TemplateManager&nbsp;p_manager)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.38">RSStatusTmpl</a>(org.jamon.TemplateManager&nbsp;p_manager)</pre>
 </li>
 </ul>
 <a name="RSStatusTmpl-java.lang.String-">
@@ -356,7 +356,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>RSStatusTmpl</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.41">RSStatusTmpl</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;p_path)</pre>
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.43">RSStatusTmpl</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;p_path)</pre>
 </li>
 </ul>
 <a name="RSStatusTmpl--">
@@ -365,7 +365,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSStatusTmpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.46">RSStatusTmpl</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.48">RSStatusTmpl</a>()</pre>
 </li>
 </ul>
 </li>
@@ -382,7 +382,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>makeImplData</h4>
-<pre>protected&nbsp;org.jamon.AbstractTemplateProxy.ImplData&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.142">makeImplData</a>()</pre>
+<pre>protected&nbsp;org.jamon.AbstractTemplateProxy.ImplData&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.144">makeImplData</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>makeImplData</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -395,7 +395,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getImplData</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.146">getImplData</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.148">getImplData</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>getImplData</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -408,7 +408,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setBcn</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setBcn</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;p_bcn)</pre>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.154">setBcn</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;p_bcn)</pre>
 </li>
 </ul>
 <a name="setBcv-java.lang.String-">
@@ -417,7 +417,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setBcv</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setBcv</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;p_bcv)</pre>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.161">setBcv</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;p_bcv)</pre>
 </li>
 </ul>
 <a name="setFilter-java.lang.String-">
@@ -426,7 +426,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setFilter</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;p_filter)</pre>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.168">setFilter</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;p_filter)</pre>
 </li>
 </ul>
 <a name="setFormat-java.lang.String-">
@@ -435,7 +435,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setFormat</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;p_format)</pre>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.175">setFormat</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;p_format)</pre>
 </li>
 </ul>
 <a name="constructImpl-java.lang.Class-">
@@ -444,7 +444,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>constructImpl</h4>
-<pre>public&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.181">constructImpl</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;? extends org.jamon.AbstractTemplateImpl&gt;&nbsp;p_class)</pre>
+<pre>public&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.183">constructImpl</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;? extends org.jamon.AbstractTemplateImpl&gt;&nbsp;p_class)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>constructImpl</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -457,7 +457,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>constructImpl</h4>
-<pre>protected&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.199">constructImpl</a>()</pre>
+<pre>protected&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.201">constructImpl</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>constructImpl</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -470,7 +470,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>makeRenderer</h4>
-<pre>public&nbsp;org.jamon.Renderer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.202">makeRenderer</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;org.jamon.Renderer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.204">makeRenderer</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>
 <a name="render-java.io.Writer-org.apache.hadoop.hbase.regionserver.HRegionServer-">
@@ -479,7 +479,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>render</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.214">render</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.216">render</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                    <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer)
             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>
@@ -494,7 +494,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.220">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.222">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                           <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer)
                    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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index ef6cdd4..4d37d2b 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.23">RSStatusTmplImpl</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.25">RSStatusTmplImpl</a>
 extends org.jamon.AbstractTemplateImpl
 implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html" title="interface in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.Intf</a></pre>
 </li>
@@ -235,7 +235,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServer</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.28">regionServer</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">regionServer</a></pre>
 </li>
 </ul>
 <a name="bcn">
@@ -244,7 +244,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>bcn</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/tmpl/regionserver/RSStatusTmplImpl.html#line.29">bcn</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/tmpl/regionserver/RSStatusTmplImpl.html#line.31">bcn</a></pre>
 </li>
 </ul>
 <a name="bcv">
@@ -253,7 +253,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>bcv</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/tmpl/regionserver/RSStatusTmplImpl.html#line.30">bcv</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/tmpl/regionserver/RSStatusTmplImpl.html#line.32">bcv</a></pre>
 </li>
 </ul>
 <a name="filter">
@@ -262,7 +262,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>filter</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/tmpl/regionserver/RSStatusTmplImpl.html#line.31">filter</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/tmpl/regionserver/RSStatusTmplImpl.html#line.33">filter</a></pre>
 </li>
 </ul>
 <a name="format">
@@ -271,7 +271,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>format</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/tmpl/regionserver/RSStatusTmplImpl.html#line.32">format</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/tmpl/regionserver/RSStatusTmplImpl.html#line.34">format</a></pre>
 </li>
 </ul>
 </li>
@@ -288,7 +288,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSStatusTmplImpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.53">RSStatusTmplImpl</a>(org.jamon.TemplateManager&nbsp;p_templateManager,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.55">RSStatusTmplImpl</a>(org.jamon.TemplateManager&nbsp;p_templateManager,
                         <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a>&nbsp;p_implData)</pre>
 </li>
 </ul>
@@ -306,7 +306,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_setOptionalArguments</h4>
-<pre>protected static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.33">__jamon_setOptionalArguments</a>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a>&nbsp;p_implData)</pre>
+<pre>protected static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.35">__jamon_setOptionalArguments</a>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl.ImplData</a>&nbsp;p_implData)</pre>
 </li>
 </ul>
 <a name="renderNoFlush-java.io.Writer-">
@@ -315,7 +315,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.63">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.65">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
                    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/4f8b8424/devapidocs/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html b/devapidocs/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html
index eba8b58..ef173c3 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html
@@ -236,7 +236,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util">IdReadWriteLock.ReferenceType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html#line.29">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util">IdReadWriteLock.ReferenceType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html#line.30">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -256,7 +256,7 @@ for (IdReadWriteLock.ReferenceType c : IdReadWriteLock.ReferenceType.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util">IdReadWriteLock.ReferenceType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html#line.29">valueOf</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;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util">IdReadWriteLock.ReferenceType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html#line.30">valueOf</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;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 eb6e962..46d335d 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -540,14 +540,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.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/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/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>
+<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.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/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/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/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 c6caa9b..bcb1724 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/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>
+<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index f161f85..8674c29 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -770,6 +770,7 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BatchScanResultCache.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">BatchScanResultCache</span></a> (implements org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScanResultCache.html" title="interface in org.apache.hadoop.hbase.client">ScanResultCache</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/BBKVComparator.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">BBKVComparator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.store.<a href="org/apache/hadoop/hbase/procedure2/store/BitSetNode.html" title="class in org.apache.hadoop.hbase.procedure2.store"><span class="typeNameLink">BitSetNode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheKey</span></a> (implements org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a>, 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>)</li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCachesIterator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheUtil</span></a></li>
@@ -933,11 +934,7 @@
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteStringer.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">ByteStringer</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheableDeserializerIdManager</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig</span></a>
-<ul>
-<li type="circle">org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">MobCacheConfig</span></a></li>
-</ul>
-</li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/CachedEntryQueue.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><span class="typeNameLink">CachedEntryQueue</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CacheEvictionStats.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">CacheEvictionStats</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CacheEvictionStatsAggregator.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">CacheEvictionStatsAggregator</span></a></li>
@@ -5343,9 +5340,9 @@
 <li type="circle">org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/Reference.Range.html" title="enum in org.apache.hadoop.hbase.io"><span class="typeNameLink">Reference.Range</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.State.html" title="enum in org.apache.hadoop.hbase.io.asyncfs"><span class="typeNameLink">FanOutOneBlockAsyncDFSOutput.State</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/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/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/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</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/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.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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
index f32b223..6ac9299 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
@@ -25,671 +25,358 @@
 <span class="sourceLineNo">017</span> */<a name="line.17"></a>
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.hfile;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_IOENGINE_KEY;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_SIZE_KEY;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.conf.Configuration;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HConstants;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.slf4j.Logger;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.slf4j.LoggerFactory;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.util.ReflectionUtils;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.util.StringUtils;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>/**<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * Stores all of the cache objects and configuration for a single HFile.<a name="line.41"></a>
-<span class="sourceLineNo">042</span> */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@InterfaceAudience.Private<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CacheConfig {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private static final Logger LOG = LoggerFactory.getLogger(CacheConfig.class.getName());<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  /**<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   * Disabled cache configuration<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public static final CacheConfig DISABLED = new CacheConfig();<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * cached if the block cache is enabled.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static final String CACHE_DATA_ON_READ_KEY = "hbase.block.data.cacheonread";<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   * Configuration key to cache data blocks on write. There are separate<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   * switches for bloom blocks and non-root index blocks.<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public static final String CACHE_BLOCKS_ON_WRITE_KEY =<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      "hbase.rs.cacheblocksonwrite";<a name="line.64"></a>
+<span class="sourceLineNo">020</span>import java.util.Optional;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.conf.Configuration;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.slf4j.Logger;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.slf4j.LoggerFactory;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * Stores all of the cache objects and configuration for a single HFile.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>@InterfaceAudience.Private<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public class CacheConfig {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  private static final Logger LOG = LoggerFactory.getLogger(CacheConfig.class.getName());<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   * Disabled cache configuration<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public static final CacheConfig DISABLED = new CacheConfig();<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  /**<a name="line.43"></a>
+<span class="sourceLineNo">044</span>   * Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * cached if the block cache is enabled.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  public static final String CACHE_DATA_ON_READ_KEY = "hbase.block.data.cacheonread";<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   * Configuration key to cache data blocks on write. There are separate<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * switches for bloom blocks and non-root index blocks.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  public static final String CACHE_BLOCKS_ON_WRITE_KEY = "hbase.rs.cacheblocksonwrite";<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * Configuration key to cache leaf and intermediate-level index blocks on<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * write.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  public static final String CACHE_INDEX_BLOCKS_ON_WRITE_KEY = "hfile.block.index.cacheonwrite";<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   * Configuration key to cache compound bloom filter blocks on write.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  public static final String CACHE_BLOOM_BLOCKS_ON_WRITE_KEY = "hfile.block.bloom.cacheonwrite";<a name="line.64"></a>
 <span class="sourceLineNo">065</span><a name="line.65"></a>
 <span class="sourceLineNo">066</span>  /**<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * Configuration key to cache leaf and intermediate-level index blocks on<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * write.<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  public static final String CACHE_INDEX_BLOCKS_ON_WRITE_KEY =<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      "hfile.block.index.cacheonwrite";<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  /**<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   * Configuration key to cache compound bloom filter blocks on write.<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public static final String CACHE_BLOOM_BLOCKS_ON_WRITE_KEY =<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      "hfile.block.bloom.cacheonwrite";<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  /**<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * Configuration key to cache data blocks in compressed and/or encrypted format.<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  public static final String CACHE_DATA_BLOCKS_COMPRESSED_KEY =<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      "hbase.block.data.cachecompressed";<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * Configuration key to evict all blocks of a given file from the block cache<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * when the file is closed.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static final String EVICT_BLOCKS_ON_CLOSE_KEY =<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      "hbase.rs.evictblocksonclose";<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   * Configuration keys for Bucket cache<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY =<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      "hbase.bucketcache.persistent.path";<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY =<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      "hbase.bucketcache.writer.queuelength";<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * A comma-delimited array of values for use as bucket sizes.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * Defaults for Bucket cache<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span> /**<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * Configuration key to prefetch all blocks of a given file into the block cache<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * when the file is opened.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   */<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  public static final String PREFETCH_BLOCKS_ON_OPEN_KEY =<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      "hbase.rs.prefetchblocksonopen";<a name="line.129"></a>
+<span class="sourceLineNo">067</span>   * Configuration key to cache data blocks in compressed and/or encrypted format.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public static final String CACHE_DATA_BLOCKS_COMPRESSED_KEY = "hbase.block.data.cachecompressed";<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  /**<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * Configuration key to evict all blocks of a given file from the block cache<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * when the file is closed.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  public static final String EVICT_BLOCKS_ON_CLOSE_KEY = "hbase.rs.evictblocksonclose";<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * Configuration key to prefetch all blocks of a given file into the block cache<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   * when the file is opened.<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  public static final String PREFETCH_BLOCKS_ON_OPEN_KEY = "hbase.rs.prefetchblocksonopen";<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public static final String DROP_BEHIND_CACHE_COMPACTION_KEY =<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      "hbase.hfile.drop.behind.compaction";<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  // Defaults<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public static final boolean DEFAULT_CACHE_DATA_ON_READ = true;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public static final boolean DEFAULT_CACHE_DATA_ON_WRITE = false;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  public static final boolean DEFAULT_IN_MEMORY = false;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public static final boolean DEFAULT_CACHE_INDEXES_ON_WRITE = false;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public static final boolean DEFAULT_CACHE_BLOOMS_ON_WRITE = false;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public static final boolean DEFAULT_EVICT_ON_CLOSE = false;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  public static final boolean DEFAULT_CACHE_DATA_COMPRESSED = false;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public static final boolean DEFAULT_PREFETCH_ON_OPEN = false;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static final boolean DROP_BEHIND_CACHE_COMPACTION_DEFAULT = true;<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * Whether blocks should be cached on read (default is on if there is a<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * cache but this can be turned off on a per-family or per-request basis).<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * This cannot be disabled.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private final boolean cacheDataOnRead;<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>  /** Whether blocks should be flagged as in-memory when being cached */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  private final boolean inMemory;<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  /** Whether data blocks should be cached when new files are written */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private boolean cacheDataOnWrite;<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  /** Whether index blocks should be cached when new files are written */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private final boolean cacheIndexesOnWrite;<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  /** Whether compound bloom filter blocks should be cached on write */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private final boolean cacheBloomsOnWrite;<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  /** Whether blocks of a file should be evicted when the file is closed */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  private boolean evictOnClose;<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /** Whether data blocks should be stored in compressed and/or encrypted form in the cache */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private final boolean cacheDataCompressed;<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  /** Whether data blocks should be prefetched into the cache */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  private final boolean prefetchOnOpen;<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  private final boolean dropBehindCompaction;<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  // Local reference to the block cache<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private final BlockCache blockCache;<a name="line.129"></a>
 <span class="sourceLineNo">130</span><a name="line.130"></a>
 <span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   * The target block size used by blockcache instances. Defaults to<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * target block size of BlockCache instances. Rename.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   */<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  private static final String DROP_BEHIND_CACHE_COMPACTION_KEY =<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      "hbase.hfile.drop.behind.compaction";<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private static final boolean DROP_BEHIND_CACHE_COMPACTION_DEFAULT = true;<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>   * Enum of all built in external block caches.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * This is used for config.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private static enum ExternalBlockCaches {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    ExternalBlockCaches(String clazzName) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      try {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      } catch (ClassNotFoundException cnef) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        clazz = null;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      this.clazz = clazz;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Defaults<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  public static final boolean DEFAULT_CACHE_DATA_ON_READ = true;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public static final boolean DEFAULT_CACHE_DATA_ON_WRITE = false;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final boolean DEFAULT_IN_MEMORY = false;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  public static final boolean DEFAULT_CACHE_INDEXES_ON_WRITE = false;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public static final boolean DEFAULT_CACHE_BLOOMS_ON_WRITE = false;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static final boolean DEFAULT_EVICT_ON_CLOSE = false;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  public static final boolean DEFAULT_CACHE_DATA_COMPRESSED = false;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final boolean DEFAULT_PREFETCH_ON_OPEN = false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  /** Local reference to the block cache, null if completely disabled */<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  private final BlockCache blockCache;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * Whether blocks should be cached on read (default is on if there is a<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * cache but this can be turned off on a per-family or per-request basis).<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * This cannot be disabled.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private boolean cacheDataOnRead;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  /** Whether blocks should be flagged as in-memory when being cached */<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private final boolean inMemory;<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /** Whether data blocks should be cached when new files are written */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private boolean cacheDataOnWrite;<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  /** Whether index blocks should be cached when new files are written */<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final boolean cacheIndexesOnWrite;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** Whether compound bloom filter blocks should be cached on write */<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  private final boolean cacheBloomsOnWrite;<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  /** Whether blocks of a file should be evicted when the file is closed */<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private boolean evictOnClose;<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  /** Whether data blocks should be stored in compressed and/or encrypted form in the cache */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  private final boolean cacheDataCompressed;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /** Whether data blocks should be prefetched into the cache */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  private final boolean prefetchOnOpen;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private final boolean dropBehindCompaction;<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>   * Create a cache configuration using the specified configuration object and<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * family descriptor.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   * @param conf hbase configuration<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * @param family column family configuration<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public CacheConfig(Configuration conf, ColumnFamilyDescriptor family) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this(GLOBAL_BLOCK_CACHE_INSTANCE,<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)<a name="line.219"></a>
-<span class="sourceLineNo">220</span>           &amp;&amp; family.isBlockCacheEnabled(),<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        family.isInMemory(),<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        // For the following flags we enable them regardless of per-schema settings<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        // if they are enabled in the global configuration.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY,<a name="line.224"></a>
-<span class="sourceLineNo">225</span>            DEFAULT_CACHE_DATA_ON_WRITE) || family.isCacheDataOnWrite(),<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            DEFAULT_CACHE_INDEXES_ON_WRITE) || family.isCacheIndexesOnWrite(),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            DEFAULT_CACHE_BLOOMS_ON_WRITE) || family.isCacheBloomsOnWrite(),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY,<a name="line.230"></a>
-<span class="sourceLineNo">231</span>            DEFAULT_EVICT_ON_CLOSE) || family.isEvictBlocksOnClose(),<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY,<a name="line.233"></a>
-<span class="sourceLineNo">234</span>            DEFAULT_PREFETCH_ON_OPEN) || family.isPrefetchBlocksOnOpen(),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.235"></a>
-<span class="sourceLineNo">236</span>     );<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    LOG.info("Created cacheConfig for " + family.getNameAsString() + ": " + this);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  /**<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * Create a cache configuration using the specified configuration object and<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * defaults for family level settings. Only use if no column family context. Prefer<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * {@link CacheConfig#CacheConfig(Configuration, ColumnFamilyDescriptor)}<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * @see #CacheConfig(Configuration, ColumnFamilyDescriptor)<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * @param conf hbase configuration<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  public CacheConfig(Configuration conf) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    this(GLOBAL_BLOCK_CACHE_INSTANCE,<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ),<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        DEFAULT_IN_MEMORY, // This is a family-level setting so can't be set<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        // strictly from conf<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_DATA_ON_WRITE),<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_INDEXES_ON_WRITE),<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_BLOOMS_ON_WRITE),<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, DEFAULT_EVICT_ON_CLOSE),<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY, DEFAULT_PREFETCH_ON_OPEN),<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT));<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    LOG.info("Created cacheConfig: " + this);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>  /**<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * Create a block cache configuration with the specified cache and configuration parameters.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * @param blockCache reference to block cache, null if completely disabled<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * @param cacheDataOnRead whether DATA blocks should be cached on read (we always cache INDEX<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   *          blocks and BLOOM blocks; this cannot be disabled).<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * @param inMemory whether blocks should be flagged as in-memory<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * @param cacheDataOnWrite whether data blocks should be cached on write<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * @param cacheIndexesOnWrite whether index blocks should be cached on write<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param cacheBloomsOnWrite whether blooms should be cached on write<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param evictOnClose whether blocks should be evicted when HFile is closed<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param cacheDataCompressed whether to store blocks as compressed in the cache<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * @param prefetchOnOpen whether to prefetch blocks upon open<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param dropBehindCompaction indicate that we should set drop behind to true when open a store<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   *          file reader for compaction<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   */<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @VisibleForTesting<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  CacheConfig(final BlockCache blockCache,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      final boolean dropBehindCompaction) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    this.blockCache = blockCache;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    this.inMemory = inMemory;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.evictOnClose = evictOnClose;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.dropBehindCompaction = dropBehindCompaction;<a name="line.293"></a>
+<span class="sourceLineNo">132</span>   * Create a cache configuration using the specified configuration object and<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * defaults for family level settings. Only use if no column family context.<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * @param conf hbase configuration<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  public CacheConfig(Configuration conf) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    this(conf, null);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public CacheConfig(Configuration conf, BlockCache blockCache) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    this(conf, null, blockCache);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   * Create a cache configuration using the specified configuration object and<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   * family descriptor.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * @param conf hbase configuration<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * @param family column family configuration<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   */<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  public CacheConfig(Configuration conf, ColumnFamilyDescriptor family, BlockCache blockCache) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    this.cacheDataOnRead = conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ) &amp;&amp;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        (family == null ? true : family.isBlockCacheEnabled());<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    this.inMemory = family == null ? DEFAULT_IN_MEMORY : family.isInMemory();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    this.cacheDataCompressed =<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    this.dropBehindCompaction =<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    // For the following flags we enable them regardless of per-schema settings<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // if they are enabled in the global configuration.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    this.cacheDataOnWrite =<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_DATA_ON_WRITE) ||<a name="line.161"></a>
+<span class="sourceLineNo">162</span>            (family == null ? false : family.isCacheDataOnWrite());<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    this.cacheIndexesOnWrite =<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_INDEXES_ON_WRITE) ||<a name="line.164"></a>
+<span class="sourceLineNo">165</span>            (family == null ? false : family.isCacheIndexesOnWrite());<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    this.cacheBloomsOnWrite =<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_BLOOMS_ON_WRITE) ||<a name="line.167"></a>
+<span class="sourceLineNo">168</span>            (family == null ? false : family.isCacheBloomsOnWrite());<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    this.evictOnClose = conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, DEFAULT_EVICT_ON_CLOSE) ||<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        (family == null ? false : family.isEvictBlocksOnClose());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    this.prefetchOnOpen = conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY, DEFAULT_PREFETCH_ON_OPEN) ||<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        (family == null ? false : family.isPrefetchBlocksOnOpen());<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    this.blockCache = blockCache;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    LOG.info("Created cacheConfig: " + this + (family == null ? "" : " for family " + family) +<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        " with blockCache=" + blockCache);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * Constructs a cache configuration copied from the specified configuration.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @param cacheConf<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public CacheConfig(CacheConfig cacheConf) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    this.cacheDataOnRead = cacheConf.cacheDataOnRead;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    this.inMemory = cacheConf.inMemory;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    this.cacheDataOnWrite = cacheConf.cacheDataOnWrite;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    this.cacheIndexesOnWrite = cacheConf.cacheIndexesOnWrite;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    this.cacheBloomsOnWrite = cacheConf.cacheBloomsOnWrite;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    this.evictOnClose = cacheConf.evictOnClose;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    this.cacheDataCompressed = cacheConf.cacheDataCompressed;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    this.prefetchOnOpen = cacheConf.prefetchOnOpen;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    this.dropBehindCompaction = cacheConf.dropBehindCompaction;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    this.blockCache = cacheConf.blockCache;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private CacheConfig() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    this.cacheDataOnRead = false;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    this.inMemory = false;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    this.cacheDataOnWrite = false;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    this.cacheIndexesOnWrite = false;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.cacheBloomsOnWrite = false;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    this.evictOnClose = false;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    this.cacheDataCompressed = false;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    this.prefetchOnOpen = false;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    this.dropBehindCompaction = false;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    this.blockCache = null;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   * cache the meta blocks, the INDEX and BLOOM blocks).<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   * @return true if blocks should be cached on read, false if not<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  public boolean shouldCacheDataOnRead() {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    return cacheDataOnRead;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  public boolean shouldDropBehindCompaction() {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    return dropBehindCompaction;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  }<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>   * Should we cache a block of a particular category? We always cache<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * important blocks such as index blocks, as long as the block cache is<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   * available.<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public boolean shouldCacheBlockOnRead(BlockCategory category) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return cacheDataOnRead || category == BlockCategory.INDEX || category == BlockCategory.BLOOM ||<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        (prefetchOnOpen &amp;&amp; (category != BlockCategory.META &amp;&amp; category != BlockCategory.UNKNOWN));<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  }<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>   * @return true if blocks in this file should be flagged as in-memory<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  public boolean isInMemory() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.inMemory;<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>  /**<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   * @return true if data blocks should be written to the cache when an HFile is<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   *         written, false if not<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  public boolean shouldCacheDataOnWrite() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    return this.cacheDataOnWrite;<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>  /**<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   * @param cacheDataOnWrite whether data blocks should be written to the cache<a name="line.247"></a>
+<span class="sourceLineNo">248</span>   *                         when an HFile is written<a name="line.248"></a>
+<span class="sourceLineNo">249</span>   */<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  @VisibleForTesting<a name="line.250"></a>
+<span class="sourceLineNo">251</span>  public void setCacheDataOnWrite(boolean cacheDataOnWrite) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    this.cacheDataOnWrite = cacheDataOnWrite;<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>  /**<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * @return true if index blocks should be written to the cache when an HFile<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   *         is written, false if not<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   */<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  public boolean shouldCacheIndexesOnWrite() {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    return this.cacheIndexesOnWrite;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  /**<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * @return true if bloom blocks should be written to the cache when an HFile<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   *         is written, false if not<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>  public boolean shouldCacheBloomsOnWrite() {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    return this.cacheBloomsOnWrite;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>  }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>  /**<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * @return true if blocks should be evicted from the cache when an HFile<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   *         reader is closed, false if not<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  public boolean shouldEvictOnClose() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    return this.evictOnClose;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>  /**<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   * Only used for testing.<a name="line.280"></a>
+<span class="sourceLineNo">281</span>   * @param evictOnClose whether blocks should be evicted from the cache when an<a name="line.281"></a>
+<span class="sourceLineNo">282</span>   *                     HFile reader is closed<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   */<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  @VisibleForTesting<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public void setEvictOnClose(boolean evictOnClose) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    this.evictOnClose = evictOnClose;<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>   * @return true if data blocks should be compressed in the cache, false if not<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   */<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public boolean shouldCacheDataCompressed() {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<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>  /**<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * Constructs a cache configuration copied from the specified configuration.<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * @param cacheConf<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  public CacheConfig(CacheConfig cacheConf) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this(cacheConf.blockCache, cacheConf.cacheDataOnRead, cacheConf.inMemory,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        cacheConf.cacheDataOnWrite, cacheConf.cacheIndexesOnWrite,<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        cacheConf.cacheBloomsOnWrite, cacheConf.evictOnClose,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        cacheConf.cacheDataCompressed, cacheConf.prefetchOnOpen,<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        cacheConf.dropBehindCompaction);<a name="line.305"></a>
+<span class="sourceLineNo">297</span>   * @return true if this {@link BlockCategory} should be compressed in blockcache, false otherwise<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public boolean shouldCacheCompressed(BlockCategory category) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    switch (category) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      case DATA:<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      default:<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        return false;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
 <span class="sourceLineNo">306</span>  }<a name="line.306"></a>
 <span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private CacheConfig() {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this(null, false, false, false, false, false, false, false, false, false);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  /**<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   * Checks whether the block cache is enabled.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>   */<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  public boolean isBlockCacheEnabled() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return this.blockCache != null;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  /**<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   * Returns the block cache.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * @return the block cache, or null if caching is completely disabled<a name="line.321"></a>
+<span class="sourceLineNo">308</span>  /**<a name="line.308"></a>
+<span class="sourceLineNo">309</span>   * @return true if blocks should be prefetched into the cache on open, false if not<a name="line.309"></a>
+<span class="sourceLineNo">310</span>   */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  public boolean shouldPrefetchOnOpen() {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    return this.prefetchOnOpen;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>  /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>   * Return true if we may find this type of block in block cache.<a name="line.316"></a>
+<span class="sourceLineNo">317</span>   * &lt;p&gt;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>   * TODO: today {@code family.isBlockCacheEnabled()} only means {@code cacheDataOnRead}, so here we<a name="line.318"></a>
+<span class="sourceLineNo">319</span>   * consider lots of other configurations such as {@code cacheDataOnWrite}. We should fix this in<a name="line.319"></a>
+<span class="sourceLineNo">320</span>   * the future, {@code cacheDataOnWrite} should honor the CF level {@code isBlockCacheEnabled}<a name="line.320"></a>
+<span class="sourceLineNo">321</span>   * configuration.<a name="line.321"></a>
 <span class="sourceLineNo">322</span>   */<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public BlockCache getBlockCache() {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    return this.blockCache;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<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>   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always<a name="line.328"></a>
-<span class="sourceLineNo">329</span>   * cache the meta blocks, the INDEX and BLOOM blocks).<a name="line.329"></a>
-<span class="sourceLineNo">330</span>   * @return true if blocks should be cached on read, false if not<a name="line.330"></a>
-<span class="sourceLineNo">331</span>   */<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  public boolean shouldCacheDataOnRead() {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    return isBlockCacheEnabled() &amp;&amp; cacheDataOnRead;<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>  public boolean shouldDropBehindCompaction() {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return dropBehindCompaction;<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>   * Should we cache a block of a particular category? We always cache<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * important blocks such as index blocks, as long as the block cache is<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * available.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   */<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  public boolean shouldCacheBlockOnRead(BlockCategory category) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    return isBlockCacheEnabled()<a name="line.346"></a>
-<span class="sourceLineNo">347</span>        &amp;&amp; (cacheDataOnRead ||<a name="line.347"></a>
-<span class="sourceLineNo">348</span>            category == BlockCategory.INDEX ||<a name="line.348"></a>
-<span class="sourceLineNo">349</span>            category == BlockCategory.BLOOM ||<a name="line.349"></a>
-<span class="sourceLineNo">350</span>            (prefetchOnOpen &amp;&amp;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>                (category != BlockCategory.META &amp;&amp;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                 category != BlockCategory.UNKNOWN)));<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>  /**<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @return true if blocks in this file should be flagged as in-memory<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   */<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public boolean isInMemory() {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return isBlockCacheEnabled() &amp;&amp; this.inMemory;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  /**<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @return true if data blocks should be written to the cache when an HFile is<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   *         written, false if not<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   */<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  public boolean shouldCacheDataOnWrite() {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnWrite;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /**<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * Only used for testing.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * @param cacheDataOnWrite whether data blocks should be written to the cache<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   *                         when an HFile is written<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   */<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  @VisibleForTesting<a name="line.375"></a>
-<span class="sourceLineNo">376</span>  public void setCacheDataOnWrite(boolean cacheDataOnWrite) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  }<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>   * @return true if index blocks should be written to the cache when an HFile<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   *         is written, false if not<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   */<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  public boolean shouldCacheIndexesOnWrite() {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheIndexesOnWrite;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<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>   * @return true if bloom blocks should be written to the cache when an HFile<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   *         is written, false if not<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   */<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public boolean shouldCacheBloomsOnWrite() {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheBloomsOnWrite;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  }<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>   * @return true if blocks should be evicted from the cache when an HFile<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   *         reader is closed, false if not<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  public boolean shouldEvictOnClose() {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    return isBlockCacheEnabled() &amp;&amp; this.evictOnClose;<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>  /**<a name="line.404"></a>
-<span class="sourceLineNo">405</span>   * Only used for testing.<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   * @param evictOnClose whether blocks should be evicted from the cache when an<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   *                     HFile reader is closed<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   */<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  public void setEvictOnClose(boolean evictOnClose) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    this.evictOnClose = evictOnClose;<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>  /**<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * @return true if data blocks should be compressed in the cache, false if not<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   */<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  public boolean shouldCacheDataCompressed() {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>  }<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>   * @return true if this {@link BlockCategory} should be compressed in blockcache, false otherwise<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   */<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  public boolean shouldCacheCompressed(BlockCategory category) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (!isBlockCacheEnabled()) return false;<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    switch (category) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      case DATA:<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      default:<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        return false;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * @return true if blocks should be prefetched into the cache on open, false if not<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   */<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  public boolean shouldPrefetchOnOpen() {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    return isBlockCacheEnabled() &amp;&amp; this.prefetchOnOpen;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  }<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>  /**<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * Return true if we may find this type of block in block cache.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * &lt;p&gt;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * TODO: today {@code family.isBlockCacheEnabled()} only means {@code cacheDataOnRead}, so here we<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * consider lots of other configurations such as {@code cacheDataOnWrite}. We should fix this in<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * the future, {@code cacheDataOnWrite} should honor the CF level {@code isBlockCacheEnabled}<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * configuration.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public boolean shouldReadBlockFromCache(BlockType blockType) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    if (!isBlockCacheEnabled()) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      return false;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    }<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    if (cacheDataOnRead) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      return true;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    if (prefetchOnOpen) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      return true;<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    if (cacheDataOnWrite) {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      return true;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    if (blockType == null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return true;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (blockType.getCategory() == BlockCategory.BLOOM ||<a name="line.464"></a>
-<span class="sourceLineNo">465</span>            blockType.getCategory() == BlockCategory.INDEX) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return true;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    return false;<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>   * If we make sure the block could not be cached, we will not acquire the lock<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * otherwise we will acquire lock<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   */<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  public boolean shouldLockOnCacheMiss(BlockType blockType) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    if (blockType == null) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      return true;<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    return shouldCacheBlockOnRead(blockType.getCategory());<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>  @Override<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public String toString() {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    if (!isBlockCacheEnabled()) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      return "CacheConfig:disabled";<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    return "blockCache=" + getBlockCache() +<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      ", cacheDataOnRead=" + shouldCacheDataOnRead() +<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      ", cacheDataOnWrite=" + shouldCacheDataOnWrite() +<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      ", cacheIndexesOnWrite=" + shouldCacheIndexesOnWrite() +<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      ", cacheBloomsOnWrite=" + shouldCacheBloomsOnWrite() +<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      ", cacheEvictOnClose=" + shouldEvictOnClose() +<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      ", cacheDataCompressed=" + shouldCacheDataCompressed() +<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      ", prefetchOnOpen=" + shouldPrefetchOnOpen();<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>  // Static block cache reference and methods<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>  /**<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * Static reference to the block cache, or null if no caching should be used<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * at all.<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   */<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  // Clear this if in tests you'd make more than one block cache instance.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>  @VisibleForTesting<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  static BlockCache GLOBAL_BLOCK_CACHE_INSTANCE;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  private static LruBlockCache ONHEAP_CACHE_INSTANCE = null;<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  private static BlockCache L2_CACHE_INSTANCE = null;// Can be BucketCache or External cache.<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>  /** Boolean whether we have disabled the block cache entirely. */<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  @VisibleForTesting<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  static boolean blockCacheDisabled = false;<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  /**<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * @param c Configuration to use.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @return An L1 instance.  Currently an instance of LruBlockCache.<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   */<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  public static LruBlockCache getOnHeapCache(final Configuration c) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    return getOnHeapCacheInternal(c);<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 CacheStats getOnHeapCacheStats() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    if (ONHEAP_CACHE_INSTANCE != null) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      return ONHEAP_CACHE_INSTANCE.getStats();<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    return null;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>  }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public CacheStats getL2CacheStats() {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    if (L2_CACHE_INSTANCE != null) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      return L2_CACHE_INSTANCE.getStats();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    }<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    return null;<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>   * @param c Configuration to use.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * @return An L1 instance.  Currently an instance of LruBlockCache.<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   */<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  private synchronized static LruBlockCache getOnHeapCacheInternal(final Configuration c) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    if (ONHEAP_CACHE_INSTANCE != null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return ONHEAP_CACHE_INSTANCE;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    final long cacheSize = MemorySizeUtil.getOnHeapCacheSize(c);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    if (cacheSize &lt; 0) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      blockCacheDisabled = true;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    if (blockCacheDisabled) return null;<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    LOG.info("Allocating onheap LruBlockCache size=" +<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      StringUtils.byteDesc(cacheSize) + ", blockSize=" + StringUtils.byteDesc(blockSize));<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    ONHEAP_CACHE_INSTANCE = new LruBlockCache(cacheSize, blockSize, true, c);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    return ONHEAP_CACHE_INSTANCE;<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>  private static BlockCache getExternalBlockcache(Configuration c) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    if (LOG.isDebugEnabled()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      LOG.debug("Trying to use External l2 cache");<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    Class klass = null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    // Get the class, from the config. s<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    try {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      klass = ExternalBlockCaches.valueOf(c.get(EXTERNAL_BLOCKCACHE_CLASS_KEY, "memcache")).clazz;<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    } catch (IllegalArgumentException exception) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      try {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        klass = c.getClass(EXTERNAL_BLOCKCACHE_CLASS_KEY, Class.forName(<a name="line.566"></a>
-<span class="sourceLineNo">567</span>            "org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache"));<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      } catch (ClassNotFoundException e) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        return null;<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>    // Now try and create an instance of the block cache.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    try {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      LOG.info("Creating external block cache of type: " + klass);<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      return (BlockCache) ReflectionUtils.newInstance(klass, c);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    } catch (Exception e) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      LOG.warn("Error creating external block cache", e);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    return null;<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>  @VisibleForTesting<a name="line.584"></a>
-<span class="sourceLineNo">585</span>  static BucketCache getBucketCache(Configuration c) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    // Check for L2.  ioengine name must be non-null.<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    String bucketCacheIOEngineName = c.get(BUCKET_CACHE_IOENGINE_KEY, null);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (bucketCacheIOEngineName == null || bucketCacheIOEngineName.length() &lt;= 0) return null;<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    final long bucketCacheSize = MemorySizeUtil.getBucketCacheSize(c);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    if (bucketCacheSize &lt;= 0) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      throw new IllegalStateException("bucketCacheSize &lt;= 0; Check " +<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        BUCKET_CACHE_SIZE_KEY + " setting and/or server java heap size");<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    if (c.get("hbase.bucketcache.percentage.in.combinedcache") != null) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      LOG.warn("Configuration 'hbase.bucketcache.percentage.in.combinedcache' is no longer "<a name="line.597"></a>
-<span class="sourceLineNo">598</span>          + "respected. See comments in http://hbase.apache.org/book.html#_changes_of_note");<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    }<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    int writerThreads = c.getInt(BUCKET_CACHE_WRITER_THREADS_KEY,<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      DEFAULT_BUCKET_CACHE_WRITER_THREADS);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    int writerQueueLen = c.getInt(BUCKET_CACHE_WRITER_QUEUE_KEY,<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      DEFAULT_BUCKET_CACHE_WRITER_QUEUE);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    String persistentPath = c.get(BUCKET_CACHE_PERSISTENT_PATH_KEY);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    String[] configuredBucketSizes = c.getStrings(BUCKET_CACHE_BUCKETS_KEY);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    int [] bucketSizes = null;<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    if (configuredBucketSizes != null) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      bucketSizes = new int[configuredBucketSizes.length];<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      for (int i = 0; i &lt; configuredBucketSizes.length; i++) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        int bucketSize = Integer.parseInt(configuredBucketSizes[i].trim());<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        if (bucketSize % 256 != 0) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          // We need all the bucket sizes to be multiples of 256. Having all the configured bucket<a name="line.612"></a>
-<span class="sourceLineNo">613</span>          // sizes to be multiples of 256 will ensure that the block offsets within buckets,<a name="line.613"></a>
-<span class="sourceLineNo">614</span>          // that are calculated, will also be multiples of 256.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>          // See BucketEntry where offset to each block is represented using 5 bytes (instead of 8<a name="line.615"></a>
-<span class="sourceLineNo">616</span>          // bytes long). We would like to save heap overhead as less as possible.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>          throw new IllegalArgumentException("Illegal value: " + bucketSize + " configured for '"<a name="line.617"></a>
-<span class="sourceLineNo">618</span>              + BUCKET_CACHE_BUCKETS_KEY + "'. A

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html
index 82d728d..ac869e3 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html
@@ -168,7 +168,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#avgStoreFileAge">avgStoreFileAge</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colFirst"><code>private <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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#blockCache">blockCache</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -176,7 +176,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#blockedRequestsCount">blockedRequestsCount</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colFirst"><code>private <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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#cacheStats">cacheStats</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -242,11 +242,11 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#flushedCellsSize">flushedCellsSize</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colFirst"><code>private <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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#l1Stats">l1Stats</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colFirst"><code>private <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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#l2Stats">l2Stats</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -278,7 +278,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#minStoreFileAge">minStoreFileAge</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colFirst"><code>private <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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -1050,10 +1050,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 </tr>
 <tr id="i112" class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#initBlockCache--">initBlockCache</a></span>()</code>
-<div class="block">It's possible that due to threading the block cache could not be initialized
- yet (testing multiple region servers in one jvm).</div>
-</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#initBlockCache--">initBlockCache</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i113" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
@@ -1116,7 +1113,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>blockCache</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.62">blockCache</a></pre>
+<pre>private&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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.62">blockCache</a></pre>
 </li>
 </ul>
 <a name="mobFileCache">
@@ -1125,7 +1122,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFileCache</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.63">mobFileCache</a></pre>
+<pre>private&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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.63">mobFileCache</a></pre>
+</li>
+</ul>
+<a name="cacheStats">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cacheStats</h4>
+<pre>private&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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.64">cacheStats</a></pre>
+</li>
+</ul>
+<a name="l1Stats">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>l1Stats</h4>
+<pre>private&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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.65">l1Stats</a></pre>
+</li>
+</ul>
+<a name="l2Stats">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>l2Stats</h4>
+<pre>private&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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.66">l2Stats</a></pre>
 </li>
 </ul>
 <a name="numStores">
@@ -1134,7 +1158,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>numStores</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.65">numStores</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.68">numStores</a></pre>
 </li>
 </ul>
 <a name="numWALFiles">
@@ -1143,7 +1167,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>numWALFiles</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.66">numWALFiles</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.69">numWALFiles</a></pre>
 </li>
 </ul>
 <a name="walFileSize">
@@ -1152,7 +1176,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>walFileSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.67">walFileSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.70">walFileSize</a></pre>
 </li>
 </ul>
 <a name="numStoreFiles">
@@ -1161,7 +1185,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>numStoreFiles</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.68">numStoreFiles</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.71">numStoreFiles</a></pre>
 </li>
 </ul>
 <a name="memstoreSize">
@@ -1170,7 +1194,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>memstoreSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.69">memstoreSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.72">memstoreSize</a></pre>
 </li>
 </ul>
 <a name="storeFileSize">
@@ -1179,7 +1203,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>storeFileSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.70">storeFileSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.73">storeFileSize</a></pre>
 </li>
 </ul>
 <a name="storeFileSizeGrowthRate">
@@ -1188,7 +1212,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>storeFileSizeGrowthRate</h4>
-<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.71">storeFileSizeGrowthRate</a></pre>
+<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.74">storeFileSizeGrowthRate</a></pre>
 </li>
 </ul>
 <a name="maxStoreFileAge">
@@ -1197,7 +1221,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>maxStoreFileAge</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.72">maxStoreFileAge</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.75">maxStoreFileAge</a></pre>
 </li>
 </ul>
 <a name="minStoreFileAge">
@@ -1206,7 +1230,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>minStoreFileAge</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.73">minStoreFileAge</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.76">minStoreFileAge</a></pre>
 </li>
 </ul>
 <a name="avgStoreFileAge">
@@ -1215,7 +1239,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>avgStoreFileAge</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.74">avgStoreFileAge</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.77">avgStoreFileAge</a></pre>
 </li>
 </ul>
 <a name="numReferenceFiles">
@@ -1224,7 +1248,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>numReferenceFiles</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.75">numReferenceFiles</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.78">numReferenceFiles</a></pre>
 </li>
 </ul>
 <a name="requestsPerSecond">
@@ -1233,7 +1257,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>requestsPerSecond</h4>
-<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.76">requestsPerSecond</a></pre>
+<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.79">requestsPerSecond</a></pre>
 </li>
 </ul>
 <a name="readRequestsCount">
@@ -1242,7 +1266,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>readRequestsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.77">readRequestsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.80">readRequestsCount</a></pre>
 </li>
 </ul>
 <a name="readRequestsRatePerSecond">
@@ -1251,7 +1275,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>readRequestsRatePerSecond</h4>
-<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.78">readRequestsRatePerSecond</a></pre>
+<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.81">readRequestsRatePerSecond</a></pre>
 </li>
 </ul>
 <a name="cpRequestsCount">
@@ -1260,7 +1284,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>cpRequestsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.79">cpRequestsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.82">cpRequestsCount</a></pre>
 </li>
 </ul>
 <a name="filteredReadRequestsCount">
@@ -1269,7 +1293,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>filteredReadRequestsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.80">filteredReadRequestsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.83">filteredReadRequestsCount</a></pre>
 </li>
 </ul>
 <a name="writeRequestsCount">
@@ -1278,7 +1302,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>writeRequestsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.81">writeRequestsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.84">writeRequestsCount</a></pre>
 </li>
 </ul>
 <a name="writeRequestsRatePerSecond">
@@ -1287,7 +1311,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>writeRequestsRatePerSecond</h4>
-<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.82">writeRequestsRatePerSecond</a></pre>
+<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.85">writeRequestsRatePerSecond</a></pre>
 </li>
 </ul>
 <a name="checkAndMutateChecksFailed">
@@ -1296,7 +1320,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndMutateChecksFailed</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.83">checkAndMutateChecksFailed</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.86">checkAndMutateChecksFailed</a></pre>
 </li>
 </ul>
 <a name="checkAndMutateChecksPassed">
@@ -1305,7 +1329,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndMutateChecksPassed</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.84">checkAndMutateChecksPassed</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.87">checkAndMutateChecksPassed</a></pre>
 </li>
 </ul>
 <a name="storefileIndexSize">
@@ -1314,7 +1338,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>storefileIndexSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.85">storefileIndexSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.88">storefileIndexSize</a></pre>
 </li>
 </ul>
 <a name="totalStaticIndexSize">
@@ -1323,7 +1347,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>totalStaticIndexSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.86">totalStaticIndexSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.89">totalStaticIndexSize</a></pre>
 </li>
 </ul>
 <a name="totalStaticBloomSize">
@@ -1332,7 +1356,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>totalStaticBloomSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.87">totalStaticBloomSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.90">totalStaticBloomSize</a></pre>
 </li>
 </ul>
 <a name="numMutationsWithoutWAL">
@@ -1341,7 +1365,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>numMutationsWithoutWAL</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.88">numMutationsWithoutWAL</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.91">numMutationsWithoutWAL</a></pre>
 </li>
 </ul>
 <a name="dataInMemoryWithoutWAL">
@@ -1350,7 +1374,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>dataInMemoryWithoutWAL</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.89">dataInMemoryWithoutWAL</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.92">dataInMemoryWithoutWAL</a></pre>
 </li>
 </ul>
 <a name="percentFileLocal">
@@ -1359,7 +1383,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>percentFileLocal</h4>
-<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.90">percentFileLocal</a></pre>
+<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.93">percentFileLocal</a></pre>
 </li>
 </ul>
 <a name="percentFileLocalSecondaryRegions">
@@ -1368,7 +1392,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>percentFileLocalSecondaryRegions</h4>
-<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.91">percentFileLocalSecondaryRegions</a></pre>
+<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.94">percentFileLocalSecondaryRegions</a></pre>
 </li>
 </ul>
 <a name="flushedCellsCount">
@@ -1377,7 +1401,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>flushedCellsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.92">flushedCellsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.95">flushedCellsCount</a></pre>
 </li>
 </ul>
 <a name="compactedCellsCount">
@@ -1386,7 +1410,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactedCellsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.93">compactedCellsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.96">compactedCellsCount</a></pre>
 </li>
 </ul>
 <a name="majorCompactedCellsCount">
@@ -1395,7 +1419,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactedCellsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.94">majorCompactedCellsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.97">majorCompactedCellsCount</a></pre>
 </li>
 </ul>
 <a name="flushedCellsSize">
@@ -1404,7 +1428,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>flushedCellsSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.95">flushedCellsSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.98">flushedCellsSize</a></pre>
 </li>
 </ul>
 <a name="compactedCellsSize">
@@ -1413,7 +1437,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>compactedCellsSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.96">compactedCellsSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.99">compactedCellsSize</a></pre>
 </li>
 </ul>
 <a name="majorCompactedCellsSize">
@@ -1422,7 +1446,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactedCellsSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.97">majorCompactedCellsSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.100">majorCompactedCellsSize</a></pre>
 </li>
 </ul>
 <a name="cellsCountCompactedToMob">
@@ -1431,7 +1455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>cellsCountCompactedToMob</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.98">cellsCountCompactedToMob</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.101">cellsCountCompactedToMob</a></pre>
 </li>
 </ul>
 <a name="cellsCountCompactedFromMob">
@@ -1440,7 +1464,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>cellsCountCompactedFromMob</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.99">cellsCountCompactedFromMob</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.102">cellsCountCompactedFromMob</a></pre>
 </li>
 </ul>
 <a name="cellsSizeCompactedToMob">
@@ -1449,7 +1473,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>cellsSizeCompactedToMob</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.100">cellsSizeCompactedToMob</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.103">cellsSizeCompactedToMob</a></pre>
 </li>
 </ul>
 <a name="cellsSizeCompactedFromMob">
@@ -1458,7 +1482,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>cellsSizeCompactedFromMob</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.101">cellsSizeCompactedFromMob</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.104">cellsSizeCompactedFromMob</a></pre>
 </li>
 </ul>
 <a name="mobFlushCount">
@@ -1467,7 +1491,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFlushCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.102">mobFlushCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.105">mobFlushCount</a></pre>
 </li>
 </ul>
 <a name="mobFlushedCellsCount">
@@ -1476,7 +1500,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFlushedCellsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.103">mobFlushedCellsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.106">mobFlushedCellsCount</a></pre>
 </li>
 </ul>
 <a name="mobFlushedCellsSize">
@@ -1485,7 +1509,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFlushedCellsSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.104">mobFlushedCellsSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.107">mobFlushedCellsSize</a></pre>
 </li>
 </ul>
 <a name="mobScanCellsCount">
@@ -1494,7 +1518,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobScanCellsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.105">mobScanCellsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.108">mobScanCellsCount</a></pre>
 </li>
 </ul>
 <a name="mobScanCellsSize">
@@ -1503,7 +1527,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobScanCellsSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.106">mobScanCellsSize</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.109">mobScanCellsSize</a></pre>
 </li>
 </ul>
 <a name="mobFileCacheAccessCount">
@@ -1512,7 +1536,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFileCacheAccessCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.107">mobFileCacheAccessCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.110">mobFileCacheAccessCount</a></pre>
 </li>
 </ul>
 <a name="mobFileCacheMissCount">
@@ -1521,7 +1545,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFileCacheMissCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.108">mobFileCacheMissCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.111">mobFileCacheMissCount</a></pre>
 </li>
 </ul>
 <a name="mobFileCacheHitRatio">
@@ -1530,7 +1554,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFileCacheHitRatio</h4>
-<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.109">mobFileCacheHitRatio</a></pre>
+<pre>private volatile&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.112">mobFileCacheHitRatio</a></pre>
 </li>
 </ul>
 <a name="mobFileCacheEvictedCount">
@@ -1539,7 +1563,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFileCacheEvictedCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.110">mobFileCacheEvictedCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.113">mobFileCacheEvictedCount</a></pre>
 </li>
 </ul>
 <a name="mobFileCacheCount">
@@ -1548,7 +1572,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>mobFileCacheCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.111">mobFileCacheCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.114">mobFileCacheCount</a></pre>
 </li>
 </ul>
 <a name="blockedRequestsCount">
@@ -1557,7 +1581,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>blockedRequestsCount</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.112">blockedRequestsCount</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.115">blockedRequestsCount</a></pre>
 </li>
 </ul>
 <a name="averageRegionSize">
@@ -1566,34 +1590,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>averageRegionSize</h4>
-<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.113">averageRegionSize</a></pre>
-</li>
-</ul>
-<a name="cacheStats">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>cacheStats</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.115">cacheStats</a></pre>
-</li>
-</ul>
-<a name="l1Stats">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>l1Stats</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.116">l1Stats</a></pre>
-</li>
-</ul>
-<a name="l2Stats">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>l2Stats</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.117">l2Stats</a></pre>
+<pre>private volatile&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.116">averageRegionSize</a></pre>
 </li>
 </ul>
 <a name="executor">
@@ -1664,10 +1661,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>initBlockCache</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.157">initBlockCache</a>()</pre>
-<div class="block">It's possible that due to threading the block cache could not be initialized
- yet (testing multiple region servers in one jvm).  So we need to try and initialize
- the blockCache and cacheStats reference multiple times until we succeed.</div>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.152">initBlockCache</a>()</pre>
 </li>
 </ul>
 <a name="initMobFileCache--">
@@ -1676,7 +1670,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>initMobFileCache</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.175">initMobFileCache</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.170">initMobFileCache</a>()</pre>
 <div class="block">Initializes the mob file cache.</div>
 </li>
 </ul>
@@ -1686,7 +1680,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterId</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/MetricsRegionServerWrapperImpl.html#line.183">getClusterId</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/MetricsRegionServerWrapperImpl.html#line.175">getClusterId</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getClusterId--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the Cluster ID</div>
 <dl>
@@ -1703,7 +1697,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getStartCode</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.188">getStartCode</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.180">getStartCode</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getStartCode--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get HRegionServer start time</div>
 <dl>
@@ -1720,7 +1714,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getZookeeperQuorum</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/MetricsRegionServerWrapperImpl.html#line.193">getZookeeperQuorum</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/MetricsRegionServerWrapperImpl.html#line.185">getZookeeperQuorum</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getZookeeperQuorum--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the ZooKeeper Quorum Info</div>
 <dl>
@@ -1737,7 +1731,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessors</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/MetricsRegionServerWrapperImpl.html#line.202">getCoprocessors</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/MetricsRegionServerWrapperImpl.html#line.194">getCoprocessors</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getCoprocessors--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the co-processors</div>
 <dl>
@@ -1754,7 +1748,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</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/MetricsRegionServerWrapperImpl.html#line.211">getServerName</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/MetricsRegionServerWrapperImpl.html#line.203">getServerName</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getServerName--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get ServerName</div>
 <dl>
@@ -1769,7 +1763,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumOnlineRegions</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.220">getNumOnlineRegions</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.212">getNumOnlineRegions</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getNumOnlineRegions--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">The number of online regions</div>
 <dl>
@@ -1784,7 +1778,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalRequestCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.229">getTotalRequestCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.221">getTotalRequestCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getTotalRequestCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the total number of requests per second.</div>
 <dl>
@@ -1799,7 +1793,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalRowActionRequestCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.234">getTotalRowActionRequestCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.226">getTotalRowActionRequestCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getTotalRowActionRequestCount--">getTotalRowActionRequestCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -1812,7 +1806,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitQueueSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.239">getSplitQueueSize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.231">getSplitQueueSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getSplitQueueSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the size of the split queue</div>
 <dl>
@@ -1827,7 +1821,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionQueueSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.247">getCompactionQueueSize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.239">getCompactionQueueSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getCompactionQueueSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the size of the compaction queue</div>
 <dl>
@@ -1842,7 +1836,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getSmallCompactionQueueSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.256">getSmallCompactionQueueSize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.248">getSmallCompactionQueueSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getSmallCompactionQueueSize--">getSmallCompactionQueueSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -1855,7 +1849,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getLargeCompactionQueueSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.265">getLargeCompactionQueueSize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.257">getLargeCompactionQueueSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getLargeCompactionQueueSize--">getLargeCompactionQueueSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -1868,7 +1862,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushQueueSize</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.274">getFlushQueueSize</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.266">getFlushQueueSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getFlushQueueSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the size of the flush queue.</div>
 <dl>
@@ -1883,7 +1877,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.283">getBlockCacheCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.275">getBlockCacheCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of items in the block cache.</div>
 <dl>
@@ -1898,7 +1892,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemStoreLimit</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.291">getMemStoreLimit</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.280">getMemStoreLimit</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getMemStoreLimit--">getMemStoreLimit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -1911,7 +1905,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.296">getBlockCacheSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.285">getBlockCacheSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the total size (in bytes) of the block cache.</div>
 <dl>
@@ -1926,7 +1920,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheFreeSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.304">getBlockCacheFreeSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.290">getBlockCacheFreeSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheFreeSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the size (in bytes) of the block cache that is free.</div>
 <dl>
@@ -1941,7 +1935,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.312">getBlockCacheHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.295">getBlockCacheHitCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheHitCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the count of hits to the block cache</div>
 <dl>
@@ -1956,7 +1950,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCachePrimaryHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.320">getBlockCachePrimaryHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.300">getBlockCachePrimaryHitCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCachePrimaryHitCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the count of hits to primary replica in the block cache</div>
 <dl>
@@ -1971,7 +1965,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.328">getBlockCacheMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.305">getBlockCacheMissCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheMissCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the count of misses to the block cache.</div>
 <dl>
@@ -1986,7 +1980,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCachePrimaryMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.336">getBlockCachePrimaryMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.310">getBlockCachePrimaryMissCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCachePrimaryMissCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the count of misses to primary replica in the block cache.</div>
 <dl>
@@ -2001,7 +1995,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheEvictedCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.344">getBlockCacheEvictedCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.315">getBlockCacheEvictedCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheEvictedCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of items evicted from the block cache.</div>
 <dl>
@@ -2016,7 +2010,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCachePrimaryEvictedCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.352">getBlockCachePrimaryEvictedCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.320">getBlockCachePrimaryEvictedCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCachePrimaryEvictedCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of items evicted from primary replica in the block cache.</div>
 <dl>
@@ -2031,7 +2025,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheHitPercent</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.360">getBlockCacheHitPercent</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.325">getBlockCacheHitPercent</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheHitPercent--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the percent of all requests that hit the block cache.</div>
 <dl>
@@ -2046,7 +2040,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheHitCachingPercent</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.372">getBlockCacheHitCachingPercent</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.334">getBlockCacheHitCachingPercent</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheHitCachingPercent--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the percent of requests with the block cache turned on that hit the block cache.</div>
 <dl>
@@ -2061,7 +2055,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCacheFailedInsertions</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.386">getBlockCacheFailedInsertions</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.343">getBlockCacheFailedInsertions</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getBlockCacheFailedInsertions--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Number of cache insertions that failed.</div>
 <dl>
@@ -2076,7 +2070,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL1CacheHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.394">getL1CacheHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.348">getL1CacheHitCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL1CacheHitCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Hit count of L1 cache.</div>
 <dl>
@@ -2091,7 +2085,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL1CacheMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.402">getL1CacheMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.353">getL1CacheMissCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL1CacheMissCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Miss count of L1 cache.</div>
 <dl>
@@ -2106,7 +2100,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL1CacheHitRatio</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.410">getL1CacheHitRatio</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.358">getL1CacheHitRatio</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL1CacheHitRatio--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Hit ratio of L1 cache.</div>
 <dl>
@@ -2121,7 +2115,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL1CacheMissRatio</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.418">getL1CacheMissRatio</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.363">getL1CacheMissRatio</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL1CacheMissRatio--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Miss ratio of L1 cache.</div>
 <dl>
@@ -2136,7 +2130,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL2CacheHitCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.426">getL2CacheHitCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.368">getL2CacheHitCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL2CacheHitCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Hit count of L2 cache.</div>
 <dl>
@@ -2151,7 +2145,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL2CacheMissCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.434">getL2CacheMissCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.373">getL2CacheMissCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL2CacheMissCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Miss count of L2 cache.</div>
 <dl>
@@ -2166,7 +2160,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL2CacheHitRatio</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.442">getL2CacheHitRatio</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.378">getL2CacheHitRatio</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL2CacheHitRatio--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Hit ratio of L2 cache.</div>
 <dl>
@@ -2181,7 +2175,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getL2CacheMissRatio</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.450">getL2CacheMissRatio</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.383">getL2CacheMissRatio</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getL2CacheMissRatio--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Miss ratio of L2 cache.</div>
 <dl>
@@ -2196,7 +2190,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>forceRecompute</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.457">forceRecompute</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.387">forceRecompute</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#forceRecompute--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Force a re-computation of the metrics.</div>
 <dl>
@@ -2211,7 +2205,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumStores</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.462">getNumStores</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.392">getNumStores</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getNumStores--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of stores hosted on this region server.</div>
 <dl>
@@ -2226,7 +2220,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumWALFiles</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.467">getNumWALFiles</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.397">getNumWALFiles</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getNumWALFiles--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of WAL files of this region server.</div>
 <dl>
@@ -2241,7 +2235,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.472">getWALFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.402">getWALFileSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getWALFileSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the size of WAL files of this region server.</div>
 <dl>
@@ -2256,7 +2250,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumWALSlowAppend</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.477">getNumWALSlowAppend</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.407">getNumWALSlowAppend</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getNumWALSlowAppend--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of WAL files with slow appends for this region server.</div>
 <dl>
@@ -2271,7 +2265,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumStoreFiles</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.482">getNumStoreFiles</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.412">getNumStoreFiles</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getNumStoreFiles--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of store files hosted on this region server.</div>
 <dl>
@@ -2286,7 +2280,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/MetricsRegionServerWrapperImpl.html#line.487">getMaxStoreFileAge</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.417">getMaxStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getMaxStoreFileAge--">getMaxStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -2301,7 +2295,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/MetricsRegionServerWrapperImpl.html#line.492">getMinStoreFileAge</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.422">getMinStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getMinStoreFileAge--">getMinStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -2316,7 +2310,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/MetricsRegionServerWrapperImpl.html#line.497">getAvgStoreFileAge</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.427">getAvgStoreFileAge</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getAvgStoreFileAge--">getAvgStoreFileAge</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -2331,7 +2325,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/MetricsRegionServerWrapperImpl.html#line.502">getNumReferenceFiles</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.432">getNumReferenceFiles</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getNumReferenceFiles--">getNumReferenceFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></dd>
@@ -2346,7 +2340,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemStoreSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.507">getMemStoreSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.437">getMemStoreSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getMemStoreSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the size of the memstore on this region server.</div>
 <dl>
@@ -2361,7 +2355,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.512">getStoreFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.442">getStoreFileSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getStoreFileSize--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the total size of the store files this region server is serving from.</div>
 <dl>
@@ -2376,7 +2370,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileSizeGrowthRate</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.517">getStoreFileSizeGrowthRate</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.447">getStoreFileSizeGrowthRate</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getStoreFileSizeGrowthRate--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the growth rate of the store files this region server is serving from.</div>
 <dl>
@@ -2391,7 +2385,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestsPerSecond</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.521">getRequestsPerSecond</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.451">getRequestsPerSecond</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getRequestsPerSecond--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of requests per second.</div>
 <dl>
@@ -2406,7 +2400,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.526">getReadRequestsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.456">getReadRequestsCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getReadRequestsCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of read requests to regions hosted on this region server.</div>
 <dl>
@@ -2421,7 +2415,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getCpRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.531">getCpRequestsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.461">getCpRequestsCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getCpRequestsCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of coprocessor requests to regions hosted on this region server.</div>
 <dl>
@@ -2436,7 +2430,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadRequestsRatePerSecond</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.536">getReadRequestsRatePerSecond</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.466">getReadRequestsRatePerSecond</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getReadRequestsRatePerSecond--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the rate of read requests per second to regions hosted on this region server.</div>
 <dl>
@@ -2451,7 +2445,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilteredReadRequestsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.541">getFilteredReadRequestsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#line.471">getFilteredReadRequestsCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html#getFilteredReadRequestsCount--">MetricsRegionServerWrapper</a></code></span></div>
 <div class="block">Get the number of filtered read requests to regions hosted on this region server.</div>
 <dl>
@@ -2466,7 +2460,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsR
 <ul class="bl

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 0dcbecc..0438cdb 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.6336">HRegion.RegionScannerImpl</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6370">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.6339">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.6373">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.6342">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.6376">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.6346">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.6380">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.6347">filterClosed</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6381">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.6349">stopRow</a></pre>
+<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6383">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.6350">includeStopRow</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6384">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.6351">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.6385">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.6352">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.6386">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.6354">readPt</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6388">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.6355">maxResultSize</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6389">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.6356">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.6390">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.6357">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.6391">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.6364">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.6398">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.6369">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.6403">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.6360">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.6394">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.6407">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.6441">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.6439">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.6473">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.6448">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.6482">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.6469">getMaxResultSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6503">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.6474">getMvccReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6508">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.6479">getBatch</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6513">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.6488">resetFilters</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6522">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.6495">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.6529">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.6502">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.6536">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.6518">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.6552">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.6524">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.6558">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.6561">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.6595">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.6585">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.6619">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.6626">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.6660">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.6634">isFilterDone</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6668">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.6638">isFilterDoneInternal</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6672">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.6642">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.6676">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.6865">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.6899">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.6873">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.6907">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.6884">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.6918">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.6911">filterRow</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6945">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.6918">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.6952">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.6922">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.6956">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.6937">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.6971">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.6949">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6983">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.6963">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.6997">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.6968">reseek</a>(byte[]&nbsp;row)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.7002">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.6988">shipped</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.7022">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.6998">run</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.7032">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/4f8b8424/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 5e8fd35..520ab93 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.3820">HRegion.ReplayBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3854">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.3821">origLogSeqNum</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3855">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.3822">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.3856">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.3829">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.3863">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.3834">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3868">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.3839">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3873">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.3844">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.3878">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.3849">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3883">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.3854">getOrigLogSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3888">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.3859">startRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3893">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.3864">closeRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3898">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.3873">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.3907">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.3894">checkAndPrepare</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html#line.3928">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.3903">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.3937">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.3915">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.3949">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.3923">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.3957">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/4f8b8424/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 564245b..a28d910 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.5944">HRegion.RowLockContext</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5978">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.5945">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.5979">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.5946">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.5980">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.5947">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.5981">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.5948">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.5982">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.5949">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.5983">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.5950">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.5984">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.5952">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.5986">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.5956">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.5990">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.5960">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.5994">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.5965">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.5999">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.5976">cleanUp</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.6010">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.5989">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.6023">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.5994">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.6028">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/4f8b8424/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 5dbe859..fc851e7 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.6007">HRegion.RowLockImpl</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6041">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.6008">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.6042">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.6009">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.6043">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.6011">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.6045">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.6016">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.6050">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.6021">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.6055">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.6026">release</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.6060">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.6032">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.6066">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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html
index 1e81ef0..ac83508 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html
@@ -160,236 +160,248 @@
 <span class="sourceLineNo">152</span>      this.bucketCacheStats = fcStats;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
 <span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>    @Override<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    public long getDataMissCount() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      return lruCacheStats.getDataMissCount() + bucketCacheStats.getDataMissCount();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>    @Override<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    public long getLeafIndexMissCount() {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      return lruCacheStats.getLeafIndexMissCount() + bucketCacheStats.getLeafIndexMissCount();<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public long getBloomChunkMissCount() {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      return lruCacheStats.getBloomChunkMissCount() + bucketCacheStats.getBloomChunkMissCount();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    @Override<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public long getMetaMissCount() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      return lruCacheStats.getMetaMissCount() + bucketCacheStats.getMetaMissCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>    @Override<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public long getRootIndexMissCount() {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      return lruCacheStats.getRootIndexMissCount() + bucketCacheStats.getRootIndexMissCount();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    public long getIntermediateIndexMissCount() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return lruCacheStats.getIntermediateIndexMissCount() +<a name="line.182"></a>
-<span class="sourceLineNo">183</span>          bucketCacheStats.getIntermediateIndexMissCount();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    @Override<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    public long getFileInfoMissCount() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      return lruCacheStats.getFileInfoMissCount() + bucketCacheStats.getFileInfoMissCount();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>    @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    public long getGeneralBloomMetaMissCount() {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      return lruCacheStats.getGeneralBloomMetaMissCount() +<a name="line.193"></a>
-<span class="sourceLineNo">194</span>          bucketCacheStats.getGeneralBloomMetaMissCount();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>    @Override<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    public long getDeleteFamilyBloomMissCount() {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      return lruCacheStats.getDeleteFamilyBloomMissCount() +<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          bucketCacheStats.getDeleteFamilyBloomMissCount();<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>    @Override<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    public long getTrailerMissCount() {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      return lruCacheStats.getTrailerMissCount() + bucketCacheStats.getTrailerMissCount();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    public long getDataHitCount() {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      return lruCacheStats.getDataHitCount() + bucketCacheStats.getDataHitCount();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>    @Override<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    public long getLeafIndexHitCount() {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      return lruCacheStats.getLeafIndexHitCount() + bucketCacheStats.getLeafIndexHitCount();<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>    @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    public long getBloomChunkHitCount() {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      return lruCacheStats.getBloomChunkHitCount() + bucketCacheStats.getBloomChunkHitCount();<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>    @Override<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    public long getMetaHitCount() {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      return lruCacheStats.getMetaHitCount() + bucketCacheStats.getMetaHitCount();<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>    @Override<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    public long getRootIndexHitCount() {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      return lruCacheStats.getRootIndexHitCount() + bucketCacheStats.getRootIndexHitCount();<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>    @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    public long getIntermediateIndexHitCount() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      return lruCacheStats.getIntermediateIndexHitCount() +<a name="line.235"></a>
-<span class="sourceLineNo">236</span>          bucketCacheStats.getIntermediateIndexHitCount();<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    @Override<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public long getFileInfoHitCount() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return lruCacheStats.getFileInfoHitCount() + bucketCacheStats.getFileInfoHitCount();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    @Override<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    public long getGeneralBloomMetaHitCount() {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return lruCacheStats.getGeneralBloomMetaHitCount() +<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          bucketCacheStats.getGeneralBloomMetaHitCount();<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>    @Override<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    public long getDeleteFamilyBloomHitCount() {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      return lruCacheStats.getDeleteFamilyBloomHitCount() +<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          bucketCacheStats.getDeleteFamilyBloomHitCount();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    @Override<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    public long getTrailerHitCount() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return lruCacheStats.getTrailerHitCount() + bucketCacheStats.getTrailerHitCount();<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>    @Override<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    public long getRequestCount() {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return lruCacheStats.getRequestCount()<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          + bucketCacheStats.getRequestCount();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public long getRequestCachingCount() {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      return lruCacheStats.getRequestCachingCount()<a name="line.269"></a>
-<span class="sourceLineNo">270</span>          + bucketCacheStats.getRequestCachingCount();<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>    @Override<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    public long getMissCount() {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      return lruCacheStats.getMissCount() + bucketCacheStats.getMissCount();<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>    @Override<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    public long getPrimaryMissCount() {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      return lruCacheStats.getPrimaryMissCount() + bucketCacheStats.getPrimaryMissCount();<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>    @Override<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    public long getMissCachingCount() {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      return lruCacheStats.getMissCachingCount()<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          + bucketCacheStats.getMissCachingCount();<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>    @Override<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    public long getHitCount() {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      return lruCacheStats.getHitCount() + bucketCacheStats.getHitCount();<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>    @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    public long getPrimaryHitCount() {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return lruCacheStats.getPrimaryHitCount() + bucketCacheStats.getPrimaryHitCount();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    @Override<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    public long getHitCachingCount() {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      return lruCacheStats.getHitCachingCount()<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          + bucketCacheStats.getHitCachingCount();<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>    @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    public long getEvictionCount() {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      return lruCacheStats.getEvictionCount()<a name="line.306"></a>
-<span class="sourceLineNo">307</span>          + bucketCacheStats.getEvictionCount();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>    @Override<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    public long getEvictedCount() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      return lruCacheStats.getEvictedCount()<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          + bucketCacheStats.getEvictedCount();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    }<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @Override<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    public long getPrimaryEvictedCount() {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      return lruCacheStats.getPrimaryEvictedCount()<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          + bucketCacheStats.getPrimaryEvictedCount();<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>    @Override<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    public void rollMetricsPeriod() {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      lruCacheStats.rollMetricsPeriod();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      bucketCacheStats.rollMetricsPeriod();<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>    @Override<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    public long getFailedInserts() {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      return lruCacheStats.getFailedInserts() + bucketCacheStats.getFailedInserts();<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 long getSumHitCountsPastNPeriods() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      return lruCacheStats.getSumHitCountsPastNPeriods()<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          + bucketCacheStats.getSumHitCountsPastNPeriods();<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    <a name="line.338"></a>
-<span class="sourceLineNo">339</span>    @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    public long getSumRequestCountsPastNPeriods() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      return lruCacheStats.getSumRequestCountsPastNPeriods()<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          + bucketCacheStats.getSumRequestCountsPastNPeriods();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    <a name="line.344"></a>
-<span class="sourceLineNo">345</span>    @Override<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    public long getSumHitCachingCountsPastNPeriods() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      return lruCacheStats.getSumHitCachingCountsPastNPeriods()<a name="line.347"></a>
-<span class="sourceLineNo">348</span>          + bucketCacheStats.getSumHitCachingCountsPastNPeriods();<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>    @Override<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    public long getSumRequestCachingCountsPastNPeriods() {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      return lruCacheStats.getSumRequestCachingCountsPastNPeriods()<a name="line.353"></a>
-<span class="sourceLineNo">354</span>          + bucketCacheStats.getSumRequestCachingCountsPastNPeriods();<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>  @Override<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public Iterator&lt;CachedBlock&gt; iterator() {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    return new BlockCachesIterator(getBlockCaches());<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>  @Override<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  public BlockCache[] getBlockCaches() {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    return new BlockCache [] {this.onHeapCache, this.l2Cache};<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>  @Override<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  public void setMaxSize(long size) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    this.onHeapCache.setMaxSize(size);<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>  @Override<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  public void returnBlock(BlockCacheKey cacheKey, Cacheable block) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    // returnBlock is meaningful for L2 cache alone.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    this.l2Cache.returnBlock(cacheKey, block);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @VisibleForTesting<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public int getRefCount(BlockCacheKey cacheKey) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return (this.l2Cache instanceof BucketCache)<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        ? ((BucketCache) this.l2Cache).getRefCount(cacheKey) : 0;<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">155</span>    public CacheStats getLruCacheStats() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      return this.lruCacheStats;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public CacheStats getBucketCacheStats() {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return this.bucketCacheStats;<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>    @Override<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    public long getDataMissCount() {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      return lruCacheStats.getDataMissCount() + bucketCacheStats.getDataMissCount();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    @Override<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    public long getLeafIndexMissCount() {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      return lruCacheStats.getLeafIndexMissCount() + bucketCacheStats.getLeafIndexMissCount();<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>    @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    public long getBloomChunkMissCount() {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      return lruCacheStats.getBloomChunkMissCount() + bucketCacheStats.getBloomChunkMissCount();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>    @Override<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    public long getMetaMissCount() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      return lruCacheStats.getMetaMissCount() + bucketCacheStats.getMetaMissCount();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>    @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    public long getRootIndexMissCount() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      return lruCacheStats.getRootIndexMissCount() + bucketCacheStats.getRootIndexMissCount();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    @Override<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    public long getIntermediateIndexMissCount() {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      return lruCacheStats.getIntermediateIndexMissCount() +<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          bucketCacheStats.getIntermediateIndexMissCount();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    @Override<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    public long getFileInfoMissCount() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      return lruCacheStats.getFileInfoMissCount() + bucketCacheStats.getFileInfoMissCount();<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>    @Override<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    public long getGeneralBloomMetaMissCount() {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      return lruCacheStats.getGeneralBloomMetaMissCount() +<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          bucketCacheStats.getGeneralBloomMetaMissCount();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>    @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    public long getDeleteFamilyBloomMissCount() {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      return lruCacheStats.getDeleteFamilyBloomMissCount() +<a name="line.207"></a>
+<span class="sourceLineNo">208</span>          bucketCacheStats.getDeleteFamilyBloomMissCount();<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>    @Override<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    public long getTrailerMissCount() {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      return lruCacheStats.getTrailerMissCount() + bucketCacheStats.getTrailerMissCount();<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>    @Override<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    public long getDataHitCount() {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      return lruCacheStats.getDataHitCount() + bucketCacheStats.getDataHitCount();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>    @Override<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    public long getLeafIndexHitCount() {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      return lruCacheStats.getLeafIndexHitCount() + bucketCacheStats.getLeafIndexHitCount();<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public long getBloomChunkHitCount() {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      return lruCacheStats.getBloomChunkHitCount() + bucketCacheStats.getBloomChunkHitCount();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>    @Override<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    public long getMetaHitCount() {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      return lruCacheStats.getMetaHitCount() + bucketCacheStats.getMetaHitCount();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    @Override<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    public long getRootIndexHitCount() {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      return lruCacheStats.getRootIndexHitCount() + bucketCacheStats.getRootIndexHitCount();<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    public long getIntermediateIndexHitCount() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      return lruCacheStats.getIntermediateIndexHitCount() +<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          bucketCacheStats.getIntermediateIndexHitCount();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>    @Override<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    public long getFileInfoHitCount() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      return lruCacheStats.getFileInfoHitCount() + bucketCacheStats.getFileInfoHitCount();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    public long getGeneralBloomMetaHitCount() {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      return lruCacheStats.getGeneralBloomMetaHitCount() +<a name="line.254"></a>
+<span class="sourceLineNo">255</span>          bucketCacheStats.getGeneralBloomMetaHitCount();<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>    @Override<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    public long getDeleteFamilyBloomHitCount() {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      return lruCacheStats.getDeleteFamilyBloomHitCount() +<a name="line.260"></a>
+<span class="sourceLineNo">261</span>          bucketCacheStats.getDeleteFamilyBloomHitCount();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    @Override<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public long getTrailerHitCount() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      return lruCacheStats.getTrailerHitCount() + bucketCacheStats.getTrailerHitCount();<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>    @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    public long getRequestCount() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      return lruCacheStats.getRequestCount()<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          + bucketCacheStats.getRequestCount();<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    @Override<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    public long getRequestCachingCount() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      return lruCacheStats.getRequestCachingCount()<a name="line.277"></a>
+<span class="sourceLineNo">278</span>          + bucketCacheStats.getRequestCachingCount();<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>    @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    public long getMissCount() {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      return lruCacheStats.getMissCount() + bucketCacheStats.getMissCount();<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>    @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    public long getPrimaryMissCount() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      return lruCacheStats.getPrimaryMissCount() + bucketCacheStats.getPrimaryMissCount();<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>    @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    public long getMissCachingCount() {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      return lruCacheStats.getMissCachingCount()<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          + bucketCacheStats.getMissCachingCount();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    public long getHitCount() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      return lruCacheStats.getHitCount() + bucketCacheStats.getHitCount();<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>    @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    public long getPrimaryHitCount() {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      return lruCacheStats.getPrimaryHitCount() + bucketCacheStats.getPrimaryHitCount();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    @Override<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    public long getHitCachingCount() {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      return lruCacheStats.getHitCachingCount()<a name="line.308"></a>
+<span class="sourceLineNo">309</span>          + bucketCacheStats.getHitCachingCount();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    public long getEvictionCount() {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      return lruCacheStats.getEvictionCount()<a name="line.314"></a>
+<span class="sourceLineNo">315</span>          + bucketCacheStats.getEvictionCount();<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>    @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    public long getEvictedCount() {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      return lruCacheStats.getEvictedCount()<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          + bucketCacheStats.getEvictedCount();<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>    @Override<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    public long getPrimaryEvictedCount() {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      return lruCacheStats.getPrimaryEvictedCount()<a name="line.326"></a>
+<span class="sourceLineNo">327</span>          + bucketCacheStats.getPrimaryEvictedCount();<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>    @Override<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    public void rollMetricsPeriod() {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      lruCacheStats.rollMetricsPeriod();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      bucketCacheStats.rollMetricsPeriod();<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>    @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    public long getFailedInserts() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      return lruCacheStats.getFailedInserts() + bucketCacheStats.getFailedInserts();<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>    @Override<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    public long getSumHitCountsPastNPeriods() {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      return lruCacheStats.getSumHitCountsPastNPeriods()<a name="line.343"></a>
+<span class="sourceLineNo">344</span>          + bucketCacheStats.getSumHitCountsPastNPeriods();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    <a name="line.346"></a>
+<span class="sourceLineNo">347</span>    @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    public long getSumRequestCountsPastNPeriods() {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      return lruCacheStats.getSumRequestCountsPastNPeriods()<a name="line.349"></a>
+<span class="sourceLineNo">350</span>          + bucketCacheStats.getSumRequestCountsPastNPeriods();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    <a name="line.352"></a>
+<span class="sourceLineNo">353</span>    @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    public long getSumHitCachingCountsPastNPeriods() {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      return lruCacheStats.getSumHitCachingCountsPastNPeriods()<a name="line.355"></a>
+<span class="sourceLineNo">356</span>          + bucketCacheStats.getSumHitCachingCountsPastNPeriods();<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 long getSumRequestCachingCountsPastNPeriods() {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      return lruCacheStats.getSumRequestCachingCountsPastNPeriods()<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          + bucketCacheStats.getSumRequestCachingCountsPastNPeriods();<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<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>  @Override<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  public Iterator&lt;CachedBlock&gt; iterator() {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    return new BlockCachesIterator(getBlockCaches());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  public BlockCache[] getBlockCaches() {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    return new BlockCache [] {this.onHeapCache, this.l2Cache};<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>  @Override<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  public void setMaxSize(long size) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    this.onHeapCache.setMaxSize(size);<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>  @Override<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public void returnBlock(BlockCacheKey cacheKey, Cacheable block) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    // returnBlock is meaningful for L2 cache alone.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    this.l2Cache.returnBlock(cacheKey, block);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @VisibleForTesting<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public int getRefCount(BlockCacheKey cacheKey) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return (this.l2Cache instanceof BucketCache)<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        ? ((BucketCache) this.l2Cache).getRefCount(cacheKey) : 0;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>  public LruBlockCache getOnHeapCache() {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    return onHeapCache;<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html
index 1e81ef0..ac83508 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html
@@ -160,236 +160,248 @@
 <span class="sourceLineNo">152</span>      this.bucketCacheStats = fcStats;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
 <span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>    @Override<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    public long getDataMissCount() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      return lruCacheStats.getDataMissCount() + bucketCacheStats.getDataMissCount();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>    @Override<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    public long getLeafIndexMissCount() {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      return lruCacheStats.getLeafIndexMissCount() + bucketCacheStats.getLeafIndexMissCount();<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    @Override<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    public long getBloomChunkMissCount() {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      return lruCacheStats.getBloomChunkMissCount() + bucketCacheStats.getBloomChunkMissCount();<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    @Override<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public long getMetaMissCount() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      return lruCacheStats.getMetaMissCount() + bucketCacheStats.getMetaMissCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>    @Override<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public long getRootIndexMissCount() {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      return lruCacheStats.getRootIndexMissCount() + bucketCacheStats.getRootIndexMissCount();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    public long getIntermediateIndexMissCount() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return lruCacheStats.getIntermediateIndexMissCount() +<a name="line.182"></a>
-<span class="sourceLineNo">183</span>          bucketCacheStats.getIntermediateIndexMissCount();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>    @Override<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    public long getFileInfoMissCount() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      return lruCacheStats.getFileInfoMissCount() + bucketCacheStats.getFileInfoMissCount();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>    @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    public long getGeneralBloomMetaMissCount() {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      return lruCacheStats.getGeneralBloomMetaMissCount() +<a name="line.193"></a>
-<span class="sourceLineNo">194</span>          bucketCacheStats.getGeneralBloomMetaMissCount();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>    @Override<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    public long getDeleteFamilyBloomMissCount() {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      return lruCacheStats.getDeleteFamilyBloomMissCount() +<a name="line.199"></a>
-<span class="sourceLineNo">200</span>          bucketCacheStats.getDeleteFamilyBloomMissCount();<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>    @Override<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    public long getTrailerMissCount() {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      return lruCacheStats.getTrailerMissCount() + bucketCacheStats.getTrailerMissCount();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    public long getDataHitCount() {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      return lruCacheStats.getDataHitCount() + bucketCacheStats.getDataHitCount();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span>    @Override<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    public long getLeafIndexHitCount() {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      return lruCacheStats.getLeafIndexHitCount() + bucketCacheStats.getLeafIndexHitCount();<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>    @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    public long getBloomChunkHitCount() {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      return lruCacheStats.getBloomChunkHitCount() + bucketCacheStats.getBloomChunkHitCount();<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>    @Override<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    public long getMetaHitCount() {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      return lruCacheStats.getMetaHitCount() + bucketCacheStats.getMetaHitCount();<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>    @Override<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    public long getRootIndexHitCount() {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      return lruCacheStats.getRootIndexHitCount() + bucketCacheStats.getRootIndexHitCount();<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>    @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    public long getIntermediateIndexHitCount() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      return lruCacheStats.getIntermediateIndexHitCount() +<a name="line.235"></a>
-<span class="sourceLineNo">236</span>          bucketCacheStats.getIntermediateIndexHitCount();<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    @Override<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    public long getFileInfoHitCount() {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return lruCacheStats.getFileInfoHitCount() + bucketCacheStats.getFileInfoHitCount();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    @Override<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    public long getGeneralBloomMetaHitCount() {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return lruCacheStats.getGeneralBloomMetaHitCount() +<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          bucketCacheStats.getGeneralBloomMetaHitCount();<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>    @Override<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    public long getDeleteFamilyBloomHitCount() {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      return lruCacheStats.getDeleteFamilyBloomHitCount() +<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          bucketCacheStats.getDeleteFamilyBloomHitCount();<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    @Override<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    public long getTrailerHitCount() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return lruCacheStats.getTrailerHitCount() + bucketCacheStats.getTrailerHitCount();<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>    @Override<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    public long getRequestCount() {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return lruCacheStats.getRequestCount()<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          + bucketCacheStats.getRequestCount();<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public long getRequestCachingCount() {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      return lruCacheStats.getRequestCachingCount()<a name="line.269"></a>
-<span class="sourceLineNo">270</span>          + bucketCacheStats.getRequestCachingCount();<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>    @Override<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    public long getMissCount() {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      return lruCacheStats.getMissCount() + bucketCacheStats.getMissCount();<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>    @Override<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    public long getPrimaryMissCount() {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      return lruCacheStats.getPrimaryMissCount() + bucketCacheStats.getPrimaryMissCount();<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>    @Override<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    public long getMissCachingCount() {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      return lruCacheStats.getMissCachingCount()<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          + bucketCacheStats.getMissCachingCount();<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>    @Override<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    public long getHitCount() {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      return lruCacheStats.getHitCount() + bucketCacheStats.getHitCount();<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>    @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    public long getPrimaryHitCount() {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      return lruCacheStats.getPrimaryHitCount() + bucketCacheStats.getPrimaryHitCount();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    @Override<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    public long getHitCachingCount() {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      return lruCacheStats.getHitCachingCount()<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          + bucketCacheStats.getHitCachingCount();<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>    @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    public long getEvictionCount() {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      return lruCacheStats.getEvictionCount()<a name="line.306"></a>
-<span class="sourceLineNo">307</span>          + bucketCacheStats.getEvictionCount();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>    @Override<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    public long getEvictedCount() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      return lruCacheStats.getEvictedCount()<a name="line.312"></a>
-<span class="sourceLineNo">313</span>          + bucketCacheStats.getEvictedCount();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    }<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    @Override<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    public long getPrimaryEvictedCount() {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      return lruCacheStats.getPrimaryEvictedCount()<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          + bucketCacheStats.getPrimaryEvictedCount();<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>    @Override<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    public void rollMetricsPeriod() {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      lruCacheStats.rollMetricsPeriod();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      bucketCacheStats.rollMetricsPeriod();<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>    @Override<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    public long getFailedInserts() {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      return lruCacheStats.getFailedInserts() + bucketCacheStats.getFailedInserts();<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 long getSumHitCountsPastNPeriods() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      return lruCacheStats.getSumHitCountsPastNPeriods()<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          + bucketCacheStats.getSumHitCountsPastNPeriods();<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    <a name="line.338"></a>
-<span class="sourceLineNo">339</span>    @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    public long getSumRequestCountsPastNPeriods() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      return lruCacheStats.getSumRequestCountsPastNPeriods()<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          + bucketCacheStats.getSumRequestCountsPastNPeriods();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    <a name="line.344"></a>
-<span class="sourceLineNo">345</span>    @Override<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    public long getSumHitCachingCountsPastNPeriods() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      return lruCacheStats.getSumHitCachingCountsPastNPeriods()<a name="line.347"></a>
-<span class="sourceLineNo">348</span>          + bucketCacheStats.getSumHitCachingCountsPastNPeriods();<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>    @Override<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    public long getSumRequestCachingCountsPastNPeriods() {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      return lruCacheStats.getSumRequestCachingCountsPastNPeriods()<a name="line.353"></a>
-<span class="sourceLineNo">354</span>          + bucketCacheStats.getSumRequestCachingCountsPastNPeriods();<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>  @Override<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  public Iterator&lt;CachedBlock&gt; iterator() {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    return new BlockCachesIterator(getBlockCaches());<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>  @Override<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  public BlockCache[] getBlockCaches() {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    return new BlockCache [] {this.onHeapCache, this.l2Cache};<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>  @Override<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  public void setMaxSize(long size) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    this.onHeapCache.setMaxSize(size);<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>  @Override<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  public void returnBlock(BlockCacheKey cacheKey, Cacheable block) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    // returnBlock is meaningful for L2 cache alone.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    this.l2Cache.returnBlock(cacheKey, block);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @VisibleForTesting<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public int getRefCount(BlockCacheKey cacheKey) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return (this.l2Cache instanceof BucketCache)<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        ? ((BucketCache) this.l2Cache).getRefCount(cacheKey) : 0;<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">155</span>    public CacheStats getLruCacheStats() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      return this.lruCacheStats;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public CacheStats getBucketCacheStats() {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return this.bucketCacheStats;<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>    @Override<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    public long getDataMissCount() {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      return lruCacheStats.getDataMissCount() + bucketCacheStats.getDataMissCount();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    @Override<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    public long getLeafIndexMissCount() {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      return lruCacheStats.getLeafIndexMissCount() + bucketCacheStats.getLeafIndexMissCount();<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>    @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    public long getBloomChunkMissCount() {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      return lruCacheStats.getBloomChunkMissCount() + bucketCacheStats.getBloomChunkMissCount();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>    @Override<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    public long getMetaMissCount() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      return lruCacheStats.getMetaMissCount() + bucketCacheStats.getMetaMissCount();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>    @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    public long getRootIndexMissCount() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      return lruCacheStats.getRootIndexMissCount() + bucketCacheStats.getRootIndexMissCount();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    @Override<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    public long getIntermediateIndexMissCount() {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      return lruCacheStats.getIntermediateIndexMissCount() +<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          bucketCacheStats.getIntermediateIndexMissCount();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    @Override<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    public long getFileInfoMissCount() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      return lruCacheStats.getFileInfoMissCount() + bucketCacheStats.getFileInfoMissCount();<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>    @Override<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    public long getGeneralBloomMetaMissCount() {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      return lruCacheStats.getGeneralBloomMetaMissCount() +<a name="line.201"></a>
+<span class="sourceLineNo">202</span>          bucketCacheStats.getGeneralBloomMetaMissCount();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>    @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    public long getDeleteFamilyBloomMissCount() {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      return lruCacheStats.getDeleteFamilyBloomMissCount() +<a name="line.207"></a>
+<span class="sourceLineNo">208</span>          bucketCacheStats.getDeleteFamilyBloomMissCount();<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>    @Override<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    public long getTrailerMissCount() {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      return lruCacheStats.getTrailerMissCount() + bucketCacheStats.getTrailerMissCount();<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>    @Override<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    public long getDataHitCount() {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      return lruCacheStats.getDataHitCount() + bucketCacheStats.getDataHitCount();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>    @Override<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    public long getLeafIndexHitCount() {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      return lruCacheStats.getLeafIndexHitCount() + bucketCacheStats.getLeafIndexHitCount();<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public long getBloomChunkHitCount() {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      return lruCacheStats.getBloomChunkHitCount() + bucketCacheStats.getBloomChunkHitCount();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>    @Override<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    public long getMetaHitCount() {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      return lruCacheStats.getMetaHitCount() + bucketCacheStats.getMetaHitCount();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    @Override<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    public long getRootIndexHitCount() {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      return lruCacheStats.getRootIndexHitCount() + bucketCacheStats.getRootIndexHitCount();<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    public long getIntermediateIndexHitCount() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      return lruCacheStats.getIntermediateIndexHitCount() +<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          bucketCacheStats.getIntermediateIndexHitCount();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>    @Override<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    public long getFileInfoHitCount() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      return lruCacheStats.getFileInfoHitCount() + bucketCacheStats.getFileInfoHitCount();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    @Override<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    public long getGeneralBloomMetaHitCount() {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      return lruCacheStats.getGeneralBloomMetaHitCount() +<a name="line.254"></a>
+<span class="sourceLineNo">255</span>          bucketCacheStats.getGeneralBloomMetaHitCount();<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>    @Override<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    public long getDeleteFamilyBloomHitCount() {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      return lruCacheStats.getDeleteFamilyBloomHitCount() +<a name="line.260"></a>
+<span class="sourceLineNo">261</span>          bucketCacheStats.getDeleteFamilyBloomHitCount();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    @Override<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    public long getTrailerHitCount() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      return lruCacheStats.getTrailerHitCount() + bucketCacheStats.getTrailerHitCount();<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>    @Override<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    public long getRequestCount() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      return lruCacheStats.getRequestCount()<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          + bucketCacheStats.getRequestCount();<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    @Override<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    public long getRequestCachingCount() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      return lruCacheStats.getRequestCachingCount()<a name="line.277"></a>
+<span class="sourceLineNo">278</span>          + bucketCacheStats.getRequestCachingCount();<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>    @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    public long getMissCount() {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      return lruCacheStats.getMissCount() + bucketCacheStats.getMissCount();<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>    @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    public long getPrimaryMissCount() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      return lruCacheStats.getPrimaryMissCount() + bucketCacheStats.getPrimaryMissCount();<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>    @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    public long getMissCachingCount() {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      return lruCacheStats.getMissCachingCount()<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          + bucketCacheStats.getMissCachingCount();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    public long getHitCount() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      return lruCacheStats.getHitCount() + bucketCacheStats.getHitCount();<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>    @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    public long getPrimaryHitCount() {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      return lruCacheStats.getPrimaryHitCount() + bucketCacheStats.getPrimaryHitCount();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    @Override<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    public long getHitCachingCount() {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      return lruCacheStats.getHitCachingCount()<a name="line.308"></a>
+<span class="sourceLineNo">309</span>          + bucketCacheStats.getHitCachingCount();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    public long getEvictionCount() {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      return lruCacheStats.getEvictionCount()<a name="line.314"></a>
+<span class="sourceLineNo">315</span>          + bucketCacheStats.getEvictionCount();<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>    @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    public long getEvictedCount() {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      return lruCacheStats.getEvictedCount()<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          + bucketCacheStats.getEvictedCount();<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>    @Override<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    public long getPrimaryEvictedCount() {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      return lruCacheStats.getPrimaryEvictedCount()<a name="line.326"></a>
+<span class="sourceLineNo">327</span>          + bucketCacheStats.getPrimaryEvictedCount();<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>    @Override<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    public void rollMetricsPeriod() {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      lruCacheStats.rollMetricsPeriod();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      bucketCacheStats.rollMetricsPeriod();<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>    @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    public long getFailedInserts() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      return lruCacheStats.getFailedInserts() + bucketCacheStats.getFailedInserts();<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>    @Override<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    public long getSumHitCountsPastNPeriods() {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      return lruCacheStats.getSumHitCountsPastNPeriods()<a name="line.343"></a>
+<span class="sourceLineNo">344</span>          + bucketCacheStats.getSumHitCountsPastNPeriods();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    <a name="line.346"></a>
+<span class="sourceLineNo">347</span>    @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    public long getSumRequestCountsPastNPeriods() {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      return lruCacheStats.getSumRequestCountsPastNPeriods()<a name="line.349"></a>
+<span class="sourceLineNo">350</span>          + bucketCacheStats.getSumRequestCountsPastNPeriods();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    <a name="line.352"></a>
+<span class="sourceLineNo">353</span>    @Override<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    public long getSumHitCachingCountsPastNPeriods() {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      return lruCacheStats.getSumHitCachingCountsPastNPeriods()<a name="line.355"></a>
+<span class="sourceLineNo">356</span>          + bucketCacheStats.getSumHitCachingCountsPastNPeriods();<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 long getSumRequestCachingCountsPastNPeriods() {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      return lruCacheStats.getSumRequestCachingCountsPastNPeriods()<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          + bucketCacheStats.getSumRequestCachingCountsPastNPeriods();<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<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>  @Override<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  public Iterator&lt;CachedBlock&gt; iterator() {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    return new BlockCachesIterator(getBlockCaches());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  public BlockCache[] getBlockCaches() {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    return new BlockCache [] {this.onHeapCache, this.l2Cache};<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>  @Override<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  public void setMaxSize(long size) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    this.onHeapCache.setMaxSize(size);<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>  @Override<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public void returnBlock(BlockCacheKey cacheKey, Cacheable block) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    // returnBlock is meaningful for L2 cache alone.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    this.l2Cache.returnBlock(cacheKey, block);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @VisibleForTesting<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public int getRefCount(BlockCacheKey cacheKey) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return (this.l2Cache instanceof BucketCache)<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        ? ((BucketCache) this.l2Cache).getRefCount(cacheKey) : 0;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>  public LruBlockCache getOnHeapCache() {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    return onHeapCache;<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>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
index 0961bec..3196572 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -481,7 +481,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT">ABORT_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT_TASK">ABORT_TIMEOUT_TASK</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterId">clusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/reg
 ionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#le
 ases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regions
 erver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescripto
 rs">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST_SKIP_REPORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT">ABORT_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT_TASK">ABORT_TIMEOUT_TASK</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterId">clusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HReg
 ionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#leases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</
 a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescriptors">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST
 _SKIP_REPORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
 </ul>
 </li>
 </ul>
@@ -1467,7 +1467,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>,
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreServi
 ce</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfigurationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnec
 tion--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/re
 gionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTables</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../
 ../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a
  href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getTableDescriptors--">getTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</
 a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreato
 r</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChang
 e-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</
 a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/h
 base/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>,
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getBlockCache--">getBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService
 </a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfigurationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnecti
 on--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regi
 onserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop
 /hbase/regionserver/HRegionServer.html#getMobFileCache--">getMobFileCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTables</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../
 org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hba
 se/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/
 apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getTableDescriptors--">getTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../
 ../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionC
 leanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.h
 tml#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
index b1098db..6da57e3 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMasterCommandLine.LocalHMaster.html
@@ -198,7 +198,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" tit
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT">ABORT_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT_TASK">ABORT_TIMEOUT_TASK</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheConfig">cacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterId">clusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/reg
 ionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#le
 ases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regions
 erver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescripto
 rs">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST_SKIP_REPORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT">ABORT_TIMEOUT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#ABORT_TIMEOUT_TASK">ABORT_TIMEOUT_TASK</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cacheFlusher">cacheFlusher</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterConnection">clusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterId">clusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clusterStatusTracker">clusterStatusTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#compactSplitThread">compactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#conf">conf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HReg
 ionServer.html#configurationManager">configurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#csm">csm</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executorService">executorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fs">fs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsOk">fsOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#fsUtilizationChore">fsUtilizationChore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#hMemManager">hMemManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#infoServer">infoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#leases">leases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#lock">lock</
 a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#MASTER_HOSTNAME_KEY">MASTER_HOSTNAME_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegions">movedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#numRegionsToReport">numRegionsToReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onlineRegions">onlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionFavoredNodesMap">regionFavoredNodesMap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#REGIONSERVER">REGIONSERVER</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionsInTransitionInRS">regionsInTransitionInRS</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/regionserver/HRegionServer.html#replicationSinkHandler">replicationSinkHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#replicationSourceHandler">replicationSourceHandler</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#rpcServices">rpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#secureBulkLoadManager">secureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#serverName">serverName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sleeper">sleeper</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#startcode">startcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tableDescriptors">tableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#TEST
 _SKIP_REPORTING_TRANSITION">TEST_SKIP_REPORTING_TRANSITION</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#threadWakeFrequency">threadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#useThisHostnameInstead">useThisHostnameInstead</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFactory">walFactory</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walFs">walFs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRoller">walRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#zooKeeper">zooKeeper</a></code></li>
 </ul>
 </li>
 </ul>
@@ -254,7 +254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>,
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCacheConfig--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreServi
 ce</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfigurationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnec
 tion--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/re
 gionserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hado
 op/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTables</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../
 ../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a
  href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getTableDescriptors--">getTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</
 a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreato
 r</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionCleanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChang
 e-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</
 a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/h
 base/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-">abort</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">addRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#addToMovedRegions-java.lang.String-org.apache.hadoop.hbase.ServerName-long-">addToMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#checkFileSystem--">checkFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#cleanMovedRegions--">cleanMovedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#clearRegionBlockCache-org.apache.hadoop.hbase.regionserver.Region-">clearRegionBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAllRegions-boolean-">closeAllRegions</a
 >, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeAndOfflineRegionForSplitOrMerge-java.util.List-">closeAndOfflineRegionForSplitOrMerge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#closeRegion-java.lang.String-boolean-org.apache.hadoop.hbase.ServerName-">closeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#constructRegionServer-java.lang.Class-org.apache.hadoop.conf.Configuration-">constructRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#convertThrowableToIOE-java.lang.Throwable-java.lang.String-">convertThrowableToIOE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createConnection-org.apache.hadoop.conf.Configuration-">createConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionLoad-java.lang.String-">createRegionLoad</a>,
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub--">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#createRegionServerStatusStub-boolean-">createRegionServerStatusStub</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#execRegionServerService-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest-">execRegionServerService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#executeProcedure-long-org.apache.hadoop.hbase.procedure2.RSProcedureCallable-">executeProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getBlockCache--">getBlockCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getChoreService--">getChoreService
 </a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterConnection--">getClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactionRequestor--">getCompactionRequestor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCompactSplitThread--">getCompactSplitThread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConfigurationManager--">getConfigurationManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getConnecti
 on--">getConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getCoordinatedStateManager--">getCoordinatedStateManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getEventLoopGroupConfig--">getEventLoopGroupConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getExecutorService--">getExecutorService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFavoredNodesForRegion-java.lang.String-">getFavoredNodesForRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushPressure--">getFlushPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFlushRequester--">getFlushRequester</a>, <a href="../../../../../org/apache/hadoop/hbase/regi
 onserver/HRegionServer.html#getFlushThroughputController--">getFlushThroughputController</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getFsTableDescriptors--">getFsTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getInfoServer--">getInfoServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLastSequenceId-byte:A-">getLastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getLeases--">getLeases</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMasterAddressTracker--">getMasterAddressTracker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetrics--">getMetrics</a>, <a href="../../../../../org/apache/hadoop
 /hbase/regionserver/HRegionServer.html#getMobFileCache--">getMobFileCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMostLoadedRegions--">getMostLoadedRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNonceManager--">getNonceManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getNumberOfOnlineRegions--">getNumberOfOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegion-byte:A-">getOnlineRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegionsLocalContext--">getOnlineRegionsLocalContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineTables--">getOnlineTables</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-byte:A-">getRegion</a>, <a href="../../../../../
 org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegion-java.lang.String-">getRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionBlockLocations-java.lang.String-">getRegionBlockLocations</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-byte:A-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionByEncodedName-java.lang.String-">getRegionByEncodedName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions--">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegions-org.apache.hadoop.hbase.TableName-">getRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerAccounting--">getRegionServerAccounting</a>, <a href="../../../../../org/apache/hadoop/hba
 se/regionserver/HRegionServer.html#getRegionServerCoprocessorHost--">getRegionServerCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerCoprocessors--">getRegionServerCoprocessors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerMetrics--">getRegionServerMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSinkService--">getReplicationSinkService</a>, <a href="../../../../../org/
 apache/hadoop/hbase/regionserver/HRegionServer.html#getReplicationSourceService--">getReplicationSourceService</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRootDir--">getRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRpcServer--">getRpcServer</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getRSRpcServices--">getRSRpcServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getStartcode--">getStartcode</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getTableDescriptors--">getTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getThreadWakeFrequency--">getThreadWakeFrequency</a>, <a href="../../../../
 ../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALFileSystem--">getWALFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalRoller--">getWalRoller</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALRootDir--">getWALRootDir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWALs--">getWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">handleReportForDutyResponse</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/regionserver/HRegionServer.html#initializeMemStoreChunkCreator--">initializeMemStoreChunkCreator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isAborted--">isAborted</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isClusterUp--">isClusterUp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isOnline--">isOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isShutDown--">isShutDown</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopped--">isStopped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#isStopping--">isStopping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#kill--">kill</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#movedRegionCleanerPeriod--">movedRegionC
 leanerPeriod</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#remoteProcedureComplete-long-java.lang.Throwable-">remoteProcedureComplete</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#removeRegion-org.apache.hadoop.hbase.regionserver.HRegion-org.apache.hadoop.hbase.ServerName-">removeRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.h
 tml#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#sendShutdownInterrupt--">sendShutdownInterrupt</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#setupClusterConnection--">setupClusterConnection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stop-java.lang.String-boolean-org.apache.hadoop.hbase.security.User-">stop</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/regionserver/HRegionServer.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#tryRegionServerReport-long-long-">tryRegionServerReport</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#unassign-byte:A-">unassign</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateConfiguration--">updateConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#updateRegionFavoredNodesMapping-java.lang.String-java.util.List-">updateRegionFavoredNodesMapping</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#waitForServerOnline--">waitForServerOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#walRollRequestFinished--">walRollRequestFinished</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.HasThread">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html b/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
index 0b9b094..b6e6058 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
@@ -384,7 +384,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.149">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.152">stop</a>()</pre>
 </li>
 </ul>
 <a name="refresh--">
@@ -393,7 +393,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>refresh</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.153">refresh</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.156">refresh</a>()</pre>
 </li>
 </ul>
 <a name="nodeChildrenChanged-java.lang.String-">
@@ -402,7 +402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>nodeChildrenChanged</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.190">nodeChildrenChanged</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;path)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.193">nodeChildrenChanged</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;path)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.html#nodeChildrenChanged-java.lang.String-">ZKListener</a></code></span></div>
 <div class="block">Called when an existing node has a child node added or removed.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
index 94908b9..f599247 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1167">ServerManager.FlushedSequenceIdFlusher</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1170">ServerManager.FlushedSequenceIdFlusher</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FlushedSequenceIdFlusher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1169">FlushedSequenceIdFlusher</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;name,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1172">FlushedSequenceIdFlusher</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;name,
                                 int&nbsp;p)</pre>
 </li>
 </ul>
@@ -219,7 +219,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1174">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1177">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 d1b845f..b3c08b5 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.3078">HRegion.BatchOperation</a>&lt;T&gt;
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3112">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.3079">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.3113">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.3080">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.3114">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.3081">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.3115">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.3083">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.3117">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.3085">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.3119">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.3086">nextIndexToProcess</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3120">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.3087">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.3121">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.3089">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.3123">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.3090">atomic</a></pre>
+<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3124">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.3092">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.3126">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.3119">visitBatchOperations</a>(boolean&nbsp;pendingOnly,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3153">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.3131">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.3165">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.3133">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.3167">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.3135">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.3169">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.3140">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.3174">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.3142">isInReplay</a>()</pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3176">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.3144">getOrigLogSeqNum</a>()</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3178">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.3146">startRegionOperation</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3180">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.3148">closeRegionOperation</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3182">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.3157">checkAndPrepare</a>()
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3191">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.3163">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.3197">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.3169">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.3203">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.3175">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.3209">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.3179">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.3213">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.3199">isDone</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3233">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.3203">size</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3237">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.3207">isOperationPending</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3241">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.3211">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.3245">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.3216">isAtomic</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3250">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.3226">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.3260">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.3238">checkAndPrepareMutation</a>(int&nbsp;index,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3272">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.3300">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.3334">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.3384">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.3418">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.3394">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.3428">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.3443">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.3477">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.3451">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.3485">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.3457">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.3491">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.3494">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.3528">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/4f8b8424/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 9a1cb55..2fc60ee 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.6082">HRegion.BulkLoadListener</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.6116">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.6090">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.6124">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.6099">doneBulkLoad</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.6133">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.6107">failedBulkLoad</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html#line.6141">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/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
index 844930d..6df92ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2246">HRegion.FlushResult.Result</a>
+<pre>public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2280">HRegion.FlushResult.Result</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&gt;</pre>
 </li>
 </ul>
@@ -216,7 +216,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FLUSHED_NO_COMPACTION_NEEDED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2247">FLUSHED_NO_COMPACTION_NEEDED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2281">FLUSHED_NO_COMPACTION_NEEDED</a></pre>
 </li>
 </ul>
 <a name="FLUSHED_COMPACTION_NEEDED">
@@ -225,7 +225,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>FLUSHED_COMPACTION_NEEDED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2248">FLUSHED_COMPACTION_NEEDED</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2282">FLUSHED_COMPACTION_NEEDED</a></pre>
 </li>
 </ul>
 <a name="CANNOT_FLUSH_MEMSTORE_EMPTY">
@@ -234,7 +234,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>CANNOT_FLUSH_MEMSTORE_EMPTY</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2251">CANNOT_FLUSH_MEMSTORE_EMPTY</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2285">CANNOT_FLUSH_MEMSTORE_EMPTY</a></pre>
 </li>
 </ul>
 <a name="CANNOT_FLUSH">
@@ -243,7 +243,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CANNOT_FLUSH</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2252">CANNOT_FLUSH</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.2286">CANNOT_FLUSH</a></pre>
 </li>
 </ul>
 </li>
@@ -260,7 +260,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.580">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.582">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -280,7 +280,7 @@ for (HRegion.FlushResult.Result c : HRegion.FlushResult.Result.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.580">valueOf</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;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html#line.582">valueOf</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;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
index cce0fb4..6972ff0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.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.2245">HRegion.FlushResult</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2279">HRegion.FlushResult</a></pre>
 </li>
 </ul>
 </div>
@@ -180,7 +180,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>getResult</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2256">getResult</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2290">getResult</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the detailed result code</dd>
@@ -193,7 +193,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>isFlushSucceeded</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2259">isFlushSucceeded</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2293">isFlushSucceeded</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the memstores were flushed, else false</dd>
@@ -206,7 +206,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isCompactionNeeded</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2262">isCompactionNeeded</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#line.2296">isCompactionNeeded</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if the flush requested a compaction, else false</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
index edbac4e..7e5268f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.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.471">HRegion.FlushResultImpl</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.475">HRegion.FlushResultImpl</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/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a></pre>
 <div class="block">Objects from this class are created when flushing to describe all the different states that
@@ -273,7 +273,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockList">
 <li class="blockList">
 <h4>result</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.472">result</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.476">result</a></pre>
 </li>
 </ul>
 <a name="failureReason">
@@ -282,7 +282,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockList">
 <li class="blockList">
 <h4>failureReason</h4>
-<pre>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/HRegion.FlushResultImpl.html#line.473">failureReason</a></pre>
+<pre>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/HRegion.FlushResultImpl.html#line.477">failureReason</a></pre>
 </li>
 </ul>
 <a name="flushSequenceId">
@@ -291,7 +291,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockList">
 <li class="blockList">
 <h4>flushSequenceId</h4>
-<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.474">flushSequenceId</a></pre>
+<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.478">flushSequenceId</a></pre>
 </li>
 </ul>
 <a name="wroteFlushWalMarker">
@@ -300,7 +300,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>wroteFlushWalMarker</h4>
-<pre>final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.475">wroteFlushWalMarker</a></pre>
+<pre>final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.479">wroteFlushWalMarker</a></pre>
 </li>
 </ul>
 </li>
@@ -317,7 +317,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockList">
 <li class="blockList">
 <h4>FlushResultImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.484">FlushResultImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;result,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.488">FlushResultImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;result,
                 long&nbsp;flushSequenceId)</pre>
 <div class="block">Convenience constructor to use when the flush is successful, the failure message is set to
  null.</div>
@@ -335,7 +335,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockList">
 <li class="blockList">
 <h4>FlushResultImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.495">FlushResultImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;result,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.499">FlushResultImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;result,
                 <a href="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;failureReason,
                 boolean&nbsp;wroteFlushMarker)</pre>
 <div class="block">Convenience constructor to use when we cannot flush.</div>
@@ -352,7 +352,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FlushResultImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.506">FlushResultImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;result,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.510">FlushResultImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;result,
                 long&nbsp;flushSequenceId,
                 <a href="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;failureReason,
                 boolean&nbsp;wroteFlushMarker)</pre>
@@ -379,7 +379,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockList">
 <li class="blockList">
 <h4>isFlushSucceeded</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.520">isFlushSucceeded</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.524">isFlushSucceeded</a>()</pre>
 <div class="block">Convenience method, the equivalent of checking if result is
  FLUSHED_NO_COMPACTION_NEEDED or FLUSHED_NO_COMPACTION_NEEDED.</div>
 <dl>
@@ -396,7 +396,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockList">
 <li class="blockList">
 <h4>isCompactionNeeded</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.530">isCompactionNeeded</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.534">isCompactionNeeded</a>()</pre>
 <div class="block">Convenience method, the equivalent of checking if result is FLUSHED_COMPACTION_NEEDED.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -412,7 +412,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <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/HRegion.FlushResultImpl.html#line.535">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.FlushResultImpl.html#line.539">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>
@@ -425,7 +425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.543">getResult</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult.Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html#line.547">getResult</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html#getResult--">getResult</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a></code></dd>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 11e2a63..886c36a 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <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" />
@@ -294,7 +294,7 @@
 <td>3823</td>
 <td>0</td>
 <td>0</td>
-<td>14724</td></tr></table></div>
+<td>14663</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -3282,7 +3282,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.CacheConfig.java">org/apache/hadoop/hbase/io/hfile/CacheConfig.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>6</td></tr>
+<td>1</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.CacheStats.java">org/apache/hadoop/hbase/io/hfile/CacheStats.java</a></td>
 <td>0</td>
@@ -3382,7 +3382,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.java">org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>52</td></tr>
+<td>26</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.HFileScanner.java">org/apache/hadoop/hbase/io/hfile/HFileScanner.java</a></td>
 <td>0</td>
@@ -3439,85 +3439,75 @@
 <td>0</td>
 <td>13</td></tr>
 <tr class="a">
-<td><a href="#org.apache.hadoop.hbase.io.hfile.TestBlockCacheReporting.java">org/apache/hadoop/hbase/io/hfile/TestBlockCacheReporting.java</a></td>
+<td><a href="#org.apache.hadoop.hbase.io.hfile.TestCacheConfig.java">org/apache/hadoop/hbase/io/hfile/TestCacheConfig.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
 <tr class="b">
-<td><a href="#org.apache.hadoop.hbase.io.hfile.TestCacheConfig.java">org/apache/hadoop/hbase/io/hfile/TestCacheConfig.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>3</td></tr>
-<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestCacheOnWrite.java">org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="b">
+<td>2</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestCachedBlockQueue.java">org/apache/hadoop/hbase/io/hfile/TestCachedBlockQueue.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.io.hfile.TestChecksum.java">org/apache/hadoop/hbase/io/hfile/TestChecksum.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.io.hfile.TestFixedFileTrailer.java">org/apache/hadoop/hbase/io/hfile/TestFixedFileTrailer.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.io.hfile.TestForceCacheImportantBlocks.java">org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>3</td></tr>
-<tr class="b">
+<td>2</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFile.java">org/apache/hadoop/hbase/io/hfile/TestHFile.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>27</td></tr>
-<tr class="a">
+<td>21</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFileBlock.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestHFileBlockIndex.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlockIndex.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.io.hfile.TestHFileBlockPositionalRead.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlockPositionalRead.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.io.hfile.TestHFileDataBlockEncoder.java">org/apache/hadoop/hbase/io/hfile/TestHFileDataBlockEncoder.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.io.hfile.TestHFileWriterV3.java">org/apache/hadoop/hbase/io/hfile/TestHFileWriterV3.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.io.hfile.TestLruBlockCache.java">org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
-<td><a href="#org.apache.hadoop.hbase.io.hfile.TestPrefetch.java">org/apache/hadoop/hbase/io/hfile/TestPrefetch.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>2</td></tr>
 <tr class="b">
-<td><a href="#org.apache.hadoop.hbase.io.hfile.TestScannerFromBucketCache.java">org/apache/hadoop/hbase/io/hfile/TestScannerFromBucketCache.java</a></td>
+<td><a href="#org.apache.hadoop.hbase.io.hfile.TestPrefetch.java">org/apache/hadoop/hbase/io/hfile/TestPrefetch.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
+<td>1</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.TestScannerSelectionUsingKeyRange.java">org/apache/hadoop/hbase/io/hfile/TestScannerSelectionUsingKeyRange.java</a></td>
 <td>0</td>
@@ -5214,4431 +5204,4426 @@
 <td>0</td>
 <td>2</td></tr>
 <tr class="b">
-<td><a href="#org.apache.hadoop.hbase.mob.MobCacheConfig.java">org/apache/hadoop/hbase/mob/MobCacheConfig.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>2</td></tr>
-<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mob.MobConstants.java">org/apache/hadoop/hbase/mob/MobConstants.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.mob.MobFile.java">org/apache/hadoop/hbase/mob/MobFile.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.mob.MobFileCache.java">org/apache/hadoop/hbase/mob/MobFileCache.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>2</td></tr>
-<tr class="b">
+<td>1</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mob.MobFileName.java">org/apache/hadoop/hbase/mob/MobFileName.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.mob.MobTestUtil.java">org/apache/hadoop/hbase/mob/MobTestUtil.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.mob.MobUtils.java">org/apache/hadoop/hbase/mob/MobUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mob.TestDefaultMobStoreFlusher.java">org/apache/hadoop/hbase/mob/TestDefaultMobStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>35</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.mob.TestExpiredMobFileCleaner.java">org/apache/hadoop/hbase/mob/TestExpiredMobFileCleaner.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.mob.compactions.MobCompactor.java">org/apache/hadoop/hbase/mob/compactions/MobCompactor.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.mob.compactions.PartitionedMobCompactionRequest.java">org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactionRequest.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.mob.compactions.PartitionedMobCompactor.java">org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactor.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.mob.compactions.TestMobCompactor.java">org/apache/hadoop/hbase/mob/compactions/TestMobCompactor.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.mob.compactions.TestPartitionedMobCompactor.java">org/apache/hadoop/hbase/mob/compactions/TestPartitionedMobCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.monitoring.LogMonitoring.java">org/apache/hadoop/hbase/monitoring/LogMonitoring.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.monitoring.MemoryBoundedLogMessageBuffer.java">org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.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.monitoring.MonitoredRPCHandlerImpl.java">org/apache/hadoop/hbase/monitoring/MonitoredRPCHandlerImpl.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.monitoring.MonitoredTaskImpl.java">org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.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.monitoring.StateDumpServlet.java">org/apache/hadoop/hbase/monitoring/StateDumpServlet.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.monitoring.TaskMonitor.java">org/apache/hadoop/hbase/monitoring/TaskMonitor.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.monitoring.TestTaskMonitor.java">org/apache/hadoop/hbase/monitoring/TestTaskMonitor.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.monitoring.ThreadMonitoring.java">org/apache/hadoop/hbase/monitoring/ThreadMonitoring.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.mttr.IntegrationTestMTTR.java">org/apache/hadoop/hbase/mttr/IntegrationTestMTTR.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.namespace.NamespaceStateManager.java">org/apache/hadoop/hbase/namespace/NamespaceStateManager.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.namespace.NamespaceTableAndRegionInfo.java">org/apache/hadoop/hbase/namespace/NamespaceTableAndRegionInfo.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.namespace.TestNamespaceAuditor.java">org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.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.net.Address.java">org/apache/hadoop/hbase/net/Address.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.net.TestAddress.java">org/apache/hadoop/hbase/net/TestAddress.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.nio.ByteBuff.java">org/apache/hadoop/hbase/nio/ByteBuff.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.nio.MultiByteBuff.java">org/apache/hadoop/hbase/nio/MultiByteBuff.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>29</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.nio.SingleByteBuff.java">org/apache/hadoop/hbase/nio/SingleByteBuff.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.procedure.MasterProcedureManager.java">org/apache/hadoop/hbase/procedure/MasterProcedureManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.Procedure.java">org/apache/hadoop/hbase/procedure/Procedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.ProcedureCoordinator.java">org/apache/hadoop/hbase/procedure/ProcedureCoordinator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs.java">org/apache/hadoop/hbase/procedure/ProcedureCoordinatorRpcs.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.procedure.ProcedureManagerHost.java">org/apache/hadoop/hbase/procedure/ProcedureManagerHost.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.procedure.ProcedureMember.java">org/apache/hadoop/hbase/procedure/ProcedureMember.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.procedure.ProcedureMemberRpcs.java">org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.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.procedure.RegionServerProcedureManager.java">org/apache/hadoop/hbase/procedure/RegionServerProcedureManager.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.procedure.SimpleMasterProcedureManager.java">org/apache/hadoop/hbase/procedure/SimpleMasterProcedureManager.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.procedure.SimpleRSProcedureManager.java">org/apache/hadoop/hbase/procedure/SimpleRSProcedureManager.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.procedure.Subprocedure.java">org/apache/hadoop/hbase/procedure/Subprocedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.TestProcedureCoordinator.java">org/apache/hadoop/hbase/procedure/TestProcedureCoordinator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.procedure.TestProcedureDescriber.java">org/apache/hadoop/hbase/procedure/TestProcedureDescriber.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.procedure.TestProcedureMember.java">org/apache/hadoop/hbase/procedure/TestProcedureMember.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.procedure.TestZKProcedure.java">org/apache/hadoop/hbase/procedure/TestZKProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>27</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure.TestZKProcedureControllers.java">org/apache/hadoop/hbase/procedure/TestZKProcedureControllers.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.procedure.ZKProcedureCoordinator.java">org/apache/hadoop/hbase/procedure/ZKProcedureCoordinator.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.procedure.ZKProcedureMemberRpcs.java">org/apache/hadoop/hbase/procedure/ZKProcedureMemberRpcs.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.procedure.ZKProcedureUtil.java">org/apache/hadoop/hbase/procedure/ZKProcedureUtil.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.procedure.flush.FlushTableSubprocedure.java">org/apache/hadoop/hbase/procedure/flush/FlushTableSubprocedure.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.procedure.flush.MasterFlushTableProcedureManager.java">org/apache/hadoop/hbase/procedure/flush/MasterFlushTableProcedureManager.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.procedure.flush.RegionServerFlushTableProcedureManager.java">org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.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.procedure2.AbstractProcedureScheduler.java">org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.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.procedure2.BadProcedureException.java">org/apache/hadoop/hbase/procedure2/BadProcedureException.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.procedure2.LockedResource.java">org/apache/hadoop/hbase/procedure2/LockedResource.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.procedure2.Procedure.java">org/apache/hadoop/hbase/procedure2/Procedure.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.procedure2.ProcedureDeque.java">org/apache/hadoop/hbase/procedure2/ProcedureDeque.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.procedure2.ProcedureException.java">org/apache/hadoop/hbase/procedure2/ProcedureException.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.procedure2.ProcedureExecutor.java">org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.procedure2.ProcedureScheduler.java">org/apache/hadoop/hbase/procedure2/ProcedureScheduler.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.procedure2.ProcedureTestingUtility.java">org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.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.procedure2.ProcedureUtil.java">org/apache/hadoop/hbase/procedure2/ProcedureUtil.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.procedure2.RemoteProcedureDispatcher.java">org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.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.procedure2.RemoteProcedureException.java">org/apache/hadoop/hbase/procedure2/RemoteProcedureException.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.procedure2.RootProcedureState.java">org/apache/hadoop/hbase/procedure2/RootProcedureState.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.procedure2.StateMachineProcedure.java">org/apache/hadoop/hbase/procedure2/StateMachineProcedure.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.procedure2.TestProcedureExecution.java">org/apache/hadoop/hbase/procedure2/TestProcedureExecution.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.procedure2.TestProcedureMetrics.java">org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.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.procedure2.TestProcedureNonce.java">org/apache/hadoop/hbase/procedure2/TestProcedureNonce.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.procedure2.TestProcedureRecovery.java">org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.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.procedure2.TestProcedureReplayOrder.java">org/apache/hadoop/hbase/procedure2/TestProcedureReplayOrder.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.procedure2.TestProcedureSchedulerConcurrency.java">org/apache/hadoop/hbase/procedure2/TestProcedureSchedulerConcurrency.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.procedure2.TestProcedureSuspended.java">org/apache/hadoop/hbase/procedure2/TestProcedureSuspended.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.procedure2.TestProcedureToString.java">org/apache/hadoop/hbase/procedure2/TestProcedureToString.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.procedure2.TestStateMachineProcedure.java">org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.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.procedure2.TestYieldProcedures.java">org/apache/hadoop/hbase/procedure2/TestYieldProcedures.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.procedure2.store.ProcedureStore.java">org/apache/hadoop/hbase/procedure2/store/ProcedureStore.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.procedure2.store.ProcedureStoreBase.java">org/apache/hadoop/hbase/procedure2/store/ProcedureStoreBase.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.procedure2.store.ProcedureStoreTracker.java">org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.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.procedure2.store.TestProcedureStoreTracker.java">org/apache/hadoop/hbase/procedure2/store/TestProcedureStoreTracker.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.procedure2.store.wal.ProcedureWALFile.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.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.procedure2.store.wal.ProcedureWALLoaderPerformanceEvaluation.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALLoaderPerformanceEvaluation.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.procedure2.store.wal.ProcedureWALPerformanceEvaluation.java">org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALPerformanceEvaluation.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.procedure2.store.wal.TestStressWALProcedureStore.java">org/apache/hadoop/hbase/procedure2/store/wal/TestStressWALProcedureStore.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.procedure2.store.wal.TestWALProcedureStore.java">org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.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.procedure2.store.wal.WALProcedureStore.java">org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.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.procedure2.util.DelayedUtil.java">org/apache/hadoop/hbase/procedure2/util/DelayedUtil.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.procedure2.util.StringUtils.java">org/apache/hadoop/hbase/procedure2/util/StringUtils.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.protobuf.ProtobufMagic.java">org/apache/hadoop/hbase/protobuf/ProtobufMagic.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.protobuf.ProtobufMessageConverter.java">org/apache/hadoop/hbase/protobuf/ProtobufMessageConverter.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.protobuf.ProtobufUtil.java">org/apache/hadoop/hbase/protobuf/ProtobufUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>115</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.protobuf.ReplicationProtbufUtil.java">org/apache/hadoop/hbase/protobuf/ReplicationProtbufUtil.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.protobuf.TestProtobufUtil.java">org/apache/hadoop/hbase/protobuf/TestProtobufUtil.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.protobuf.TestReplicationProtobuf.java">org/apache/hadoop/hbase/protobuf/TestReplicationProtobuf.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.quotas.ActivePolicyEnforcement.java">org/apache/hadoop/hbase/quotas/ActivePolicyEnforcement.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.quotas.AverageIntervalRateLimiter.java">org/apache/hadoop/hbase/quotas/AverageIntervalRateLimiter.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.quotas.DefaultOperationQuota.java">org/apache/hadoop/hbase/quotas/DefaultOperationQuota.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.quotas.FileSystemUtilizationChore.java">org/apache/hadoop/hbase/quotas/FileSystemUtilizationChore.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.quotas.FixedIntervalRateLimiter.java">org/apache/hadoop/hbase/quotas/FixedIntervalRateLimiter.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.quotas.GlobalQuotaSettings.java">org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.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.quotas.GlobalQuotaSettingsImpl.java">org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.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.quotas.NamespaceQuotaSnapshotStore.java">org/apache/hadoop/hbase/quotas/NamespaceQuotaSnapshotStore.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.quotas.NoopOperationQuota.java">org/apache/hadoop/hbase/quotas/NoopOperationQuota.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.quotas.NoopQuotaLimiter.java">org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.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.quotas.OperationQuota.java">org/apache/hadoop/hbase/quotas/OperationQuota.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.quotas.QuotaCache.java">org/apache/hadoop/hbase/quotas/QuotaCache.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.quotas.QuotaLimiterFactory.java">org/apache/hadoop/hbase/quotas/QuotaLimiterFactory.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.quotas.QuotaObserverChore.java">org/apache/hadoop/hbase/quotas/QuotaObserverChore.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.quotas.QuotaRetriever.java">org/apache/hadoop/hbase/quotas/QuotaRetriever.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.quotas.QuotaSettings.java">org/apache/hadoop/hbase/quotas/QuotaSettings.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.quotas.QuotaSettingsFactory.java">org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.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.quotas.QuotaState.java">org/apache/hadoop/hbase/quotas/QuotaState.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.quotas.QuotaTableUtil.java">org/apache/hadoop/hbase/quotas/QuotaTableUtil.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.quotas.QuotaUtil.java">org/apache/hadoop/hbase/quotas/QuotaUtil.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.quotas.RateLimiter.java">org/apache/hadoop/hbase/quotas/RateLimiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager.java">org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.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.quotas.RegionServerSpaceQuotaManager.java">org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.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.quotas.SnapshotQuotaObserverChore.java">org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.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.quotas.SpaceLimitSettings.java">org/apache/hadoop/hbase/quotas/SpaceLimitSettings.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.quotas.SpaceQuotaRefresherChore.java">org/apache/hadoop/hbase/quotas/SpaceQuotaRefresherChore.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.quotas.SpaceQuotaSnapshot.java">org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshot.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.quotas.SpaceQuotaSnapshotNotifier.java">org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.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.quotas.SpaceQuotaSnapshotNotifierFactory.java">org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifierFactory.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.quotas.SpaceQuotaSnapshotNotifierForTest.java">org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifierForTest.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.quotas.SpaceViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcement.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.quotas.SpaceViolationPolicyEnforcementFactory.java">org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcementFactory.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.quotas.TableQuotaSnapshotStore.java">org/apache/hadoop/hbase/quotas/TableQuotaSnapshotStore.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.quotas.TestFileSystemUtilizationChore.java">org/apache/hadoop/hbase/quotas/TestFileSystemUtilizationChore.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.quotas.TestNamespaceQuotaViolationStore.java">org/apache/hadoop/hbase/quotas/TestNamespaceQuotaViolationStore.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.quotas.TestQuotaFilter.java">org/apache/hadoop/hbase/quotas/TestQuotaFilter.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.quotas.TestQuotaObserverChoreWithMiniCluster.java">org/apache/hadoop/hbase/quotas/TestQuotaObserverChoreWithMiniCluster.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.quotas.TestQuotaSettingsFactory.java">org/apache/hadoop/hbase/quotas/TestQuotaSettingsFactory.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.quotas.TestQuotaStatusRPCs.java">org/apache/hadoop/hbase/quotas/TestQuotaStatusRPCs.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.quotas.TestQuotaThrottle.java">org/apache/hadoop/hbase/quotas/TestQuotaThrottle.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.quotas.TestRateLimiter.java">org/apache/hadoop/hbase/quotas/TestRateLimiter.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.quotas.TestSpaceQuotas.java">org/apache/hadoop/hbase/quotas/TestSpaceQuotas.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.quotas.TestTableQuotaViolationStore.java">org/apache/hadoop/hbase/quotas/TestTableQuotaViolationStore.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.quotas.TestTablesWithQuotas.java">org/apache/hadoop/hbase/quotas/TestTablesWithQuotas.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.quotas.ThrottleSettings.java">org/apache/hadoop/hbase/quotas/ThrottleSettings.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.quotas.TimeBasedLimiter.java">org/apache/hadoop/hbase/quotas/TimeBasedLimiter.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.quotas.UserQuotaState.java">org/apache/hadoop/hbase/quotas/UserQuotaState.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.quotas.policies.BaseViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/policies/BaseViolationPolicyEnforcement.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.quotas.policies.DefaultViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/policies/DefaultViolationPolicyEnforcement.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.quotas.policies.DisableTableViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/policies/DisableTableViolationPolicyEnforcement.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.quotas.policies.NoInsertsViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/policies/NoInsertsViolationPolicyEnforcement.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.quotas.policies.NoWritesCompactionsViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/policies/NoWritesCompactionsViolationPolicyEnforcement.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.quotas.policies.NoWritesViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/policies/NoWritesViolationPolicyEnforcement.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.quotas.policies.TestBulkLoadCheckingViolationPolicyEnforcement.java">org/apache/hadoop/hbase/quotas/policies/TestBulkLoadCheckingViolationPolicyEnforcement.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.AbstractMemStore.java">org/apache/hadoop/hbase/regionserver/AbstractMemStore.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.AbstractTestDateTieredCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/AbstractTestDateTieredCompactionPolicy.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.AnnotationReadingPriorityFunction.java">org/apache/hadoop/hbase/regionserver/AnnotationReadingPriorityFunction.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.BaseRowProcessor.java">org/apache/hadoop/hbase/regionserver/BaseRowProcessor.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.BusyRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/BusyRegionSplitPolicy.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.ByteBufferChunkKeyValue.java">org/apache/hadoop/hbase/regionserver/ByteBufferChunkKeyValue.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.CSLMImmutableSegment.java">org/apache/hadoop/hbase/regionserver/CSLMImmutableSegment.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.CellArrayImmutableSegment.java">org/apache/hadoop/hbase/regionserver/CellArrayImmutableSegment.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.CellArrayMap.java">org/apache/hadoop/hbase/regionserver/CellArrayMap.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.CellChunkMap.java">org/apache/hadoop/hbase/regionserver/CellChunkMap.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.CellFlatMap.java">org/apache/hadoop/hbase/regionserver/CellFlatMap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.CellSet.java">org/apache/hadoop/hbase/regionserver/CellSet.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.CellSink.java">org/apache/hadoop/hbase/regionserver/CellSink.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.ChangedReadersObserver.java">org/apache/hadoop/hbase/regionserver/ChangedReadersObserver.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.Chunk.java">org/apache/hadoop/hbase/regionserver/Chunk.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.ChunkCreator.java">org/apache/hadoop/hbase/regionserver/ChunkCreator.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.CompactSplit.java">org/apache/hadoop/hbase/regionserver/CompactSplit.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.CompactedHFilesDischargeHandler.java">org/apache/hadoop/hbase/regionserver/CompactedHFilesDischargeHandler.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.CompactedHFilesDischarger.java">org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.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.CompactingMemStore.java">org/apache/hadoop/hbase/regionserver/CompactingMemStore.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.CompactionPipeline.java">org/apache/hadoop/hbase/regionserver/CompactionPipeline.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.CompactionTool.java">org/apache/hadoop/hbase/regionserver/CompactionTool.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.CompositeImmutableSegment.java">org/apache/hadoop/hbase/regionserver/CompositeImmutableSegment.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.ConstantSizeRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.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.CreateRandomStoreFile.java">org/apache/hadoop/hbase/regionserver/CreateRandomStoreFile.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.DataBlockEncodingTool.java">org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.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.DateTieredStoreEngine.java">org/apache/hadoop/hbase/regionserver/DateTieredStoreEngine.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.DefaultHeapMemoryTuner.java">org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>31</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.DefaultMemStore.java">org/apache/hadoop/hbase/regionserver/DefaultMemStore.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.DefaultStoreFlusher.java">org/apache/hadoop/hbase/regionserver/DefaultStoreFlusher.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.DelegatingKeyValueScanner.java">org/apache/hadoop/hbase/regionserver/DelegatingKeyValueScanner.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.DelimitedKeyPrefixRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/DelimitedKeyPrefixRegionSplitPolicy.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.DisabledRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/DisabledRegionSplitPolicy.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.FavoredNodesForRegion.java">org/apache/hadoop/hbase/regionserver/FavoredNodesForRegion.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.FifoRpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/FifoRpcSchedulerFactory.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.FlushPolicyFactory.java">org/apache/hadoop/hbase/regionserver/FlushPolicyFactory.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.FlushRequestListener.java">org/apache/hadoop/hbase/regionserver/FlushRequestListener.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.FlushRequester.java">org/apache/hadoop/hbase/regionserver/FlushRequester.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.HMobStore.java">org/apache/hadoop/hbase/regionserver/HMobStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegion.java">org/apache/hadoop/hbase/regionserver/HRegion.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>209</td></tr>
-<tr class="a">
+<td>208</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionFileSystem.java">org/apache/hadoop/hbase/regionserver/HRegionFileSystem.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>47</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionServer.java">org/apache/hadoop/hbase/regionserver/HRegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>73</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.java">org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.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.HStore.java">org/apache/hadoop/hbase/regionserver/HStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>43</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HStoreFile.java">org/apache/hadoop/hbase/regionserver/HStoreFile.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.HeapMemoryManager.java">org/apache/hadoop/hbase/regionserver/HeapMemoryManager.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>11</td></tr>
-<tr class="a">
+<td>10</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HeapMemoryTuner.java">org/apache/hadoop/hbase/regionserver/HeapMemoryTuner.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.ImmutableSegment.java">org/apache/hadoop/hbase/regionserver/ImmutableSegment.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.IncreasingToUpperBoundRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.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.InternalScan.java">org/apache/hadoop/hbase/regionserver/InternalScan.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.InternalScanner.java">org/apache/hadoop/hbase/regionserver/InternalScanner.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.KeyPrefixRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/KeyPrefixRegionSplitPolicy.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.KeyValueHeap.java">org/apache/hadoop/hbase/regionserver/KeyValueHeap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.KeyValueScanner.java">org/apache/hadoop/hbase/regionserver/KeyValueScanner.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.LeaseException.java">org/apache/hadoop/hbase/regionserver/LeaseException.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.Leases.java">org/apache/hadoop/hbase/regionserver/Leases.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.LogRoller.java">org/apache/hadoop/hbase/regionserver/LogRoller.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.MemStore.java">org/apache/hadoop/hbase/regionserver/MemStore.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.MemStoreCompactor.java">org/apache/hadoop/hbase/regionserver/MemStoreCompactor.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.MemStoreFlusher.java">org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>29</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MemStoreLAB.java">org/apache/hadoop/hbase/regionserver/MemStoreLAB.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.MemStoreLABImpl.java">org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.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.MemStoreMergerSegmentsIterator.java">org/apache/hadoop/hbase/regionserver/MemStoreMergerSegmentsIterator.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.MemStoreSegmentsIterator.java">org/apache/hadoop/hbase/regionserver/MemStoreSegmentsIterator.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.MemStoreSnapshot.java">org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.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.MetricsRegion.java">org/apache/hadoop/hbase/regionserver/MetricsRegion.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.MetricsRegionServer.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServer.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.MetricsRegionServerWrapperImpl.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.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.MetricsTable.java">org/apache/hadoop/hbase/regionserver/MetricsTable.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.MetricsTableSource.java">org/apache/hadoop/hbase/regionserver/MetricsTableSource.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.MetricsTableWrapperAggregateImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.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.MetricsTableWrapperStub.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.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.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>64</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>3</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>5</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>14</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">
+<td>11</td></tr>
+<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">
+<td>15</td></tr>
+<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">
+<td>4</td></tr>
+<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.TestCleanupMetaWAL.java">org/apache/hadoop/hbase/regionserver/TestCleanupMetaWAL.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.TestClearRegionBlockCache.java">org/apache/hadoop/hbase/regionserver/TestClearRegionBlockCache.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.TestColumnSeeking.java">org/apache/hadoop/hbase/regionserver/TestColumnSeeking.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.TestCompactSplitThread.java">org/apache/hadoop/hbase/regionserver/TestCompactSplitThread.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.TestCompactingMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.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.TestCompactingToCellFlatMapMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.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.TestCompaction.java">org/apache/hadoop/hbase/regionserver/TestCompaction.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.TestCompactionState.java">org/apache/hadoop/hbase/regionserver/TestCompactionState.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.TestCompoundBloomFilter.java">org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.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.TestDateTieredCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicy.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.TestDateTieredCompactionPolicyOverflow.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicyOverflow.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.TestDefaultMemStore.java">org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<td>11</td></tr>
+<tr class="a">
 <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>29</td></tr>
-<tr class="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <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="b">
+<tr class="a">
 <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="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMinorCompaction.java">org/apache/hadoop/hbase/regionserver/TestMinorCompaction.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.TestMobStoreScanner.java">org/apache/hadoop/hbase/regionserver/TestMobStoreScanner.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.TestMultiColumnScanner.java">org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.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.TestMultiLogThreshold.java">org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.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.TestMultiVersionConcurrencyControl.java">org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.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.TestParallelPut.java">org/apache/hadoop/hbase/regionserver/TestParallelPut.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.TestPerColumnFamilyFlush.java">org/apache/hadoop/hbase/regionserver/TestPerColumnFamilyFlush.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.TestPriorityRpc.java">org/apache/hadoop/hbase/regionserver/TestPriorityRpc.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.TestQosFunction.java">org/apache/hadoop/hbase/regionserver/TestQosFunction.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.TestRSKilledWhenInitializing.java">org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.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.TestRecoveredEdits.java">org/apache/hadoop/hbase/regionserver/TestRecoveredEdits.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.TestRegionIncrement.java">org/apache/hadoop/hbase/regionserver/TestRegionIncrement.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.TestRegionInfoBuilder.java">org/apache/hadoop/hbase/regionserver/TestRegionInfoBuilder.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.TestRegionMergeTransactionOnCluster.java">org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.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.TestRegionOpen.java">org/apache/hadoop/hbase/regionserver/TestRegionOpen.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.TestRegionReplicaFailover.java">org/apache/hadoop/hbase/regionserver/TestRegionReplicaFailover.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.TestRegionReplicas.java">org/apache/hadoop/hbase/regionserver/TestRegionReplicas.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.TestRegionServerAbort.java">org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.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.TestRegionServerHostname.java">org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.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.TestRegionServerMetrics.java">org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.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.TestRegionServerNoMaster.java">org/apache/hadoop/hbase/regionserver/TestRegionServerNoMaster.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.TestRegionServerOnlineConfigChange.java">org/apache/hadoop/hbase/regionserver/TestRegionServerOnlineConfigChange.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.TestRegionServerReadRequestMetrics.java">org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.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.TestRegionServerReportForDuty.java">org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.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.TestRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.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.TestResettingCounters.java">org/apache/hadoop/hbase/regionserver/TestResettingCounters.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.TestReversibleScanners.java">org/apache/hadoop/hbase/regionserver/TestReversibleScanners.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.TestRowTooBig.java">org/apache/hadoop/hbase/regionserver/TestRowTooBig.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.TestScanWithBloomError.java">org/apache/hadoop/hbase/regionserver/TestScanWithBloomError.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.TestScanner.java">org/apache/hadoop/hbase/regionserver/TestScanner.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.TestScannerHeartbeatMessages.java">org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.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.TestScannerRetriableFailure.java">org/apache/hadoop/hbase/regionserver/TestScannerRetriableFailure.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.TestScannerWithBulkload.java">org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.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.TestSeekOptimizations.java">org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.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.TestServerNonceManager.java">org/apache/hadoop/hbase/regionserver/TestServerNonceManager.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.TestSettingTimeoutOnBlockingPoint.java">org/apache/hadoop/hbase/regionserver/TestSettingTimeoutOnBlockingPoint.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.TestSimpleTimeRangeTracker.java">org/apache/hadoop/hbase/regionserver/TestSimpleTimeRangeTracker.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.TestSplitLogWorker.java">org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.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.TestSplitTransactionOnCluster.java">org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>27</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestStoreFileInfo.java">org/apache/hadoop/hbase/regionserver/TestStoreFileInfo.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.TestStoreFileRefresherChore.java">org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.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.TestStoreScanner.java">org/apache/hadoop/hbase/regionserver/TestStoreScanner.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.TestStripeStoreFileManager.java">org/apache/hadoop/hbase/regionserver/TestStripeStoreFileManager.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.TestSyncTimeRangeTracker.java">org/apache/hadoop/hbase/regionserver/TestSyncTimeRangeTracker.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.TestTags.java">org/apache/hadoop/hbase/regionserver/TestTags.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.TestTimestampFilterSeekHint.java">org/apache/hadoop/hbase/regionserver/TestTimestampFilterSeekHint.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.TestWALLockup.java">org/apache/hadoop/hbase/regionserver/TestWALLockup.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.TestWALMonotonicallyIncreasingSeqId.java">org/apache/hadoop/hbase/regionserver/TestWALMonotonicallyIncreasingSeqId.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.TestWalAndCompactingMemStoreFlush.java">org/apache/hadoop/hbase/regionserver/TestWalAndCompactingMemStoreFlush.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TimeRangeTracker.java">org/apache/hadoop/hbase/regionserver/TimeRangeTracker.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.compactions.CompactionConfiguration.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.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.compactions.CompactionProgress.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apa

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 b062755..1ed3578 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.3510">HRegion.MutationBatchOperation</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3544">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.3511">nonceGroup</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3545">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.3512">nonce</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3546">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.3513">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.3547">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.3522">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.3556">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.3527">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3561">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.3532">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3566">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.3537">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.3571">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.3542">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3576">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.3547">getOrigLogSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3581">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.3552">startRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3586">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.3557">closeRegionOperation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3591">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.3562">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.3596">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.3567">checkAndPrepare</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3601">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.3612">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.3646">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.3648">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.3682">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.3659">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.3693">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.3670">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.3704">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.3682">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.3716">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.3731">callPreMutateCPHook</a>(int&nbsp;index,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html#line.3765">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.3768">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.3802">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.3803">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.3837">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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
index ca9385a..93696f9 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.599">HRegion.ObservedExceptionsInBatch</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.603">HRegion.ObservedExceptionsInBatch</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">A class that tracks exceptions that have been observed in one batch. Not thread safe.</div>
 </li>
@@ -236,7 +236,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>wrongRegion</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.600">wrongRegion</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.604">wrongRegion</a></pre>
 </li>
 </ul>
 <a name="failedSanityCheck">
@@ -245,7 +245,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>failedSanityCheck</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.601">failedSanityCheck</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.605">failedSanityCheck</a></pre>
 </li>
 </ul>
 <a name="wrongFamily">
@@ -254,7 +254,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>wrongFamily</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.602">wrongFamily</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.606">wrongFamily</a></pre>
 </li>
 </ul>
 </li>
@@ -271,7 +271,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ObservedExceptionsInBatch</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.599">ObservedExceptionsInBatch</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.603">ObservedExceptionsInBatch</a>()</pre>
 </li>
 </ul>
 </li>
@@ -288,7 +288,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>hasSeenWrongRegion</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.607">hasSeenWrongRegion</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.611">hasSeenWrongRegion</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>If a <a href="../../../../../org/apache/hadoop/hbase/regionserver/WrongRegionException.html" title="class in org.apache.hadoop.hbase.regionserver"><code>WrongRegionException</code></a> has been observed.</dd>
@@ -301,7 +301,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sawWrongRegion</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.614">sawWrongRegion</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.618">sawWrongRegion</a>()</pre>
 <div class="block">Records that a <a href="../../../../../org/apache/hadoop/hbase/regionserver/WrongRegionException.html" title="class in org.apache.hadoop.hbase.regionserver"><code>WrongRegionException</code></a> has been observed.</div>
 </li>
 </ul>
@@ -311,7 +311,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>hasSeenFailedSanityCheck</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.621">hasSeenFailedSanityCheck</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.625">hasSeenFailedSanityCheck</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>If a <a href="../../../../../org/apache/hadoop/hbase/exceptions/FailedSanityCheckException.html" title="class in org.apache.hadoop.hbase.exceptions"><code>FailedSanityCheckException</code></a> has been observed.</dd>
@@ -324,7 +324,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sawFailedSanityCheck</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.628">sawFailedSanityCheck</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.632">sawFailedSanityCheck</a>()</pre>
 <div class="block">Records that a <a href="../../../../../org/apache/hadoop/hbase/exceptions/FailedSanityCheckException.html" title="class in org.apache.hadoop.hbase.exceptions"><code>FailedSanityCheckException</code></a> has been observed.</div>
 </li>
 </ul>
@@ -334,7 +334,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>hasSeenNoSuchFamily</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.635">hasSeenNoSuchFamily</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.639">hasSeenNoSuchFamily</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>If a <a href="../../../../../org/apache/hadoop/hbase/regionserver/NoSuchColumnFamilyException.html" title="class in org.apache.hadoop.hbase.regionserver"><code>NoSuchColumnFamilyException</code></a> has been observed.</dd>
@@ -347,7 +347,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sawNoSuchFamily</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.642">sawNoSuchFamily</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html#line.646">sawNoSuchFamily</a>()</pre>
 <div class="block">Records that a <a href="../../../../../org/apache/hadoop/hbase/regionserver/NoSuchColumnFamilyException.html" title="class in org.apache.hadoop.hbase.regionserver"><code>NoSuchColumnFamilyException</code></a> has been observed.</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
index f1f356c..a9c51dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.550">HRegion.PrepareFlushResult</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.554">HRegion.PrepareFlushResult</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">A result object from prepare flush cache stage</div>
 </li>
@@ -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>result</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.551">result</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.555">result</a></pre>
 </li>
 </ul>
 <a name="storeFlushCtxs">
@@ -267,7 +267,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>storeFlushCtxs</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.552">storeFlushCtxs</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.556">storeFlushCtxs</a></pre>
 </li>
 </ul>
 <a name="committedFiles">
@@ -276,7 +276,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>committedFiles</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</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; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.553">committedFiles</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</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; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.557">committedFiles</a></pre>
 </li>
 </ul>
 <a name="storeFlushableSize">
@@ -285,7 +285,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>storeFlushableSize</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.554">storeFlushableSize</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.558">storeFlushableSize</a></pre>
 </li>
 </ul>
 <a name="startTime">
@@ -294,7 +294,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startTime</h4>
-<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.555">startTime</a></pre>
+<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.559">startTime</a></pre>
 </li>
 </ul>
 <a name="flushOpSeqId">
@@ -303,7 +303,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>flushOpSeqId</h4>
-<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.556">flushOpSeqId</a></pre>
+<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.560">flushOpSeqId</a></pre>
 </li>
 </ul>
 <a name="flushedSeqId">
@@ -312,7 +312,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>flushedSeqId</h4>
-<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.557">flushedSeqId</a></pre>
+<pre>final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.561">flushedSeqId</a></pre>
 </li>
 </ul>
 <a name="totalFlushableSize">
@@ -321,7 +321,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>totalFlushableSize</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.558">totalFlushableSize</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.562">totalFlushableSize</a></pre>
 </li>
 </ul>
 </li>
@@ -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>PrepareFlushResult</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.561">PrepareFlushResult</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;result,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.565">PrepareFlushResult</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;result,
                    long&nbsp;flushSeqId)</pre>
 <div class="block">Constructs an early exit case</div>
 </li>
@@ -349,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>PrepareFlushResult</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.566">PrepareFlushResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&gt;&nbsp;storeFlushCtxs,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.570">PrepareFlushResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&gt;&nbsp;storeFlushCtxs,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</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;committedFiles,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&gt;&nbsp;storeFlushableSize,
                    long&nbsp;startTime,
@@ -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>PrepareFlushResult</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.575">PrepareFlushResult</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;result,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.579">PrepareFlushResult</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a>&nbsp;result,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&gt;&nbsp;storeFlushCtxs,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</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;committedFiles,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&gt;&nbsp;storeFlushableSize,
@@ -389,7 +389,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getResult</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.591">getResult</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html#line.595">getResult</a>()</pre>
 </li>
 </ul>
 </li>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheStats.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheStats.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheStats.html
index 93a07a2..99de7d0 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheStats.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/CacheStats.html
@@ -158,11 +158,11 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getL2CacheStats--">getL2CacheStats</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">CombinedBlockCache.CombinedCacheStats.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getBucketCacheStats--">getBucketCacheStats</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCacheStats--">getOnHeapCacheStats</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">CombinedBlockCache.CombinedCacheStats.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html#getLruCacheStats--">getLruCacheStats</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
@@ -237,22 +237,22 @@
 </a>
 <h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></h3>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
-<caption><span>Fields in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> declared as <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></span><span class="tabEnd">&nbsp;</span></caption>
+<caption><span>Fields in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with type parameters of type <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colFirst"><code>private <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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerWrapperImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#cacheStats">cacheStats</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colFirst"><code>private <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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerWrapperImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#l1Stats">l1Stats</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></td>
+<td class="colFirst"><code>private <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/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerWrapperImpl.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#l2Stats">l2Stats</a></span></code>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/LruBlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/LruBlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/LruBlockCache.html
index c28bba1..50e1b41 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/LruBlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/LruBlockCache.html
@@ -110,10 +110,6 @@
 <td class="colLast"><span class="typeNameLabel">LruBlockCache.StatisticsThread.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html#lru">lru</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#ONHEAP_CACHE_INSTANCE">ONHEAP_CACHE_INSTANCE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CombinedBlockCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#onHeapCache">onHeapCache</a></span></code>&nbsp;</td>
 </tr>
@@ -140,12 +136,12 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCache-org.apache.hadoop.conf.Configuration-">getOnHeapCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheFactory.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createOnHeapCache-org.apache.hadoop.conf.Configuration-">createOnHeapCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private static <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getOnHeapCacheInternal-org.apache.hadoop.conf.Configuration-">getOnHeapCacheInternal</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CombinedBlockCache.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getOnHeapCache--">getOnHeapCache</a></span>()</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/ResizableBlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/ResizableBlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/ResizableBlockCache.html
index 831e29c..3d29977 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/ResizableBlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/class-use/ResizableBlockCache.html
@@ -149,17 +149,16 @@
 </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/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
-<th class="colOne" scope="col">Constructor and Description</th>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.ResizableBlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a>&nbsp;blockCache,
-                 <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
-                 <a href="../../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
-                 <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">HeapMemoryManager.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#toResizableBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">toResizableBlockCache</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-frame.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-frame.html
index 36fefd4..40c4cde 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-frame.html
@@ -31,6 +31,7 @@
 <h2 title="Classes">Classes</h2>
 <ul title="Classes">
 <li><a href="AgeSnapshot.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">AgeSnapshot</a></li>
+<li><a href="BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCacheFactory</a></li>
 <li><a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCacheKey</a></li>
 <li><a href="BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCachesIterator</a></li>
 <li><a href="BlockCacheUtil.html" title="class in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCacheUtil</a></li>
@@ -89,11 +90,11 @@
 </ul>
 <h2 title="Enums">Enums</h2>
 <ul title="Enums">
+<li><a href="BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockCacheFactory.ExternalBlockCaches</a></li>
 <li><a href="BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockPriority</a></li>
 <li><a href="BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockType</a></li>
 <li><a href="BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">BlockType.BlockCategory</a></li>
 <li><a href="Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">Cacheable.MemoryType</a></li>
-<li><a href="CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">CacheConfig.ExternalBlockCaches</a></li>
 <li><a href="HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile" target="classFrame">HFileBlock.Writer.State</a></li>
 </ul>
 <h2 title="Exceptions">Exceptions</h2>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
index c7e06bd..0ff7921 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-summary.html
@@ -188,77 +188,81 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a></td>
 <td class="colLast">
 <div class="block">Cache Key for use with implementations of <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><code>BlockCache</code></a></div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCachesIterator</a></td>
 <td class="colLast">
 <div class="block">Iterator over an array of BlockCache CachedBlocks.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheUtil</a></td>
 <td class="colLast">
 <div class="block">Utilty for aggregating counts in CachedBlocks and toString/toJSON CachedBlocks and BlockCaches.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlockCountsPerFile.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheUtil.CachedBlockCountsPerFile</a></td>
 <td class="colLast">
 <div class="block">Little data structure to hold counts for a file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheUtil.CachedBlocksByFile</a></td>
 <td class="colLast">
 <div class="block">Use one of these to keep a running account of cached blocks by file.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockWithScanInfo.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockWithScanInfo</a></td>
 <td class="colLast">
 <div class="block">BlockWithScanInfo is wrapper class for HFileBlock with other attributes.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheableDeserializerIdManager</a></td>
 <td class="colLast">
 <div class="block">This class is used to manage the identifiers for <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheableDeserializer.html" title="interface in org.apache.hadoop.hbase.io.hfile"><code>CacheableDeserializer</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></td>
 <td class="colLast">
 <div class="block">Stores all of the cache objects and configuration for a single HFile.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></td>
 <td class="colLast">
 <div class="block">Class that implements cache metrics.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ChecksumUtil.html" title="class in org.apache.hadoop.hbase.io.hfile">ChecksumUtil</a></td>
 <td class="colLast">
 <div class="block">Utility methods to compute and validate checksums.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">CombinedBlockCache</a></td>
 <td class="colLast">
 <div class="block">CombinedBlockCache is an abstraction layer that combines
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>LruBlockCache</code></a> and <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket"><code>BucketCache</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.CombinedCacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CombinedBlockCache.CombinedCacheStats</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CompoundBloomFilter.html" title="class in org.apache.hadoop.hbase.io.hfile">CompoundBloomFilter</a></td>
 <td class="colLast">
 <div class="block">A Bloom filter implementation built on top of 
@@ -268,11 +272,11 @@
  block stream, and loaded on demand at query time.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CompoundBloomFilterBase.html" title="class in org.apache.hadoop.hbase.io.hfile">CompoundBloomFilterBase</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CompoundBloomFilterWriter.html" title="class in org.apache.hadoop.hbase.io.hfile">CompoundBloomFilterWriter</a></td>
 <td class="colLast">
 <div class="block">Adds methods required for writing a compound Bloom filter to the data
@@ -280,71 +284,71 @@
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CompoundBloomFilter.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>CompoundBloomFilter</code></a> class.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CompoundBloomFilterWriter.ReadyChunk.html" title="class in org.apache.hadoop.hbase.io.hfile">CompoundBloomFilterWriter.ReadyChunk</a></td>
 <td class="colLast">
 <div class="block">A Bloom filter chunk enqueued for writing</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.html" title="class in org.apache.hadoop.hbase.io.hfile">FixedFileTrailer</a></td>
 <td class="colLast">
 <div class="block">The <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> has a fixed trailer which contains offsets to other
  variable parts of the file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile">HFile</a></td>
 <td class="colLast">
 <div class="block">File format for hbase.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.FileInfo.html" title="class in org.apache.hadoop.hbase.io.hfile">HFile.FileInfo</a></td>
 <td class="colLast">
 <div class="block">Metadata for this file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.WriterFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">HFile.WriterFactory</a></td>
 <td class="colLast">
 <div class="block">This variety of ways to construct writers is used throughout the code, and
  we want to be able to swap writer implementations.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a></td>
 <td class="colLast">
 <div class="block">Cacheable Blocks of an <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> version 2 file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.BlockDeserializer.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.BlockDeserializer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReaderImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReaderImpl</a></td>
 <td class="colLast">
 <div class="block">Reads version 2 HFile blocks from the filesystem.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Header.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.Header</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.PrefetchedHeader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.PrefetchedHeader</a></td>
 <td class="colLast">
 <div class="block">Data-structure to use caching the header of the NEXT block.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock.Writer</a></td>
 <td class="colLast">
 <div class="block">Unified version 2 <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> block writer.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex</a></td>
 <td class="colLast">
 <div class="block">Provides functionality to write (<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFileBlockIndex.BlockIndexWriter</code></a>) and read
@@ -352,32 +356,32 @@
  single-level and multi-level block indexes.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexChunk</a></td>
 <td class="colLast">
 <div class="block">A single chunk of the block index in the process of writing.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexReader</a></td>
 <td class="colLast">
 <div class="block">The reader will always hold the root level index in the memory.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexWriter</a></td>
 <td class="colLast">
 <div class="block">Writes the block index into the output stream.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.ByteArrayKeyBlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.ByteArrayKeyBlockIndexReader</a></td>
 <td class="colLast">
 <div class="block">An implementation of the BlockIndexReader that deals with block keys which are plain
  byte[] like MetaBlock or the Bloom Block for ROW bloom.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.CellBasedKeyBlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.CellBasedKeyBlockIndexReader</a></td>
 <td class="colLast">
 <div class="block">An implementation of the BlockIndexReader that deals with block keys which are the key
@@ -385,79 +389,79 @@
  This needs a comparator to work with the Cells</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a></td>
 <td class="colLast">
 <div class="block">This carries the information on some of the meta data about the HFile.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContextBuilder</a></td>
 <td class="colLast">
 <div class="block">A builder that helps in building up the HFileContext</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoderImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileDataBlockEncoderImpl</a></td>
 <td class="colLast">
 <div class="block">Do different kinds of data block encoding according to column family
  options.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.html" title="class in org.apache.hadoop.hbase.io.hfile">HFilePrettyPrinter</a></td>
 <td class="colLast">
 <div class="block">Implements pretty-printing functionality for <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a>s.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.KeyValueStatsCollector.html" title="class in org.apache.hadoop.hbase.io.hfile">HFilePrettyPrinter.KeyValueStatsCollector</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.html" title="class in org.apache.hadoop.hbase.io.hfile">HFilePrettyPrinter.SimpleReporter</a></td>
 <td class="colLast">
 <div class="block">Almost identical to ConsoleReporter, but extending ScheduledReporter,
  as extending ConsoleReporter in this version of dropwizard is now too much trouble.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.Builder.html" title="class in org.apache.hadoop.hbase.io.hfile">HFilePrettyPrinter.SimpleReporter.Builder</a></td>
 <td class="colLast">
 <div class="block">A builder for <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFilePrettyPrinter.SimpleReporter</code></a> instances.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl</a></td>
 <td class="colLast">
 <div class="block">Implementation that can handle all hfile versions of <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile"><code>HFile.Reader</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.EncodedScanner</a></td>
 <td class="colLast">
 <div class="block">Scanner that operates on encoded data blocks.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileReaderImpl.HFileScannerImpl</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileUtil.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileUtil</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileWriterImpl</a></td>
 <td class="colLast">
 <div class="block">Common functionality needed by all versions of <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> writers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InclusiveCombinedBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">InclusiveCombinedBlockCache</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></td>
 <td class="colLast">
 <div class="block">A block cache implementation that is memory-aware using <a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io"><code>HeapSize</code></a>,
@@ -466,50 +470,50 @@
  constant-time <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#cacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-boolean-"><code>LruBlockCache.cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey, org.apache.hadoop.hbase.io.hfile.Cacheable, boolean)</code></a> and <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#getBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-boolean-boolean-boolean-"><code>LruBlockCache.getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey, boolean, boolean, boolean)</code></a> operations.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.StatisticsThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.StatisticsThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a></td>
 <td class="colLast">
 <div class="block">Represents an entry in the <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>LruBlockCache</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruCachedBlockQueue.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlockQueue</a></td>
 <td class="colLast">
 <div class="block">A memory-bound queue that will grow until an element brings
  total size &gt;= maxSize.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/MemcachedBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">MemcachedBlockCache</a></td>
 <td class="colLast">
 <div class="block">Class to store blocks into memcached.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/MemcachedBlockCache.HFileBlockTranscoder.html" title="class in org.apache.hadoop.hbase.io.hfile">MemcachedBlockCache.HFileBlockTranscoder</a></td>
 <td class="colLast">
 <div class="block">Class to encode and decode an HFileBlock to and from memecached's resulting byte arrays.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/NoOpDataBlockEncoder.html" title="class in org.apache.hadoop.hbase.io.hfile">NoOpDataBlockEncoder</a></td>
 <td class="colLast">
 <div class="block">Does not perform any kind of encoding/decoding.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/NoOpDataBlockEncoder.NoneEncodingState.html" title="class in org.apache.hadoop.hbase.io.hfile">NoOpDataBlockEncoder.NoneEncodingState</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.html" title="class in org.apache.hadoop.hbase.io.hfile">PrefetchExecutor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -525,32 +529,32 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></td>
+<td class="colLast">
+<div class="block">Enum of all built in external block caches.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockPriority</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a></td>
 <td class="colLast">
 <div class="block">Various types of HFile blocks.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile">Cacheable.MemoryType</a></td>
 <td class="colLast">
 <div class="block">SHARED means when this Cacheable is read back from cache it refers to the same memory area as
  used by the cache for caching it.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a></td>
-<td class="colLast">
-<div class="block">Enum of all built in external block caches.</div>
-</td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile">HFileBlock.Writer.State</a></td>
 <td class="colLast">&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 b481b18..5d0cf16 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -82,6 +82,7 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/AgeSnapshot.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">AgeSnapshot</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheKey</span></a> (implements org.apache.hadoop.hbase.io.<a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a>, 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>)</li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCachesIterator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheUtil</span></a></li>
@@ -274,12 +275,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/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/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/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/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</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/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/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/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
index 109c123..fcdb450 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-use.html
@@ -226,57 +226,57 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheFactory.ExternalBlockCaches.html#org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>
+<div class="block">Enum of all built in external block caches.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheKey.html#org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>
 <div class="block">Cache Key for use with implementations of <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><code>BlockCache</code></a></div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/BlockCacheUtil.CachedBlocksByFile.html#org.apache.hadoop.hbase.io.hfile">BlockCacheUtil.CachedBlocksByFile</a>
 <div class="block">Use one of these to keep a running account of cached blocks by file.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/BlockPriority.html#org.apache.hadoop.hbase.io.hfile">BlockPriority</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/BlockType.html#org.apache.hadoop.hbase.io.hfile">BlockType</a>
 <div class="block">Various types of HFile blocks.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/BlockType.BlockCategory.html#org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/BlockWithScanInfo.html#org.apache.hadoop.hbase.io.hfile">BlockWithScanInfo</a>
 <div class="block">BlockWithScanInfo is wrapper class for HFileBlock with other attributes.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.html#org.apache.hadoop.hbase.io.hfile">Cacheable</a>
 <div class="block">Cacheable is an interface that allows for an object to be cached.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/Cacheable.MemoryType.html#org.apache.hadoop.hbase.io.hfile">Cacheable.MemoryType</a>
 <div class="block">SHARED means when this Cacheable is read back from cache it refers to the same memory area as
  used by the cache for caching it.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/CacheableDeserializer.html#org.apache.hadoop.hbase.io.hfile">CacheableDeserializer</a>
 <div class="block">Interface for a deserializer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.html#org.apache.hadoop.hbase.io.hfile">CacheConfig</a>
 <div class="block">Stores all of the cache objects and configuration for a single HFile.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/CacheConfig.ExternalBlockCaches.html#org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>
-<div class="block">Enum of all built in external block caches.</div>
-</td>
-</tr>
 <tr class="rowColor">
 <td class="colOne"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/class-use/CachedBlock.html#org.apache.hadoop.hbase.io.hfile">CachedBlock</a>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 91a2ed4..7557e4f 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -353,8 +353,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.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 a07a1d8..a1882cb 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/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/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/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
index 1124f8b..0c29054 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexChunk.html
@@ -1111,587 +1111,592 @@
 <span class="sourceLineNo">1103</span>          blockStream.write(midKeyMetadata);<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>        blockWriter.writeHeaderAndData(out);<a name="line.1104"></a>
 <span class="sourceLineNo">1105</span>        if (cacheConf != null) {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>          cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>            rootLevelIndexPos, true, blockForCaching.getBlockType()), blockForCaching);<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><a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      // Add root index block size<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      totalBlockUncompressedSize +=<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      if (LOG.isTraceEnabled()) {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>          " on-disk size, "<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>          " total uncompressed size.");<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      return rootLevelIndexPos;<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>    /**<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>     * block framing.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>     *<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>     *          stream writing into an {@link HFile} block.<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>     * @param description a short description of the index being written. Used<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>     *          in a log message.<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>     * @throws IOException<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>     */<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>        throws IOException {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      expectNumLevels(1);<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (!singleLevelOnly)<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>        throw new IOException("Single-level mode is turned off");<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        throw new IOException("Root-level entries already added in " +<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>            "single-level mode");<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span><a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      rootChunk = curInlineChunk;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>      if (LOG.isTraceEnabled()) {<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>          + " bytes");<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      }<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      rootChunk.writeRoot(out);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    /**<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>     * Split the current level of the block index into intermediate index<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>     *<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>     * @param out<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>     *          chunk referencing all leaf-level index blocks<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>     * @return the parent level block index, which becomes the root index after<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>     *         a few (usually zero) iterations<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>     * @throws IOException<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>     */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span><a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      // The current intermediate-level block index chunk.<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span><a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span><a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>          writeIntermediateBlock(out, parent, curChunk);<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>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>      }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      return parent;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>    }<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      long beginOffset = out.getPos();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      curChunk.writeNonRoot(dos);<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      blockWriter.writeHeaderAndData(out);<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      if (getCacheOnWrite()) {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>        HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>          beginOffset, true, blockForCaching.getBlockType()), blockForCaching);<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // Add intermediate index block size<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      totalBlockUncompressedSize +=<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1218"></a>
+<span class="sourceLineNo">1106</span>          cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>            HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>            cache.cacheBlock(new BlockCacheKey(nameForCaching, rootLevelIndexPos, true,<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                blockForCaching.getBlockType()), blockForCaching);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>          });<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      // Add root index block size<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      totalBlockUncompressedSize +=<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>      if (LOG.isTraceEnabled()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          " on-disk size, "<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>          " total uncompressed size.");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      return rootLevelIndexPos;<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    /**<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>     * block framing.<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>     *<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>     *          stream writing into an {@link HFile} block.<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>     * @param description a short description of the index being written. Used<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>     *          in a log message.<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>     * @throws IOException<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>     */<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        throws IOException {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      expectNumLevels(1);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      if (!singleLevelOnly)<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>        throw new IOException("Single-level mode is turned off");<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        throw new IOException("Root-level entries already added in " +<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>            "single-level mode");<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      rootChunk = curInlineChunk;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      if (LOG.isTraceEnabled()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          + " bytes");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>      }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      rootChunk.writeRoot(out);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>     * Split the current level of the block index into intermediate index<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>     *<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>     * @param out<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>     *          chunk referencing all leaf-level index blocks<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>     * @return the parent level block index, which becomes the root index after<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>     *         a few (usually zero) iterations<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>     * @throws IOException<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>     */<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span><a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>      // The current intermediate-level block index chunk.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span><a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>          writeIntermediateBlock(out, parent, curChunk);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span><a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      return parent;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>      long beginOffset = out.getPos();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      curChunk.writeNonRoot(dos);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      blockWriter.writeHeaderAndData(out);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (getCacheOnWrite()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>          cache.cacheBlock(<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>              new BlockCacheKey(nameForCaching, beginOffset, true, blockForCaching.getBlockType()),<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>              blockForCaching);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        });<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>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>      // + the secondary index size<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // entries.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      parent.add(curFirstKey, beginOffset,<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span><a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      // clear current block index chunk<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      curChunk.clear();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      curFirstKey = null;<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    }<a name="line.1231"></a>
+<span class="sourceLineNo">1220</span>      // Add intermediate index block size<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      totalBlockUncompressedSize +=<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span><a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      // + the secondary index size<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      // entries.<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      parent.add(curFirstKey, beginOffset,<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span><a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    /**<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>     * @return how many block index entries there are in the root level<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>     */<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    public final int getNumRootEntries() {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return rootChunk.getNumEntries();<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>     * @return the number of levels in this block index.<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>     */<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>    public int getNumLevels() {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>      return numLevels;<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    }<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span><a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>      if (numLevels != expectedNumLevels) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>            + numLevels + "but is expected to be " + expectedNumLevels);<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>     * Whether there is an inline block ready to be written. In general, we<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>     */<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    @Override<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>      if (singleLevelOnly) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span><a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      if (curInlineChunk == null) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>            "called with closing=true and then called again?");<a name="line.1267"></a>
+<span class="sourceLineNo">1233</span>      // clear current block index chunk<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>      curChunk.clear();<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>      curFirstKey = null;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>    }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span><a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    /**<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>     * @return how many block index entries there are in the root level<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>     */<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>    public final int getNumRootEntries() {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>      return rootChunk.getNumEntries();<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>    }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>    /**<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>     * @return the number of levels in this block index.<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>     */<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    public int getNumLevels() {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return numLevels;<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>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>      if (numLevels != expectedNumLevels) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>            + numLevels + "but is expected to be " + expectedNumLevels);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>      }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    /**<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>     * Whether there is an inline block ready to be written. In general, we<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>     */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>    @Override<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      if (singleLevelOnly) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<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>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        return false;<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      // We do have some entries in the current inline chunk.<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      if (closing) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>          // leaf level with one block, move these entries to the root level.<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          expectNumLevels(1);<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          rootChunk = curInlineChunk;<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          curInlineChunk = null;  // Disallow adding any more index entries.<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>          return false;<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>        return true;<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>      } else {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    /**<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>     * blocks, so the non-root index format is used.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>     *<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>     * @param out<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>     */<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>    @Override<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      if (singleLevelOnly)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span><a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>      // Write the inline block index to the output stream in the non-root<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      // index block format.<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      curInlineChunk.writeNonRoot(out);<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      // parent-level index.<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      // Start a new inline index block<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      curInlineChunk.clear();<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    }<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>     * Called after an inline block has been written so that we can add an<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>     * entry referring to that block to the parent-level index.<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>     */<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    @Override<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>      // Add leaf index block size<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      if (singleLevelOnly)<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span><a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      if (firstKey == null) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>            "but the first key was not set in writeInlineBlock");<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>      if (rootChunk.getNumEntries() == 0) {<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        // We are writing the first leaf block, so increase index level.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        expectNumLevels(1);<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        numLevels = 2;<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>      // Add another entry to the second-level index. Include the number of<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      firstKey = null;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    }<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span><a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    @Override<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    public BlockType getInlineBlockType() {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      return BlockType.LEAF_INDEX;<a name="line.1348"></a>
+<span class="sourceLineNo">1270</span>      if (curInlineChunk == null) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>            "called with closing=true and then called again?");<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>        return false;<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>      // We do have some entries in the current inline chunk.<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      if (closing) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>          // leaf level with one block, move these entries to the root level.<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          expectNumLevels(1);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          rootChunk = curInlineChunk;<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          curInlineChunk = null;  // Disallow adding any more index entries.<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><a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        return true;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    /**<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>     * blocks, so the non-root index format is used.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>     *<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>     * @param out<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>     */<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>    @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      if (singleLevelOnly)<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>      // Write the inline block index to the output stream in the non-root<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      // index block format.<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>      curInlineChunk.writeNonRoot(out);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span><a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>      // parent-level index.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>      // Start a new inline index block<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>      curInlineChunk.clear();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span><a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    /**<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>     * Called after an inline block has been written so that we can add an<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>     * entry referring to that block to the parent-level index.<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>     */<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    @Override<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>      // Add leaf index block size<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>      if (singleLevelOnly)<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>      if (firstKey == null) {<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>            "but the first key was not set in writeInlineBlock");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>      if (rootChunk.getNumEntries() == 0) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>        // We are writing the first leaf block, so increase index level.<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        expectNumLevels(1);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        numLevels = 2;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>      }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>      // Add another entry to the second-level index. Include the number of<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>      firstKey = null;<a name="line.1348"></a>
 <span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
 <span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    /**<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>     *<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>     * @param firstKey the first key of the data block<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>     * @param blockOffset the offset of the data block<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>     *          {@link HFile} format version 1).<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>     */<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      ++totalNumEntries;<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>     * @throws IOException if we happened to write a multi-level index.<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>     */<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    public void ensureSingleLevel() throws IOException {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>      if (numLevels &gt; 1) {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>            "this is expected to be a single-level block index.");<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<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>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>     *         or null.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>     */<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    @Override<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>    public boolean getCacheOnWrite() {<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>    }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>    /**<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>     * index blocks, and leaf-level index blocks.<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>     *<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>     * @return the total uncompressed size of all index blocks<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>     */<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>    public long getTotalUncompressedSize() {<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      return totalBlockUncompressedSize;<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>    }<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span><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>  /**<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>   * block.<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>   */<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  static class BlockIndexChunk {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span><a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    /** Block offset in backing stream. */<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span><a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>    /**<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>     */<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    /**<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>     */<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span><a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    /**<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1430"></a>
+<span class="sourceLineNo">1351</span>    @Override<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    public BlockType getInlineBlockType() {<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      return BlockType.LEAF_INDEX;<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>    /**<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>     *<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>     * @param firstKey the first key of the data block<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>     * @param blockOffset the offset of the data block<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>     *          {@link HFile} format version 1).<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>     */<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>      ++totalNumEntries;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span><a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    /**<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>     * @throws IOException if we happened to write a multi-level index.<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>     */<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>    public void ensureSingleLevel() throws IOException {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>      if (numLevels &gt; 1) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>            "this is expected to be a single-level block index.");<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    /**<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>     *         or null.<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>     */<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>    @Override<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>    public boolean getCacheOnWrite() {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>    }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>    /**<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>     * index blocks, and leaf-level index blocks.<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>     *<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>     * @return the total uncompressed size of all index blocks<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>     */<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    public long getTotalUncompressedSize() {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      return totalBlockUncompressedSize;<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span><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>  /**<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>   * block.<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>   */<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  static class BlockIndexChunk {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>    /** Block offset in backing stream. */<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span><a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    /**<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>     */<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>    /**<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1430"></a>
 <span class="sourceLineNo">1431</span>     */<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>    private int curTotalRootSize = 0;<a name="line.1432"></a>
+<span class="sourceLineNo">1432</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1432"></a>
 <span class="sourceLineNo">1433</span><a name="line.1433"></a>
 <span class="sourceLineNo">1434</span>    /**<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>     * The "secondary index" used for binary search over variable-length<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>     * end of this secondary index.<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>     */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span><a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>    /**<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>     * Adds a new entry to this block index chunk.<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>     *<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>     *          entry<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>     *          entry, including header size<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>     *          construction, this specifies the current total number of<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>     *          corresponding to the second-level entry being added.<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>     */<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        long curTotalNumSubEntries) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      // Record the offset for the secondary index<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>          + firstKey.length;<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span><a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span><a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      blockKeys.add(firstKey);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      blockOffsets.add(blockOffset);<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span><a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>      if (curTotalNumSubEntries != -1) {<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>        // Make sure the parallel arrays are in sync.<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>              "entries out of " + blockKeys.size());<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>        }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      }<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>    }<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span><a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    /**<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    public void clear() {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      blockKeys.clear();<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      blockOffsets.clear();<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>      onDiskDataSizes.clear();<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>      secondaryIndexOffsetMarks.clear();<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>      numSubEntriesAt.clear();<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      curTotalNonRootEntrySize = 0;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      curTotalRootSize = 0;<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    }<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span><a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    /**<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>     * ordering of sub-entries.<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>     *<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>     * &lt;p&gt;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>     * numSubEntriesAt.<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>     *<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>     *         sub-entry<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>     */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    public int getEntryBySubEntry(long k) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      // We define mid-key as the key corresponding to k'th sub-entry<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      // (0-based).<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      int i = Collections.binarySearch(numSubEntriesAt, k);<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span><a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      // Exact match: cumulativeWeight[i] = k. This means chunks #0 through<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>      // #i contain exactly k sub-entries, and the sub-entry #k (0-based)<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // is in the (i + 1)'th chunk.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (i &gt;= 0)<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        return i + 1;<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span><a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Inexact match. Return the insertion point.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      return -i - 1;<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>    /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>     * Used when writing the root block index of a multi-level block index.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>     * Serializes additional information allowing to efficiently identify the<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>     * mid-key.<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>     *<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>     * @return a few serialized fields for finding the mid-key<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>     * @throws IOException if could not create metadata for computing mid-key<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>     */<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    public byte[] getMidKeyMetadata() throws IOException {<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>      ByteArrayOutputStream baos = new ByteArrayOutputStream(<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>          MID_KEY_METADATA_SIZE);<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>      DataOutputStream baosDos = new DataOutputStream(baos);<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      long totalNumSubEntries = numSubEntriesAt.get(blockKeys.size() - 1);<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      if (totalNumSubEntries == 0) {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>        throw new IOException("No leaf-level entries, mid-key unavailable");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      }<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      long midKeySubEntry = (totalNumSubEntries - 1) / 2;<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      int midKeyEntry = getEntryBySubEntry(midKeySubEntry);<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span><a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      baosDos.writeLong(blockOffsets.get(midKeyEntry));<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      baosDos.writeInt(onDiskDataSizes.get(midKeyEntry));<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span><a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      long numSubEntriesBefore = midKeyEntry &gt; 0<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>          ? numSubEntriesAt.get(midKeyEntry - 1) : 0;<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      long subEntryWithinEntry = midKeySubEntry - numSubEntriesBefore;<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      if (subEntryWithinEntry &lt; 0 || subEntryWithinEntry &gt; Integer.MAX_VALUE)<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>        throw new IOException("Could not identify mid-key index within the "<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>            + "leaf-level block containing mid-key: out of range ("<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>            + subEntryWithinEntry + ", numSubEntriesBefore="<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>            + numSubEntriesBefore + ", midKeySubEntry=" + midKeySubEntry<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>            + ")");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      }<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span><a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      baosDos.writeInt((int) subEntryWithinEntry);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span><a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      if (baosDos.size() != MID_KEY_METADATA_SIZE) {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>        throw new IOException("Could not write mid-key metadata: size=" +<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>            baosDos.size() + ", correct size: " + MID_KEY_METADATA_SIZE);<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
+<span class="sourceLineNo">1435</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>     */<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>    private int curTotalRootSize = 0;<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span><a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>    /**<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>     * The "secondary index" used for binary search over variable-length<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>     * end of this secondary index.<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>     */<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    /**<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>     * Adds a new entry to this block index chunk.<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>     *<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>     *          entry<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>     *          entry, including header size<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>     *          construction, this specifies the current total number of<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>     *          corresponding to the second-level entry being added.<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>     */<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        long curTotalNumSubEntries) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>      // Record the offset for the secondary index<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>          + firstKey.length;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span><a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      blockKeys.add(firstKey);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>      blockOffsets.add(blockOffset);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      if (curTotalNumSubEntries != -1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        // Make sure the parallel arrays are in sync.<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>              "entries out of " + blockKeys.size());<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>        }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>    }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    /**<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>     * key/value into account. Used for single-level indexes.<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>     *<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>     * @see #add(byte[], long, int, long)<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>     */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span><a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    public void clear() {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      blockKeys.clear();<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>      blockOffsets.clear();<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      onDiskDataSizes.clear();<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      secondaryIndexOffsetMarks.clear();<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>      numSubEntriesAt.clear();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>      curTotalNonRootEntrySize = 0;<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>      curTotalRootSize = 0;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    }<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>    /**<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>     * ordering of sub-entries.<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>     *<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>     * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>     * numSubEntriesAt.<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>     *<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>     *         s

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HMobStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HMobStore.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HMobStore.html
index b2908c6..7529d79 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HMobStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HMobStore.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -190,13 +190,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#map">map</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#mobCacheConfig">mobCacheConfig</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#mobFamilyPath">mobFamilyPath</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <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></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#mobFlushCount">mobFlushCount</a></span></code>&nbsp;</td>
@@ -277,12 +277,6 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">createCacheConf</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>
-<div class="block">Creates the mob cache config.</div>
-</td>
-</tr>
-<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createDelFileWriterInTmp-java.util.Date-long-org.apache.hadoop.hbase.io.compress.Compression.Algorithm-byte:A-">createDelFileWriterInTmp</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date,
                         long&nbsp;maxKeyCount,
@@ -291,7 +285,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Creates the writer for the del file in temp directory.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createScanner-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-">createScanner</a></span>(<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,
@@ -300,7 +294,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Gets the MobStoreScanner or MobReversedStoreScanner.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StoreEngine</a>&lt;?,?,?,?&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createStoreEngine-org.apache.hadoop.hbase.regionserver.HStore-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.CellComparator-">createStoreEngine</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
                  org.apache.hadoop.conf.Configuration&nbsp;conf,
@@ -308,7 +302,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Creates the mob store engine.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createWriterInTmp-java.util.Date-long-org.apache.hadoop.hbase.io.compress.Compression.Algorithm-byte:A-boolean-">createWriterInTmp</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date,
                  long&nbsp;maxKeyCount,
@@ -318,7 +312,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Creates the writer for the mob file in temp directory.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createWriterInTmp-org.apache.hadoop.hbase.mob.MobFileName-org.apache.hadoop.fs.Path-long-org.apache.hadoop.hbase.io.compress.Compression.Algorithm-boolean-">createWriterInTmp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileName.html" title="class in org.apache.hadoop.hbase.mob">MobFileName</a>&nbsp;mobFileName,
                  org.apache.hadoop.fs.Path&nbsp;basePath,
@@ -328,7 +322,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Creates the writer for the mob file in temp directory.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createWriterInTmp-java.lang.String-org.apache.hadoop.fs.Path-long-org.apache.hadoop.hbase.io.compress.Compression.Algorithm-byte:A-boolean-">createWriterInTmp</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;date,
                  org.apache.hadoop.fs.Path&nbsp;basePath,
@@ -339,65 +333,65 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Creates the writer for the mob file in temp directory.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<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/HMobStore.html#getCellsCountCompactedFromMob--">getCellsCountCompactedFromMob</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" 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/HMobStore.html#getCellsCountCompactedToMob--">getCellsCountCompactedToMob</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<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/HMobStore.html#getCellsSizeCompactedFromMob--">getCellsSizeCompactedFromMob</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<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/HMobStore.html#getCellsSizeCompactedToMob--">getCellsSizeCompactedToMob</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#getConfiguration--">getConfiguration</a></span>()</code>
 <div class="block">Gets current config.</div>
 </td>
 </tr>
-<tr id="i13" 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/HMobStore.html#getMobFlushCount--">getMobFlushCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i14" 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/HMobStore.html#getMobFlushedCellsCount--">getMobFlushedCellsCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" 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/HMobStore.html#getMobFlushedCellsSize--">getMobFlushedCellsSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i16" 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/HMobStore.html#getMobScanCellsCount--">getMobScanCellsCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<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/HMobStore.html#getMobScanCellsSize--">getMobScanCellsSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#getPath--">getPath</a></span>()</code>
 <div class="block">Gets the mob file path.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#getRefCellTags--">getRefCellTags</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#getTempDir--">getTempDir</a></span>()</code>
 <div class="block">Gets the temp directory.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#readCell-java.util.List-java.lang.String-org.apache.hadoop.hbase.Cell-boolean-long-boolean-">readCell</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;org.apache.hadoop.fs.Path&gt;&nbsp;locations,
         <a href="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;fileName,
@@ -408,14 +402,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Reads the cell from a mob file.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#resolve-org.apache.hadoop.hbase.Cell-boolean-">resolve</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;reference,
        boolean&nbsp;cacheBlocks)</code>
 <div class="block">Reads the cell from the mob file, and the read point does not count.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#resolve-org.apache.hadoop.hbase.Cell-boolean-long-boolean-">resolve</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;reference,
        boolean&nbsp;cacheBlocks,
@@ -424,43 +418,43 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <div class="block">Reads the cell from the mob file.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateCellsCountCompactedFromMob-long-">updateCellsCountCompactedFromMob</a></span>(long&nbsp;count)</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateCellsCountCompactedToMob-long-">updateCellsCountCompactedToMob</a></span>(long&nbsp;count)</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateCellsSizeCompactedFromMob-long-">updateCellsSizeCompactedFromMob</a></span>(long&nbsp;size)</code>&nbsp;</td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateCellsSizeCompactedToMob-long-">updateCellsSizeCompactedToMob</a></span>(long&nbsp;size)</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateMobFlushCount--">updateMobFlushCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateMobFlushedCellsCount-long-">updateMobFlushedCellsCount</a></span>(long&nbsp;count)</code>&nbsp;</td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateMobFlushedCellsSize-long-">updateMobFlushedCellsSize</a></span>(long&nbsp;size)</code>&nbsp;</td>
 </tr>
-<tr id="i31" 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/regionserver/HMobStore.html#updateMobScanCellsCount-long-">updateMobScanCellsCount</a></span>(long&nbsp;count)</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#updateMobScanCellsSize-long-">updateMobScanCellsSize</a></span>(long&nbsp;size)</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#validateMobFile-org.apache.hadoop.fs.Path-">validateMobFile</a></span>(org.apache.hadoop.fs.Path&nbsp;path)</code>
 <div class="block">Validates a mob file by opening and closing it.</div>
@@ -472,7 +466,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#add-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#add-java.lang.Iterable-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#addChangedReaderObserver-org.apache.hadoop.hbase.regionserver.ChangedReadersObserver-">addChangedReaderObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#areWritesEnabled--">areWritesEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#assertBulkLoadHFileOk-org.apache.hadoop.fs.Path-">assertBulkLoadHFileOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#bulkLoadHFile-byte:A-java.lang.String-org.apache.hadoop.fs.Path-">bulkLoadHFile</a>, <a href="../../../../../org/apache/hadoop/hbase/re
 gionserver/HStore.html#bulkLoadHFile-org.apache.hadoop.hbase.regionserver.StoreFileInfo-">bulkLoadHFile</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#cancelRequestedCompaction-org.apache.hadoop.hbase.regionserver.compactions.CompactionContext-">cancelRequestedCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#canSplit--">canSplit</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#closeAndArchiveCompactedFiles--">closeAndArchiveCompactedFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#closeAndArchiveCompactedFiles-boolean-">closeAndArchiveCompactedFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#compact-org.apache.hadoop.hbase.regionserver.compactions.CompactionContext-org.apache.hadoop.hbase.regionserver.throttle.ThroughputCont
 roller-org.apache.hadoop.hbase.security.User-">compact</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#compactRecentForTestingAssumingDefaultPolicy-int-">compactRecentForTestingAssumingDefaultPolicy</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#completeCompaction-java.util.Collection-">completeCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createFlushContext-long-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">createFlushContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createStoreFileAndReader-org.apache.hadoop.fs.Path-">createStoreFileAndReader</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createWriterInTmp-long-org.apache.hadoop.hbase.io.compress.Compression.Algorithm-boolean-boolean-boolean-boolean-">createWriterInTmp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#de
 leteChangedReaderObserver-org.apache.hadoop.hbase.regionserver.ChangedReadersObserver-">deleteChangedReaderObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#deregisterChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">deregisterChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#determineTTLFromFamily-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">determineTTLFromFamily</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#doCompaction-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequestImpl-java.util.Collection-org.apache.hadoop.hbase.security.User-long-java.util.List-">doCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#flushCache-long-org.apache.hadoop.hbase.regionserver.MemStoreSnapshot-org.apache.hadoop.hbase.monitoring.MonitoredTask-org.apache.hadoop.hbase.regionserver.throttle.ThroughputController-org.apache.ha
 doop.hbase.regionserver.FlushLifeCycleTracker-">flushCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getAvgStoreFileAge--">getAvgStoreFileAge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getBlockingFileCount--">getBlockingFileCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getBytesPerChecksum-org.apache.hadoop.conf.Configuration-">getBytesPerChecksum</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCacheConfig--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getChecksumType-org.apache.hadoop.conf.Configuration-">getChecksumType</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCloseCheckInterval--">getCloseCheckInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getColumnFamilyDescriptor--">getColumnFamilyDescriptor</a>, <a href="../../.
 ./../../org/apache/hadoop/hbase/regionserver/HStore.html#getColumnFamilyName--">getColumnFamilyName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedCellsCount--">getCompactedCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedCellsSize--">getCompactedCellsSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedFiles--">getCompactedFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedFilesCount--">getCompactedFilesCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactionCheckMultiplier--">getCompactionCheckMultiplier</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactionPressure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactionProgress--">getCompactionProgress</a>, <a href
 ="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactPriority--">getCompactPriority</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCoprocessorHost--">getCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCurrentParallelPutCount--">getCurrentParallelPutCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getDataBlockEncoder--">getDataBlockEncoder</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFlushableSize--">getFlushableSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFlushedCellsCount--">getFlushedCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/region
 server/HStore.html#getFlushedCellsSize--">getFlushedCellsSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFlushedOutputFileSize--">getFlushedOutputFileSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getHFilesSize--">getHFilesSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getHRegion--">getHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getLastCompactSize--">getLastCompactSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMajorCompactedCellsCount--">getMajorCompactedCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMajorCompactedCellsSize--">getMajorCompactedCellsSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMaxMemStoreTS--">getMaxMemStoreTS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMaxSe
 quenceId--">getMaxSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMaxStoreFileAge--">getMaxStoreFileAge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMemStoreFlushSize--">getMemStoreFlushSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMinStoreFileAge--">getMinStoreFileAge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getNumHFiles--">getNumHFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getNumReferenceFiles--">getNumReferenceFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getOffPeakHours--">getOffPeakHours</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getRegionFileSystem--">getRegionFileSystem</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/regionserver/HStore.html#getRegionInfo--">getRegionInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanInfo--">getScanInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanner-org.apache.hadoop.hbase.client.Scan-java.util.NavigableSet-long-">getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-boolean-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-byte:A-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-boolean-byte:A-boolean-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-java.util.List-boolean-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQuer
 yMatcher-byte:A-byte:A-long-boolean-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-java.util.List-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-boolean-byte:A-boolean-long-boolean-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSize--">getSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSmallestReadPoint--">getSmallestReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSnapshotSize--">getSnapshotSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSplitPoint--">getSplitPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreEngine--">getStoreEngine</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefiles--">getStorefiles</a>, <a href="../../../../../org
 /apache/hadoop/hbase/regionserver/HStore.html#getStorefilesCount--">getStorefilesCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileSize-org.apache.hadoop.hbase.regionserver.HStoreFile-">getStoreFileSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesRootLevelIndexSize--">getStorefilesRootLevelIndexSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesSize--">getStorefilesSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileTtl--">getStoreFileTtl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreHomedir-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.client.RegionInfo-byte:A-">getStoreHomedir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreHomedir-org.apache.hadoop.fs.Path-java.lang.String-byte:A-">getStoreHomedir</a>, <a href="../../../.
 ./../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreSizeUncompressed--">getStoreSizeUncompressed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTableName--">getTableName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalStaticBloomSize--">getTotalStaticBloomSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalStaticIndexSize--">getTotalStaticIndexSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#hasReferences--">hasReferences</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#hasTooManyStoreFiles--">hasTooManyStoreFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#heapSize--">heapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#isPrimaryReplicaStore--">isPrimaryReplicaStore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HSt
 ore.html#isSloppyMemStore--">isSloppyMemStore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#moveFileIntoPlace-org.apache.hadoop.fs.Path-">moveFileIntoPlace</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#needsCompaction--">needsCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#postSnapshotOperation--">postSnapshotOperation</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preBulkLoadHFile-java.lang.String-long-">preBulkLoadHFile</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preFlushSeqIDEstimation--">preFlushSeqIDEstimation</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preSnapshotOperation--">preSnapshotOperation</a>, <a href="../../..
 /../../org/apache/hadoop/hbase/regionserver/HStore.html#recreateScanners-java.util.List-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-boolean-byte:A-boolean-long-boolean-">recreateScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#refreshStoreFiles--">refreshStoreFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#refreshStoreFiles-java.util.Collection-">refreshStoreFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#registerChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">registerChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#replaceStoreFiles-java.util.Collection-java.util.Collection-">replaceStoreFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#replayCompactionMarker-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescripto
 r-boolean-boolean-">replayCompactionMarker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#reportArchivedFilesForQuota-java.util.List-java.util.List-">reportArchivedFilesForQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#requestCompaction--">requestCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#requestCompaction-int-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-org.apache.hadoop.hbase.security.User-">requestCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#setDataBlockEncoderInTest-org.apache.hadoop.hbase.io.hfile.HFileDataBlockEncoder-">setDataBlockEncoderInTest</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#setScanInfo-org.apache.hadoop.hbase.regionserver.ScanInfo-">setScanInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#shouldPerformMajorComp
 action--">shouldPerformMajorCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#snapshot--">snapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#startReplayingFromWAL--">startReplayingFromWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#stopReplayingFromWAL--">stopReplayingFromWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#throttleCompaction-long-">throttleCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#timeOfOldestEdit--">timeOfOldestEdit</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#triggerMajorCompaction--">triggerMajorCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#updateSpaceQuotaAfterFileReplacement-org.apache.hadoop.hbase.quotas.R
 egionSizeStore-org.apache.hadoop.hbase.client.RegionInfo-java.util.Collection-java.util.Collection-">updateSpaceQuotaAfterFileReplacement</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#upsert-java.lang.Iterable-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#versionsToReturn-int-">versionsToReturn</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#add-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#add-java.lang.Iterable-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">add</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#addChangedReaderObserver-org.apache.hadoop.hbase.regionserver.ChangedReadersObserver-">addChangedReaderObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#areWritesEnabled--">areWritesEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#assertBulkLoadHFileOk-org.apache.hadoop.fs.Path-">assertBulkLoadHFileOk</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#bulkLoadHFile-byte:A-java.lang.String-org.apache.hadoop.fs.Path-">bulkLoadHFile</a>, <a href="../../../../../org/apache/hadoop/hbase/re
 gionserver/HStore.html#bulkLoadHFile-org.apache.hadoop.hbase.regionserver.StoreFileInfo-">bulkLoadHFile</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#cancelRequestedCompaction-org.apache.hadoop.hbase.regionserver.compactions.CompactionContext-">cancelRequestedCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#canSplit--">canSplit</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#closeAndArchiveCompactedFiles--">closeAndArchiveCompactedFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#closeAndArchiveCompactedFiles-boolean-">closeAndArchiveCompactedFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#compact-org.apache.hadoop.hbase.regionserver.compactions.CompactionContext-org.apache.hadoop.hbase.regionserver.throttle.ThroughputCont
 roller-org.apache.hadoop.hbase.security.User-">compact</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#compactRecentForTestingAssumingDefaultPolicy-int-">compactRecentForTestingAssumingDefaultPolicy</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#completeCompaction-java.util.Collection-">completeCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">createCacheConf</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createFlushContext-long-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">createFlushContext</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createStoreFileAndReader-org.apache.hadoop.fs.Path-">createStoreFileAndReader</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createWriterInTmp-long-org.apache.hadoop.hbase.
 io.compress.Compression.Algorithm-boolean-boolean-boolean-boolean-">createWriterInTmp</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#deleteChangedReaderObserver-org.apache.hadoop.hbase.regionserver.ChangedReadersObserver-">deleteChangedReaderObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#deregisterChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">deregisterChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#determineTTLFromFamily-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">determineTTLFromFamily</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#doCompaction-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequestImpl-java.util.Collection-org.apache.hadoop.hbase.security.User-long-java.util.List-">doCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#flushCache-long-org.apache.hadoop
 .hbase.regionserver.MemStoreSnapshot-org.apache.hadoop.hbase.monitoring.MonitoredTask-org.apache.hadoop.hbase.regionserver.throttle.ThroughputController-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">flushCache</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getAvgStoreFileAge--">getAvgStoreFileAge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getBlockingFileCount--">getBlockingFileCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getBytesPerChecksum-org.apache.hadoop.conf.Configuration-">getBytesPerChecksum</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCacheConfig--">getCacheConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getChecksumType-org.apache.hadoop.conf.Configuration-">getChecksumType</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCloseCheckInterval--">getCloseCh
 eckInterval</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getColumnFamilyDescriptor--">getColumnFamilyDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getColumnFamilyName--">getColumnFamilyName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedCellsCount--">getCompactedCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedCellsSize--">getCompactedCellsSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedFiles--">getCompactedFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactedFilesCount--">getCompactedFilesCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactionCheckMultiplier--">getCompactionCheckMultiplier</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactionPress
 ure--">getCompactionPressure</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactionProgress--">getCompactionProgress</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCompactPriority--">getCompactPriority</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getComparator--">getComparator</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCoprocessorHost--">getCoprocessorHost</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getCurrentParallelPutCount--">getCurrentParallelPutCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getDataBlockEncoder--">getDataBlockEncoder</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFileSystem--">getFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFlushableSize--">getFlushableSize</a>, <a href="..
 /../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFlushedCellsCount--">getFlushedCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFlushedCellsSize--">getFlushedCellsSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getFlushedOutputFileSize--">getFlushedOutputFileSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getHFilesSize--">getHFilesSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getHRegion--">getHRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getLastCompactSize--">getLastCompactSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMajorCompactedCellsCount--">getMajorCompactedCellsCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMajorCompactedCellsSize--">getMajorCompactedCellsSize</a>, <a href="../../../../../org/ap
 ache/hadoop/hbase/regionserver/HStore.html#getMaxMemStoreTS--">getMaxMemStoreTS</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMaxSequenceId--">getMaxSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMaxStoreFileAge--">getMaxStoreFileAge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMemStoreFlushSize--">getMemStoreFlushSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMemStoreSize--">getMemStoreSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getMinStoreFileAge--">getMinStoreFileAge</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getNumHFiles--">getNumHFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getNumReferenceFiles--">getNumReferenceFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getOffPeakHours--">g
 etOffPeakHours</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getRegionFileSystem--">getRegionFileSystem</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getRegionInfo--">getRegionInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanInfo--">getScanInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanner-org.apache.hadoop.hbase.client.Scan-java.util.NavigableSet-long-">getScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-boolean-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-byte:A-long-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-boolean-byte:A-boolean-long-">getScanners</a>, <a href="../../../../../
 org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-java.util.List-boolean-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-byte:A-long-boolean-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getScanners-java.util.List-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-boolean-byte:A-boolean-long-boolean-">getScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSize--">getSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSmallestReadPoint--">getSmallestReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSnapshotSize--">getSnapshotSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getSplitPoint--">getSplitPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStore
 Engine--">getStoreEngine</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefiles--">getStorefiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesCount--">getStorefilesCount</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileSize-org.apache.hadoop.hbase.regionserver.HStoreFile-">getStoreFileSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesRootLevelIndexSize--">getStorefilesRootLevelIndexSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesSize--">getStorefilesSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileTtl--">getStoreFileTtl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreHomedir-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.client.RegionInfo-byte:A-">getStoreHomedir</a>, <a href="../../
 ../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreHomedir-org.apache.hadoop.fs.Path-java.lang.String-byte:A-">getStoreHomedir</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreSizeUncompressed--">getStoreSizeUncompressed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTableName--">getTableName</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalStaticBloomSize--">getTotalStaticBloomSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalStaticIndexSize--">getTotalStaticIndexSize</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#hasReferences--">hasReferences</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#hasTooManyStoreFiles--">hasTooManyStoreFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#heapSize--">heapSize</a>, <a href="../../../../..
 /org/apache/hadoop/hbase/regionserver/HStore.html#isPrimaryReplicaStore--">isPrimaryReplicaStore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#isSloppyMemStore--">isSloppyMemStore</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#moveFileIntoPlace-org.apache.hadoop.fs.Path-">moveFileIntoPlace</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#needsCompaction--">needsCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#postSnapshotOperation--">postSnapshotOperation</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preBulkLoadHFile-java.lang.String-long-">preBulkLoadHFile</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preFlushSeqIDEstimation--">pre
 FlushSeqIDEstimation</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preSnapshotOperation--">preSnapshotOperation</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#recreateScanners-java.util.List-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-boolean-byte:A-boolean-long-boolean-">recreateScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#refreshStoreFiles--">refreshStoreFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#refreshStoreFiles-java.util.Collection-">refreshStoreFiles</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#registerChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">registerChildren</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#replaceStoreFiles-java.util.Collection-java.util.Collection-">replaceStoreFiles</a>, <a href="
 ../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#replayCompactionMarker-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor-boolean-boolean-">replayCompactionMarker</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#reportArchivedFilesForQuota-java.util.List-java.util.List-">reportArchivedFilesForQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#requestCompaction--">requestCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#requestCompaction-int-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-org.apache.hadoop.hbase.security.User-">requestCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#setDataBlockEncoderInTest-org.apache.hadoop.hbase.io.hfile.HFileDataBlockEncoder-">setDataBlockEncoderInTest</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#setSca
 nInfo-org.apache.hadoop.hbase.regionserver.ScanInfo-">setScanInfo</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#shouldPerformMajorCompaction--">shouldPerformMajorCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#snapshot--">snapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#startReplayingFromWAL--">startReplayingFromWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#stopReplayingFromWAL--">stopReplayingFromWAL</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#throttleCompaction-long-">throttleCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#timeOfOldestEdit--">timeOfOldestEdit</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#triggerMajorCompaction--">trig
 gerMajorCompaction</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#updateSpaceQuotaAfterFileReplacement-org.apache.hadoop.hbase.quotas.RegionSizeStore-org.apache.hadoop.hbase.client.RegionInfo-java.util.Collection-java.util.Collection-">updateSpaceQuotaAfterFileReplacement</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#upsert-java.lang.Iterable-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#versionsToReturn-int-">versionsToReturn</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -504,13 +498,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.82">LOG</a></pre>
 </li>
 </ul>
-<a name="mobCacheConfig">
+<a name="mobFileCache">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>mobCacheConfig</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.83">mobCacheConfig</a></pre>
+<h4>mobFileCache</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.83">mobFileCache</a></pre>
 </li>
 </ul>
 <a name="homePath">
@@ -680,29 +674,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>createCacheConf</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.132">createCacheConf</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</pre>
-<div class="block">Creates the mob cache config.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">createCacheConf</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></code></dd>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>family</code> - The current column family.</dd>
-</dl>
-</li>
-</ul>
 <a name="getConfiguration--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.139">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.131">getConfiguration</a>()</pre>
 <div class="block">Gets current config.</div>
 </li>
 </ul>
@@ -712,7 +690,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <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/HMobStore.html#line.148">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/HMobStore.html#line.140">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)
@@ -733,7 +711,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createStoreEngine</h4>
-<pre>protected&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/HMobStore.html#line.167">createStoreEngine</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
+<pre>protected&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/HMobStore.html#line.159">createStoreEngine</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
                                                  org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                  <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;cellComparator)
                                           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>
@@ -759,7 +737,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getTempDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.178">getTempDir</a>()</pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.170">getTempDir</a>()</pre>
 <div class="block">Gets the temp directory.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -773,7 +751,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriterInTmp</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.192">createWriterInTmp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.184">createWriterInTmp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date,
                                          long&nbsp;maxKeyCount,
                                          <a href="../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;compression,
                                          byte[]&nbsp;startKey,
@@ -800,7 +778,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createDelFileWriterInTmp</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.214">createDelFileWriterInTmp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.206">createDelFileWriterInTmp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date,
                                                 long&nbsp;maxKeyCount,
                                                 <a href="../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;compression,
                                                 byte[]&nbsp;startKey)
@@ -827,7 +805,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriterInTmp</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.237">createWriterInTmp</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;date,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.229">createWriterInTmp</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;date,
                                          org.apache.hadoop.fs.Path&nbsp;basePath,
                                          long&nbsp;maxKeyCount,
                                          <a href="../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;compression,
@@ -856,7 +834,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriterInTmp</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.255">createWriterInTmp</a>(<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileName.html" title="class in org.apache.hadoop.hbase.mob">MobFileName</a>&nbsp;mobFileName,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.247">createWriterInTmp</a>(<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileName.html" title="class in org.apache.hadoop.hbase.mob">MobFileName</a>&nbsp;mobFileName,
                                          org.apache.hadoop.fs.Path&nbsp;basePath,
                                          long&nbsp;maxKeyCount,
                                          <a href="../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;compression,
@@ -883,7 +861,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>commitFile</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.269">commitFile</a>(org.apache.hadoop.fs.Path&nbsp;sourceFile,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.261">commitFile</a>(org.apache.hadoop.fs.Path&nbsp;sourceFile,
                        org.apache.hadoop.fs.Path&nbsp;targetPath)
                 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">Commits the mob file.</div>
@@ -902,7 +880,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>validateMobFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.291">validateMobFile</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.283">validateMobFile</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 mob file by opening and closing it.</div>
 <dl>
@@ -919,7 +897,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>resolve</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.315">resolve</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;reference,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.307">resolve</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;reference,
                     boolean&nbsp;cacheBlocks)
              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">Reads the cell from the mob file, and the read point does not count.
@@ -941,7 +919,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>resolve</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.329">resolve</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;reference,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.321">resolve</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;reference,
                     boolean&nbsp;cacheBlocks,
                     long&nbsp;readPt,
                     boolean&nbsp;readEmptyValueOnMobCellMiss)
@@ -967,7 +945,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>readCell</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.393">readCell</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;org.apache.hadoop.fs.Path&gt;&nbsp;locations,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.385">readCell</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;org.apache.hadoop.fs.Path&gt;&nbsp;locations,
                       <a href="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;fileName,
                       <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;search,
                       boolean&nbsp;cacheMobBlocks,
@@ -1001,7 +979,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getPath</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.452">getPath</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.444">getPath</a>()</pre>
 <div class="block">Gets the mob file path.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1015,7 +993,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCellsCountCompactedToMob</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.456">updateCellsCountCompactedToMob</a>(long&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.448">updateCellsCountCompactedToMob</a>(long&nbsp;count)</pre>
 </li>
 </ul>
 <a name="getCellsCountCompactedToMob--">
@@ -1024,7 +1002,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellsCountCompactedToMob</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.460">getCellsCountCompactedToMob</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.452">getCellsCountCompactedToMob</a>()</pre>
 </li>
 </ul>
 <a name="updateCellsCountCompactedFromMob-long-">
@@ -1033,7 +1011,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCellsCountCompactedFromMob</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.464">updateCellsCountCompactedFromMob</a>(long&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.456">updateCellsCountCompactedFromMob</a>(long&nbsp;count)</pre>
 </li>
 </ul>
 <a name="getCellsCountCompactedFromMob--">
@@ -1042,7 +1020,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellsCountCompactedFromMob</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.468">getCellsCountCompactedFromMob</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.460">getCellsCountCompactedFromMob</a>()</pre>
 </li>
 </ul>
 <a name="updateCellsSizeCompactedToMob-long-">
@@ -1051,7 +1029,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCellsSizeCompactedToMob</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.472">updateCellsSizeCompactedToMob</a>(long&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.464">updateCellsSizeCompactedToMob</a>(long&nbsp;size)</pre>
 </li>
 </ul>
 <a name="getCellsSizeCompactedToMob--">
@@ -1060,7 +1038,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellsSizeCompactedToMob</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.476">getCellsSizeCompactedToMob</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.468">getCellsSizeCompactedToMob</a>()</pre>
 </li>
 </ul>
 <a name="updateCellsSizeCompactedFromMob-long-">
@@ -1069,7 +1047,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCellsSizeCompactedFromMob</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.480">updateCellsSizeCompactedFromMob</a>(long&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.472">updateCellsSizeCompactedFromMob</a>(long&nbsp;size)</pre>
 </li>
 </ul>
 <a name="getCellsSizeCompactedFromMob--">
@@ -1078,7 +1056,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellsSizeCompactedFromMob</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.484">getCellsSizeCompactedFromMob</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.476">getCellsSizeCompactedFromMob</a>()</pre>
 </li>
 </ul>
 <a name="updateMobFlushCount--">
@@ -1087,7 +1065,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMobFlushCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.488">updateMobFlushCount</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.480">updateMobFlushCount</a>()</pre>
 </li>
 </ul>
 <a name="getMobFlushCount--">
@@ -1096,7 +1074,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMobFlushCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.492">getMobFlushCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.484">getMobFlushCount</a>()</pre>
 </li>
 </ul>
 <a name="updateMobFlushedCellsCount-long-">
@@ -1105,7 +1083,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMobFlushedCellsCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.496">updateMobFlushedCellsCount</a>(long&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.488">updateMobFlushedCellsCount</a>(long&nbsp;count)</pre>
 </li>
 </ul>
 <a name="getMobFlushedCellsCount--">
@@ -1114,7 +1092,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMobFlushedCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.500">getMobFlushedCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.492">getMobFlushedCellsCount</a>()</pre>
 </li>
 </ul>
 <a name="updateMobFlushedCellsSize-long-">
@@ -1123,7 +1101,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMobFlushedCellsSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.504">updateMobFlushedCellsSize</a>(long&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.496">updateMobFlushedCellsSize</a>(long&nbsp;size)</pre>
 </li>
 </ul>
 <a name="getMobFlushedCellsSize--">
@@ -1132,7 +1110,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMobFlushedCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.508">getMobFlushedCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.500">getMobFlushedCellsSize</a>()</pre>
 </li>
 </ul>
 <a name="updateMobScanCellsCount-long-">
@@ -1141,7 +1119,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMobScanCellsCount</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.512">updateMobScanCellsCount</a>(long&nbsp;count)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.504">updateMobScanCellsCount</a>(long&nbsp;count)</pre>
 </li>
 </ul>
 <a name="getMobScanCellsCount--">
@@ -1150,7 +1128,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMobScanCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.516">getMobScanCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.508">getMobScanCellsCount</a>()</pre>
 </li>
 </ul>
 <a name="updateMobScanCellsSize-long-">
@@ -1159,7 +1137,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMobScanCellsSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.520">updateMobScanCellsSize</a>(long&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.512">updateMobScanCellsSize</a>(long&nbsp;size)</pre>
 </li>
 </ul>
 <a name="getMobScanCellsSize--">
@@ -1168,7 +1146,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getMobScanCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.524">getMobScanCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.516">getMobScanCellsSize</a>()</pre>
 </li>
 </ul>
 <a name="getRefCellTags--">
@@ -1177,7 +1155,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getRefCellTags</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.528">getRefCellTags</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HMobStore.html#line.520">getRefCellTags</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 a6291d4..e5d114a 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.3108">HRegion.BatchOperation.Visitor</a></pre>
+public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.3142">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.3113">visit</a>(int&nbsp;index)
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html#line.3147">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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
index 79cb21b..d8d391b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
@@ -378,1508 +378,1510 @@
 <span class="sourceLineNo">370</span><a name="line.370"></a>
 <span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
 <span class="sourceLineNo">372</span>  public void returnBlock(HFileBlock block) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    BlockCache blockCache = this.cacheConf.getBlockCache();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (blockCache != null &amp;&amp; block != null) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      BlockCacheKey cacheKey = new BlockCacheKey(this.getFileContext().getHFileName(),<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          block.getOffset(), this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      blockCache.returnBlock(cacheKey, block);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   *         first KeyValue.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (dataBlockIndexReader == null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      throw new BlockIndexNotLoadedException();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   *<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return the first row key, or null if the file is empty.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // We have to copy the row part to form the row key alone<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  /**<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   *<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return the last row key, or null if the file is empty.<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  @Override<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    // We have to copy the row part to form the row key alone<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    return getLastKey().map(CellUtil::cloneRow);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  /** @return number of KV entries in this HFile */<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public long getEntries() {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    return trailer.getEntryCount();<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>  /** @return comparator */<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  @Override<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public CellComparator getComparator() {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    return comparator;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  /** @return compression algorithm */<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return compressAlgo;<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>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  @Override<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public long indexSize() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            : 0);<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>  @Override<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public String getName() {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return name;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  @Override<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return dataBlockIndexReader;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  @Override<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public FixedFileTrailer getTrailer() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return trailer;<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>  @Override<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public boolean isPrimaryReplicaReader() {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    return primaryReplicaReader;<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>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * is invoked on a scanner that is not seeked.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  @SuppressWarnings("serial")<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    public NotSeekedException() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      super("Not seeked to a key/value");<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>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    private ByteBuff blockBuffer;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    protected final boolean cacheBlocks;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    protected final boolean pread;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    protected final boolean isCompaction;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    private int currKeyLen;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    private int currValueLen;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    private int currMemstoreTSLen;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    private long currMemstoreTS;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Updated but never read?<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    protected final HFile.Reader reader;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    private int currTagsLen;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // buffer backed keyonlyKV<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.503"></a>
-<span class="sourceLineNo">504</span>     * current data block is the last data block.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>     *<a name="line.505"></a>
-<span class="sourceLineNo">506</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>     */<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    protected Cell nextIndexedKey;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    // Current block being used<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    protected HFileBlock curBlock;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Previous blocks that were used in the course of the read<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        final boolean pread, final boolean isCompaction) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.reader = reader;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      this.cacheBlocks = cacheBlocks;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.pread = pread;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      this.isCompaction = isCompaction;<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>    void updateCurrBlockRef(HFileBlock block) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        return;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        prevBlocks.add(this.curBlock);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      this.curBlock = block;<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>    void reset() {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>        this.prevBlocks.add(this.curBlock);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      }<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      this.curBlock = null;<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>    private void returnBlockToCache(HFileBlock block) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (LOG.isTraceEnabled()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.trace("Returning the block : " + block);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.reader.returnBlock(block);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    private void returnBlocks(boolean returnAll) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      this.prevBlocks.clear();<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        returnBlockToCache(this.curBlock);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        this.curBlock = null;<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>    @Override<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    public boolean isSeeked(){<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return blockBuffer != null;<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>    @Override<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    public String toString() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (!isSeeked())<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        throw new NotSeekedException();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>    @Override<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    public HFile.Reader getReader() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      return reader;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    private int getKVBufSize() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      if (currTagsLen &gt; 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      return kvBufSize;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    @Override<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    public void close() {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      if (!pread) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        reader.unbufferStream();<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      this.returnBlocks(true);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // HFile block's buffer so as to position to the next cell.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private int getCurCellSerializedSize() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.602"></a>
-<span class="sourceLineNo">603</span>          + currMemstoreTSLen;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      }<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return curCellSize;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    protected void readKeyValueLen() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      // byte buffer array a byte at a time.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      // earlier way is better by doing mark and reset?<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      // But ensure that you read long instead of two ints<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      // Read top half as an int of key length and bottom int as value length<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      checkKeyValueLen();<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        // Tags length is a short.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        checkTagsLen();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      readMvccVersion(p);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>    private final void checkTagsLen() {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      if (checkLen(this.currTagsLen)) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.638"></a>
-<span class="sourceLineNo">639</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.639"></a>
-<span class="sourceLineNo">640</span>            this.blockBuffer.limit() +<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    /**<a name="line.645"></a>
-<span class="sourceLineNo">646</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>     * @param offsetFromPos<a name="line.647"></a>
-<span class="sourceLineNo">648</span>     */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      // See if we even need to decode mvcc.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        currMemstoreTS = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        currMemstoreTSLen = 1;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>        return;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      _readMvccVersion(offsetFromPos);<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>    /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>     * Actually do the mvcc read. Does no checks.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>     * @param offsetFromPos<a name="line.662"></a>
-<span class="sourceLineNo">663</span>     */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      // Also the method is kept small so can be inlined.<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      if (len == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        this.currMemstoreTS = firstByte;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      } else {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        int remaining = len -1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>        long i = 0;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        offsetFromPos++;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          i = i &lt;&lt; 16;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          i = i | (s &amp; 0xFFFF);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          i = i &lt;&lt; 8;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>          i = i | (b &amp; 0xFF);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      }<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      this.currMemstoreTSLen = len;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    /**<a name="line.699"></a>
-<span class="sourceLineNo">700</span>     * Within a loaded block, seek looking for the last key that is smaller than<a name="line.700"></a>
-<span class="sourceLineNo">701</span>     * (or equal to?) the key we are interested in.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>     * A note on the seekBefore: if you have seekBefore = true, AND the first<a name="line.702"></a>
-<span class="sourceLineNo">703</span>     * key in the block = key, then you'll get thrown exceptions. The caller has<a name="line.703"></a>
-<span class="sourceLineNo">704</span>     * to check for that case and load the previous block as appropriate.<a name="line.704"></a>
-<span class="sourceLineNo">705</span>     * @param key<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     *          the key to find<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * @param seekBefore<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     *          find the key before the given key in case of exact match.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>     * @return 0 in case of an exact key match, 1 in case of an inexact match,<a name="line.709"></a>
-<span class="sourceLineNo">710</span>     *         -2 in case of an inexact match and furthermore, the input key<a name="line.710"></a>
-<span class="sourceLineNo">711</span>     *         less than the first key of current block(e.g. using a faked index<a name="line.711"></a>
-<span class="sourceLineNo">712</span>     *         key)<a name="line.712"></a>
-<span class="sourceLineNo">713</span>     */<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    protected int blockSeek(Cell key, boolean seekBefore) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      int klen, vlen, tlen = 0;<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      int lastKeyValueSize = -1;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      int offsetFromPos;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      do {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        offsetFromPos = 0;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        // Better to ensure that we use the BB Utils here<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        long ll = blockBuffer.getLongAfterPosition(offsetFromPos);<a name="line.721"></a>
-<span class="sourceLineNo">722</span>        klen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        vlen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        if (checkKeyLen(klen) || checkLen(vlen)) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>          throw new IllegalStateException("Invalid klen " + klen + " or vlen "<a name="line.725"></a>
-<span class="sourceLineNo">726</span>              + vlen + ". Block offset: "<a name="line.726"></a>
-<span class="sourceLineNo">727</span>              + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.727"></a>
-<span class="sourceLineNo">728</span>              + blockBuffer.position() + " (without header).");<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        }<a name="line.729"></a>
-<span class="sourceLineNo">730</span>        offsetFromPos += Bytes.SIZEOF_LONG;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        blockBuffer.asSubByteBuffer(blockBuffer.position() + offsetFromPos, klen, pair);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>        bufBackedKeyOnlyKv.setKey(pair.getFirst(), pair.getSecond(), klen);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>        int comp =<a name="line.733"></a>
-<span class="sourceLineNo">734</span>            PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), key, bufBackedKeyOnlyKv);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>        offsetFromPos += klen + vlen;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        if (this.reader.getFileContext().isIncludesTags()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>          // Read short as unsigned, high byte first<a name="line.737"></a>
-<span class="sourceLineNo">738</span>          tlen = ((blockBuffer.getByteAfterPosition(offsetFromPos) &amp; 0xff) &lt;&lt; 8)<a name="line.738"></a>
-<span class="sourceLineNo">739</span>              ^ (blockBuffer.getByteAfterPosition(offsetFromPos + 1) &amp; 0xff);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>          if (checkLen(tlen)) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            throw new IllegalStateException("Invalid tlen " + tlen + ". Block offset: "<a name="line.741"></a>
-<span class="sourceLineNo">742</span>                + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.742"></a>
-<span class="sourceLineNo">743</span>                + blockBuffer.position() + " (without header).");<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          }<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          // add the two bytes read for the tags.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          offsetFromPos += tlen + (Bytes.SIZEOF_SHORT);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        if (this.reader.shouldIncludeMemStoreTS()) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>          // Directly read the mvcc based on current position<a name="line.749"></a>
-<span class="sourceLineNo">750</span>          readMvccVersion(offsetFromPos);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>        }<a name="line.751"></a>
-<span class="sourceLineNo">752</span>        if (comp == 0) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>          if (seekBefore) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>            if (lastKeyValueSize &lt; 0) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>              throw new IllegalStateException("blockSeek with seekBefore "<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  + "at the first key of the block: key=" + CellUtil.getCellKeyAsString(key)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                  + ", blockOffset=" + curBlock.getOffset() + ", onDiskSize="<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                  + curBlock.getOnDiskSizeWithHeader());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            readKeyValueLen();<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            return 1; // non exact match.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>          }<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          currKeyLen = klen;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          currValueLen = vlen;<a name="line.765"></a>
-<span class="sourceLineNo">766</span>          currTagsLen = tlen;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>          return 0; // indicate exact match<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        } else if (comp &lt; 0) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          if (lastKeyValueSize &gt; 0) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          readKeyValueLen();<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          if (lastKeyValueSize == -1 &amp;&amp; blockBuffer.position() == 0) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>            return HConstants.INDEX_KEY_MAGIC;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          }<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          return 1;<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
-<span class="sourceLineNo">778</span>        // The size of this key/value tuple, including key/value length fields.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        lastKeyValueSize = klen + vlen + currMemstoreTSLen + KEY_VALUE_LEN_SIZE;<a name="line.779"></a>
-<span class="sourceLineNo">780</span>        // include tag length also if tags included with KV<a name="line.780"></a>
-<span class="sourceLineNo">781</span>        if (reader.getFileContext().isIncludesTags()) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>          lastKeyValueSize += tlen + Bytes.SIZEOF_SHORT;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        blockBuffer.skip(lastKeyValueSize);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      } while (blockBuffer.hasRemaining());<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>      // Seek to the last key we successfully read. This will happen if this is<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      // the last key/value pair in the file, in which case the following call<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      // to next() has to return false.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      blockBuffer.moveBack(lastKeyValueSize);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      readKeyValueLen();<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      return 1; // didn't exactly find it.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    }<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    @Override<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    public Cell getNextIndexedKey() {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      return nextIndexedKey;<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>    @Override<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    public int seekTo(Cell key) throws IOException {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      return seekTo(key, true);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    @Override<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    public int reseekTo(Cell key) throws IOException {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      int compared;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (isSeeked()) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        compared = compareKey(reader.getComparator(), key);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        if (compared &lt; 1) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span>          // If the required key is less than or equal to current key, then<a name="line.811"></a>
-<span class="sourceLineNo">812</span>          // don't do anything.<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          return compared;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } else {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          // The comparison with no_next_index_key has to be checked<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          if (this.nextIndexedKey != null &amp;&amp;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>              (this.nextIndexedKey == KeyValueScanner.NO_NEXT_INDEXED_KEY || PrivateCellUtil<a name="line.817"></a>
-<span class="sourceLineNo">818</span>                  .compareKeyIgnoresMvcc(reader.getComparator(), key, nextIndexedKey) &lt; 0)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            // The reader shall continue to scan the current data block instead<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            // of querying the<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            // block index as long as it knows the target key is strictly<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            // smaller than<a name="line.822"></a>
-<span class="sourceLineNo">823</span>            // the next indexed key or the current data block is the last data<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // block.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            return loadBlockAndSeekToKey(this.curBlock, nextIndexedKey, false, key,<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                false);<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      // Don't rewind on a reseek operation, because reseek implies that we are<a name="line.831"></a>
-<span class="sourceLineNo">832</span>      // always going forward in the file.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      return seekTo(key, false);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    }<a name="line.834"></a>
-<span class="sourceLineNo">835</span><a name="line.835"></a>
-<span class="sourceLineNo">836</span>    /**<a name="line.836"></a>
-<span class="sourceLineNo">837</span>     * An internal API function. Seek to the given key, optionally rewinding to<a name="line.837"></a>
-<span class="sourceLineNo">838</span>     * the first key of the block before doing the seek.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>     *<a name="line.839"></a>
-<span class="sourceLineNo">840</span>     * @param key - a cell representing the key that we need to fetch<a name="line.840"></a>
-<span class="sourceLineNo">841</span>     * @param rewind whether to rewind to the first key of the block before<a name="line.841"></a>
-<span class="sourceLineNo">842</span>     *        doing the seek. If this is false, we are assuming we never go<a name="line.842"></a>
-<span class="sourceLineNo">843</span>     *        back, otherwise the result is undefined.<a name="line.843"></a>
-<span class="sourceLineNo">844</span>     * @return -1 if the key is earlier than the first key of the file,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>     *         0 if we are at the given key, 1 if we are past the given key<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     *         -2 if the key is earlier than the first key of the file while<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     *         using a faked index key<a name="line.847"></a>
-<span class="sourceLineNo">848</span>     * @throws IOException<a name="line.848"></a>
-<span class="sourceLineNo">849</span>     */<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    public int seekTo(Cell key, boolean rewind) throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      HFileBlockIndex.BlockIndexReader indexReader = reader.getDataBlockIndexReader();<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      BlockWithScanInfo blockWithScanInfo = indexReader.loadDataBlockWithScanInfo(key, curBlock,<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          cacheBlocks, pread, isCompaction, getEffectiveDataBlockEncoding());<a name="line.853"></a>
-<span class="sourceLineNo">854</span>      if (blockWithScanInfo == null || blockWithScanInfo.getHFileBlock() == null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>        // This happens if the key e.g. falls before the beginning of the<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        // file.<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        return -1;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      return loadBlockAndSeekToKey(blockWithScanInfo.getHFileBlock(),<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          blockWithScanInfo.getNextIndexedKey(), rewind, key, false);<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
-<span class="sourceLineNo">862</span><a name="line.862"></a>
-<span class="sourceLineNo">863</span>    @Override<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    public boolean seekBefore(Cell key) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      HFileBlock seekToBlock = reader.getDataBlockIndexReader().seekToDataBlock(key, curBlock,<a name="line.865"></a>
-<span class="sourceLineNo">866</span>          cacheBlocks, pread, isCompaction, reader.getEffectiveEncodingInCache(isCompaction));<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (seekToBlock == null) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        return false;<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      Cell firstKey = getFirstKeyCellInBlock(seekToBlock);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      if (PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), firstKey, key) &gt;= 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        long previousBlockOffset = seekToBlock.getPrevBlockOffset();<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        // The key we are interested in<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        if (previousBlockOffset == -1) {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          // we have a 'problem', the key we want is the first of the file.<a name="line.875"></a>
-<span class="sourceLineNo">876</span>          return false;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // The first key in the current block 'seekToBlock' is greater than the given<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        // seekBefore key. We will go ahead by reading the next block that satisfies the<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        // given key. Return the current block before reading the next one.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>        reader.returnBlock(seekToBlock);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        // It is important that we compute and pass onDiskSize to the block<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        // reader so that it does not have to read the header separately to<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        // figure out the size.  Currently, we do not have a way to do this<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        // correctly in the general case however.<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        // TODO: See https://issues.apache.org/jira/browse/HBASE-14576<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        int prevBlockSize = -1;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        seekToBlock = reader.readBlock(previousBlockOffset,<a name="line.889"></a>
-<span class="sourceLineNo">890</span>            prevBlockSize, cacheBlocks,<a name="line.890"></a>
-<span class="sourceLineNo">891</span>            pread, isCompaction, true, BlockType.DATA, getEffectiveDataBlockEncoding());<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        // TODO shortcut: seek forward in this block to the last key of the<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        // block.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      loadBlockAndSeekToKey(seekToBlock, firstKey, true, key, true);<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      return true;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>    /**<a name="line.899"></a>
-<span class="sourceLineNo">900</span>     * Scans blocks in the "scanned" section of the {@link HFile} until the next<a name="line.900"></a>
-<span class="sourceLineNo">901</span>     * data block is found.<a name="line.901"></a>
-<span class="sourceLineNo">902</span>     *<a name="line.902"></a>
-<span class="sourceLineNo">903</span>     * @return the next block, or null if there are no more data blocks<a name="line.903"></a>
-<span class="sourceLineNo">904</span>     * @throws IOException<a name="line.904"></a>
-<span class="sourceLineNo">905</span>     */<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.906"></a>
-<span class="sourceLineNo">907</span>        justification="Yeah, unnecessary null check; could do w/ clean up")<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    protected HFileBlock readNextDataBlock() throws IOException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>      long lastDataBlockOffset = reader.getTrailer().getLastDataBlockOffset();<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (curBlock == null)<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        return null;<a name="line.911"></a>
-<span class="sourceLineNo">912</span><a name="line.912"></a>
-<span class="sourceLineNo">913</span>      HFileBlock block = this.curBlock;<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>      do {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        if (block.getOffset() &gt;= lastDataBlockOffset) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>          return null;<a name="line.917"></a>
-<span class="sourceLineNo">918</span>        }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>        if (block.getOffset() &lt; 0) {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>          throw new IOException("Invalid block file offset: " + block);<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
-<span class="sourceLineNo">923</span><a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // We are reading the next block without block type validation, because<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        // it might turn out to be a non-data block.<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        block = reader.readBlock(block.getOffset() + block.getOnDiskSizeWithHeader(),<a name="line.926"></a>
-<span class="sourceLineNo">927</span>            block.getNextBlockOnDiskSize(), cacheBlocks, pread,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>            isCompaction, true, null, getEffectiveDataBlockEncoding());<a name="line.928"></a>
-<span class="sourceLineNo">929</span>        if (block != null &amp;&amp; !block.getBlockType().isData()) { // Findbugs: NP_NULL_ON_SOME_PATH<a name="line.929"></a>
-<span class="sourceLineNo">930</span>          // Whatever block we read we will be returning it unless<a name="line.930"></a>
-<span class="sourceLineNo">931</span>          // it is a datablock. Just in case the blocks are non data blocks<a name="line.931"></a>
-<span class="sourceLineNo">932</span>          reader.returnBlock(block);<a name="line.932"></a>
-<span class="sourceLineNo">933</span>        }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      } while (!block.getBlockType().isData());<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>      return block;<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">373</span>    if (block != null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      this.cacheConf.getBlockCache().ifPresent(blockCache -&gt; {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        BlockCacheKey cacheKey =<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            new BlockCacheKey(this.getFileContext().getHFileName(), block.getOffset(),<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        blockCache.returnBlock(cacheKey, block);<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>  }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   *         first KeyValue.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    if (dataBlockIndexReader == null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      throw new BlockIndexNotLoadedException();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   *<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * @return the first row key, or null if the file is empty.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    // We have to copy the row part to form the row key alone<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>  /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   *<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @return the last row key, or null if the file is empty.<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // We have to copy the row part to form the row key alone<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    return getLastKey().map(CellUtil::cloneRow);<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>  /** @return number of KV entries in this HFile */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  public long getEntries() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    return trailer.getEntryCount();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  /** @return comparator */<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  public CellComparator getComparator() {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return comparator;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /** @return compression algorithm */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  @Override<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    return compressAlgo;<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>  /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public long indexSize() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.446"></a>
+<span class="sourceLineNo">447</span>            : 0);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>  @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>  public String getName() {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    return name;<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>  @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    return dataBlockIndexReader;<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>  @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>  public FixedFileTrailer getTrailer() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    return trailer;<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>  @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  public boolean isPrimaryReplicaReader() {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    return primaryReplicaReader;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * is invoked on a scanner that is not seeked.<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  @SuppressWarnings("serial")<a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    public NotSeekedException() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      super("Not seeked to a key/value");<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><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    private ByteBuff blockBuffer;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    protected final boolean cacheBlocks;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    protected final boolean pread;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    protected final boolean isCompaction;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    private int currKeyLen;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    private int currValueLen;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    private int currMemstoreTSLen;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    private long currMemstoreTS;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Updated but never read?<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    protected final HFile.Reader reader;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    private int currTagsLen;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // buffer backed keyonlyKV<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<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>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.506"></a>
+<span class="sourceLineNo">507</span>     * current data block is the last data block.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>     *<a name="line.508"></a>
+<span class="sourceLineNo">509</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.509"></a>
+<span class="sourceLineNo">510</span>     */<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    protected Cell nextIndexedKey;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // Current block being used<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    protected HFileBlock curBlock;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // Previous blocks that were used in the course of the read<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        final boolean pread, final boolean isCompaction) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      this.reader = reader;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      this.cacheBlocks = cacheBlocks;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      this.pread = pread;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>      this.isCompaction = isCompaction;<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>    void updateCurrBlockRef(HFileBlock block) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        return;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        prevBlocks.add(this.curBlock);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      this.curBlock = block;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>    void reset() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        this.prevBlocks.add(this.curBlock);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      this.curBlock = null;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private void returnBlockToCache(HFileBlock block) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      if (LOG.isTraceEnabled()) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        LOG.trace("Returning the block : " + block);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      this.reader.returnBlock(block);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    private void returnBlocks(boolean returnAll) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      this.prevBlocks.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        returnBlockToCache(this.curBlock);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        this.curBlock = null;<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>    @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    public boolean isSeeked(){<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return blockBuffer != null;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>    @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    public String toString() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      if (!isSeeked())<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        throw new NotSeekedException();<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>    @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    public HFile.Reader getReader() {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      return reader;<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>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    private int getKVBufSize() {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      if (currTagsLen &gt; 0) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      return kvBufSize;<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>    @Override<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    public void close() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      if (!pread) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        reader.unbufferStream();<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.returnBlocks(true);<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>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    // HFile block's buffer so as to position to the next cell.<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    private int getCurCellSerializedSize() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.605"></a>
+<span class="sourceLineNo">606</span>          + currMemstoreTSLen;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      return curCellSize;<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>    protected void readKeyValueLen() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.616"></a>
+<span class="sourceLineNo">617</span>      // byte buffer array a byte at a time.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      // earlier way is better by doing mark and reset?<a name="line.621"></a>
+<span class="sourceLineNo">622</span>      // But ensure that you read long instead of two ints<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      // Read top half as an int of key length and bottom int as value length<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>      checkKeyValueLen();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        // Tags length is a short.<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        checkTagsLen();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      readMvccVersion(p);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    private final void checkTagsLen() {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      if (checkLen(this.currTagsLen)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.641"></a>
+<span class="sourceLineNo">642</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.642"></a>
+<span class="sourceLineNo">643</span>            this.blockBuffer.limit() +<a name="line.643"></a>
+<span class="sourceLineNo">644</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>    /**<a name="line.648"></a>
+<span class="sourceLineNo">649</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.649"></a>
+<span class="sourceLineNo">650</span>     * @param offsetFromPos<a name="line.650"></a>
+<span class="sourceLineNo">651</span>     */<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      // See if we even need to decode mvcc.<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        currMemstoreTS = 0;<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        currMemstoreTSLen = 1;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        return;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      _readMvccVersion(offsetFromPos);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>    /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>     * Actually do the mvcc read. Does no checks.<a name="line.664"></a>
+<span class="sourceLineNo">665</span>     * @param offsetFromPos<a name="line.665"></a>
+<span class="sourceLineNo">666</span>     */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      // Also the method is kept small so can be inlined.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      if (len == 1) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        this.currMemstoreTS = firstByte;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      } else {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        int remaining = len -1;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        long i = 0;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        offsetFromPos++;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>          i = i &lt;&lt; 16;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>          i = i | (s &amp; 0xFFFF);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>          i = i &lt;&lt; 8;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>          i = i | (b &amp; 0xFF);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      this.currMemstoreTSLen = len;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>    /**<a name="line.702"></a>
+<span class="sourceLineNo">703</span>     * Within a loaded block, seek looking for the last key that is smaller than<a name="line.703"></a>
+<spa

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index b8d0e70..ac5997f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1719">HRegionServer.CompactionChecker</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1722">HRegionServer.CompactionChecker</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -233,7 +233,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>instance</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1720">instance</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1723">instance</a></pre>
 </li>
 </ul>
 <a name="majorCompactPriority">
@@ -242,7 +242,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactPriority</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1721">majorCompactPriority</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1724">majorCompactPriority</a></pre>
 </li>
 </ul>
 <a name="DEFAULT_PRIORITY">
@@ -251,7 +251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_PRIORITY</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1722">DEFAULT_PRIORITY</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1725">DEFAULT_PRIORITY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.CompactionChecker.DEFAULT_PRIORITY">Constant Field Values</a></dd>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>iteration</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1725">iteration</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1728">iteration</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CompactionChecker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1727">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;h,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1730">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;h,
                   int&nbsp;sleepTime,
                   <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper)</pre>
 </li>
@@ -300,7 +300,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1741">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1744">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index 5d4def3..30395a4 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3429">HRegionServer.MovedRegionInfo</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3432">HRegionServer.MovedRegionInfo</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>
@@ -218,7 +218,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>serverName</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3430">serverName</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3433">serverName</a></pre>
 </li>
 </ul>
 <a name="seqNum">
@@ -227,7 +227,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>seqNum</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3431">seqNum</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3434">seqNum</a></pre>
 </li>
 </ul>
 <a name="ts">
@@ -236,7 +236,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ts</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3432">ts</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3435">ts</a></pre>
 </li>
 </ul>
 </li>
@@ -253,7 +253,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MovedRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3434">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3437">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                        long&nbsp;closeSeqNum)</pre>
 </li>
 </ul>
@@ -271,7 +271,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3440">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3443">getServerName</a>()</pre>
 </li>
 </ul>
 <a name="getSeqNum--">
@@ -280,7 +280,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3444">getSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3447">getSeqNum</a>()</pre>
 </li>
 </ul>
 <a name="getMoveTime--">
@@ -289,7 +289,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMoveTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3448">getMoveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3451">getMoveTime</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index 2a00361..fa924cd 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3516">HRegionServer.MovedRegionsCleaner</a>
+<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3519">HRegionServer.MovedRegionsCleaner</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></pre>
 <div class="block">Creates a Chore thread to clean the moved region cache.</div>
@@ -242,7 +242,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3517">regionServer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3520">regionServer</a></pre>
 </li>
 </ul>
 <a name="stoppable">
@@ -251,7 +251,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stoppable</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3518">stoppable</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3521">stoppable</a></pre>
 </li>
 </ul>
 </li>
@@ -268,7 +268,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MovedRegionsCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3520">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3523">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer,
                             <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stoppable)</pre>
 </li>
 </ul>
@@ -286,7 +286,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>create</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3528">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)</pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3531">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)</pre>
 </li>
 </ul>
 <a name="chore--">
@@ -295,7 +295,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3539">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3542">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>
@@ -310,7 +310,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3544">stop</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;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3547">stop</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;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -328,7 +328,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3549">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3552">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
index fce5824..dd31dd4 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1781">HRegionServer.PeriodicMemStoreFlusher</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1784">HRegionServer.PeriodicMemStoreFlusher</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -232,7 +232,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>server</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1782">server</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1785">server</a></pre>
 </li>
 </ul>
 <a name="RANGE_OF_DELAY">
@@ -241,7 +241,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>RANGE_OF_DELAY</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1783">RANGE_OF_DELAY</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1786">RANGE_OF_DELAY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemStoreFlusher.RANGE_OF_DELAY">Constant Field Values</a></dd>
@@ -254,7 +254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>MIN_DELAY_TIME</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1784">MIN_DELAY_TIME</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1787">MIN_DELAY_TIME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemStoreFlusher.MIN_DELAY_TIME">Constant Field Values</a></dd>
@@ -267,7 +267,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>rangeOfDelay</h4>
-<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1786">rangeOfDelay</a></pre>
+<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1789">rangeOfDelay</a></pre>
 </li>
 </ul>
 </li>
@@ -284,7 +284,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PeriodicMemStoreFlusher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1787">PeriodicMemStoreFlusher</a>(int&nbsp;cacheFlushInterval,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1790">PeriodicMemStoreFlusher</a>(int&nbsp;cacheFlushInterval,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;server)</pre>
 </li>
 </ul>
@@ -302,7 +302,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1796">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1799">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html
index ff60765..05335e7 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3820">HRegionServer.SystemExitWhenAbortTimeout</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3835">HRegionServer.SystemExitWhenAbortTimeout</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TimerTask.html?is-external=true" title="class or interface in java.util">TimerTask</a></pre>
 <div class="block">Force to terminate region server when abort timeout.</div>
 </li>
@@ -199,7 +199,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TimerTask.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SystemExitWhenAbortTimeout</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html#line.3822">SystemExitWhenAbortTimeout</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html#line.3837">SystemExitWhenAbortTimeout</a>()</pre>
 </li>
 </ul>
 </li>
@@ -216,7 +216,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TimerTask.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html#line.3826">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.SystemExitWhenAbortTimeout.html#line.3841">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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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/4f8b8424/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 aa0564c..56f5ff2 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -141,10 +141,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.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</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/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</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>
+<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/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 2cef8bd..4ade4c1 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -199,8 +199,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.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html
index c0d1f12..20b038d 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.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,"i5":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.62">BlockCacheTmpl.ImplData</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.63">BlockCacheTmpl.ImplData</a>
 extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 </li>
 </ul>
@@ -139,10 +139,14 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#m_bc">m_bc</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#m_cacheConfig">m_cacheConfig</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#m_config">m_config</a></span></code>&nbsp;</td>
 </tr>
@@ -179,18 +183,26 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#getBc--">getBc</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#getCacheConfig--">getCacheConfig</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#getConfig--">getConfig</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<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/tmpl/regionserver/BlockCacheTmpl.ImplData.html#setBc-org.apache.hadoop.hbase.io.hfile.BlockCache-">setBc</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</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/tmpl/regionserver/BlockCacheTmpl.ImplData.html#setCacheConfig-org.apache.hadoop.hbase.io.hfile.CacheConfig-">setCacheConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<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/tmpl/regionserver/BlockCacheTmpl.ImplData.html#setConfig-org.apache.hadoop.conf.Configuration-">setConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;config)</code>&nbsp;</td>
 </tr>
@@ -222,16 +234,25 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_cacheConfig</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.75">m_cacheConfig</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.76">m_cacheConfig</a></pre>
 </li>
 </ul>
 <a name="m_config">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>m_config</h4>
-<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.86">m_config</a></pre>
+<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.87">m_config</a></pre>
+</li>
+</ul>
+<a name="m_bc">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>m_bc</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.98">m_bc</a></pre>
 </li>
 </ul>
 </li>
@@ -248,7 +269,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ImplData</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.62">ImplData</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.63">ImplData</a>()</pre>
 </li>
 </ul>
 </li>
@@ -265,7 +286,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setCacheConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.66">setCacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.67">setCacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</pre>
 </li>
 </ul>
 <a name="getCacheConfig--">
@@ -274,7 +295,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <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/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.71">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/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.72">getCacheConfig</a>()</pre>
 </li>
 </ul>
 <a name="setConfig-org.apache.hadoop.conf.Configuration-">
@@ -283,16 +304,34 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.77">setConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;config)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.78">setConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;config)</pre>
 </li>
 </ul>
 <a name="getConfig--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getConfig</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.82">getConfig</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.83">getConfig</a>()</pre>
+</li>
+</ul>
+<a name="setBc-org.apache.hadoop.hbase.io.hfile.BlockCache-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBc</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.89">setBc</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</pre>
+</li>
+</ul>
+<a name="getBc--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getBc</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html#line.94">getBc</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html
index 90a0035..899e233 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.55">BlockCacheTmpl.Intf</a>
+<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.56">BlockCacheTmpl.Intf</a>
 extends org.jamon.AbstractTemplateProxy.Intf</pre>
 </li>
 </ul>
@@ -158,7 +158,7 @@ extends org.jamon.AbstractTemplateProxy.Intf</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html#line.59">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.Intf.html#line.60">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
             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/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html
index b8d8804..9f71d42 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.36">BlockCacheTmpl</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.37">BlockCacheTmpl</a>
 extends org.jamon.AbstractTemplateProxy</pre>
 </li>
 </ul>
@@ -209,20 +209,23 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>org.jamon.Renderer</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-            org.apache.hadoop.conf.Configuration&nbsp;config)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">makeRenderer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+            org.apache.hadoop.conf.Configuration&nbsp;config,
+            <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</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/tmpl/regionserver/BlockCacheTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">render</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
       <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-      org.apache.hadoop.conf.Configuration&nbsp;config)</code>&nbsp;</td>
+      org.apache.hadoop.conf.Configuration&nbsp;config,
+      <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</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/tmpl/regionserver/BlockCacheTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">renderNoFlush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
              <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-             org.apache.hadoop.conf.Configuration&nbsp;config)</code>&nbsp;</td>
+             org.apache.hadoop.conf.Configuration&nbsp;config,
+             <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -259,7 +262,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>BlockCacheTmpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.40">BlockCacheTmpl</a>(org.jamon.TemplateManager&nbsp;p_manager)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.41">BlockCacheTmpl</a>(org.jamon.TemplateManager&nbsp;p_manager)</pre>
 </li>
 </ul>
 <a name="BlockCacheTmpl-java.lang.String-">
@@ -268,7 +271,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>BlockCacheTmpl</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.45">BlockCacheTmpl</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;p_path)</pre>
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.46">BlockCacheTmpl</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;p_path)</pre>
 </li>
 </ul>
 <a name="BlockCacheTmpl--">
@@ -277,7 +280,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BlockCacheTmpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.50">BlockCacheTmpl</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.51">BlockCacheTmpl</a>()</pre>
 </li>
 </ul>
 </li>
@@ -294,7 +297,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>makeImplData</h4>
-<pre>protected&nbsp;org.jamon.AbstractTemplateProxy.ImplData&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.89">makeImplData</a>()</pre>
+<pre>protected&nbsp;org.jamon.AbstractTemplateProxy.ImplData&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.101">makeImplData</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>makeImplData</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -307,7 +310,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getImplData</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.93">getImplData</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.105">getImplData</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>getImplData</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -320,7 +323,7 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>constructImpl</h4>
-<pre>public&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.100">constructImpl</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;? extends org.jamon.AbstractTemplateImpl&gt;&nbsp;p_class)</pre>
+<pre>public&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.112">constructImpl</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;? extends org.jamon.AbstractTemplateImpl&gt;&nbsp;p_class)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>constructImpl</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
@@ -333,32 +336,34 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>constructImpl</h4>
-<pre>protected&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.118">constructImpl</a>()</pre>
+<pre>protected&nbsp;org.jamon.AbstractTemplateImpl&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.130">constructImpl</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>constructImpl</code>&nbsp;in class&nbsp;<code>org.jamon.AbstractTemplateProxy</code></dd>
 </dl>
 </li>
 </ul>
-<a name="makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">
+<a name="makeRenderer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>makeRenderer</h4>
-<pre>public&nbsp;org.jamon.Renderer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.121">makeRenderer</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-                                       org.apache.hadoop.conf.Configuration&nbsp;config)</pre>
+<pre>public&nbsp;org.jamon.Renderer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.133">makeRenderer</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+                                       org.apache.hadoop.conf.Configuration&nbsp;config,
+                                       <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</pre>
 </li>
 </ul>
-<a name="render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">
+<a name="render-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>render</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.133">render</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.145">render</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                    <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-                   org.apache.hadoop.conf.Configuration&nbsp;config)
+                   org.apache.hadoop.conf.Configuration&nbsp;config,
+                   <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)
             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>
@@ -366,15 +371,16 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-">
+<a name="renderNoFlush-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.139">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.html#line.151">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
-                          org.apache.hadoop.conf.Configuration&nbsp;config)
+                          org.apache.hadoop.conf.Configuration&nbsp;config,
+                          <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)
                    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/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html
index 682ed52..e97321f 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html
@@ -140,10 +140,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#bc">bc</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#cacheConfig">cacheConfig</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#config">config</a></span></code>&nbsp;</td>
 </tr>
@@ -182,8 +186,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_baseInfo-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-java.lang.String-java.lang.String-">__jamon_innerUnit__bc_baseInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
-                              <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_baseInfo-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-java.lang.String-java.lang.String-">__jamon_innerUnit__bc_baseInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+                              <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc,
                               <a href="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;bcUrl,
                               <a href="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;bcName)</code>&nbsp;</td>
 </tr>
@@ -201,8 +205,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 </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/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_stats-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-">__jamon_innerUnit__bc_stats</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
-                           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#Z:Z__jamon_innerUnit__bc_stats-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-">__jamon_innerUnit__bc_stats</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+                           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>private void</code></td>
@@ -270,12 +274,21 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <a name="config">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>config</h4>
 <pre>private final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.37">config</a></pre>
 </li>
 </ul>
+<a name="bc">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>bc</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.38">bc</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -290,7 +303,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BlockCacheTmplImpl</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.42">BlockCacheTmplImpl</a>(org.jamon.TemplateManager&nbsp;p_templateManager,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.43">BlockCacheTmplImpl</a>(org.jamon.TemplateManager&nbsp;p_templateManager,
                           <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a>&nbsp;p_implData)</pre>
 </li>
 </ul>
@@ -308,7 +321,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_setOptionalArguments</h4>
-<pre>protected static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.38">__jamon_setOptionalArguments</a>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a>&nbsp;p_implData)</pre>
+<pre>protected static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.39">__jamon_setOptionalArguments</a>(<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmpl.ImplData.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmpl.ImplData</a>&nbsp;p_implData)</pre>
 </li>
 </ul>
 <a name="renderNoFlush-java.io.Writer-">
@@ -317,7 +330,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.49">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.51">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
                    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>
@@ -327,14 +340,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 </dl>
 </li>
 </ul>
-<a name="Z:Z__jamon_innerUnit__bc_baseInfo-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-java.lang.String-java.lang.String-">
+<a name="Z:Z__jamon_innerUnit__bc_baseInfo-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-java.lang.String-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_innerUnit__bc_baseInfo</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.106">__jamon_innerUnit__bc_baseInfo</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
-                                            <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.102">__jamon_innerUnit__bc_baseInfo</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+                                            <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc,
                                             <a href="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;bcUrl,
                                             <a href="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;bcName)
                                      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>
@@ -350,7 +363,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_innerUnit__bc_config</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.144">__jamon_innerUnit__bc_config</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.139">__jamon_innerUnit__bc_config</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                                           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)
                                    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>
@@ -365,7 +378,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_innerUnit__bc_l</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.193">__jamon_innerUnit__bc_l</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.188">__jamon_innerUnit__bc_l</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                                      <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc,
                                      <a href="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,
                                      boolean&nbsp;evictions)
@@ -376,14 +389,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 </dl>
 </li>
 </ul>
-<a name="Z:Z__jamon_innerUnit__bc_stats-java.io.Writer-org.apache.hadoop.hbase.io.hfile.CacheConfig-">
+<a name="Z:Z__jamon_innerUnit__bc_stats-java.io.Writer-org.apache.hadoop.hbase.io.hfile.BlockCache-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_innerUnit__bc_stats</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.225">__jamon_innerUnit__bc_stats</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
-                                         <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.220">__jamon_innerUnit__bc_stats</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+                                         <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)
                                   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>
@@ -397,7 +410,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_innerUnit__block_cache</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.274">__jamon_innerUnit__block_cache</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.269">__jamon_innerUnit__block_cache</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                                             <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc,
                                             <a href="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,
                                             boolean&nbsp;evictions)
@@ -414,7 +427,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockList">
 <li class="blockList">
 <h4>__jamon_innerUnit__evictions_tmpl</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.408">__jamon_innerUnit__evictions_tmpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.403">__jamon_innerUnit__evictions_tmpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                                                <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)
                                         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>
@@ -429,7 +442,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>__jamon_innerUnit__hits_tmpl</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.434">__jamon_innerUnit__hits_tmpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#line.429">__jamon_innerUnit__hits_tmpl</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter,
                                           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;bc)
                                    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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html
index b9b808c..1fa7930 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.64">BlockCacheViewTmpl.ImplData</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.65">BlockCacheViewTmpl.ImplData</a>
 extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 </li>
 </ul>
@@ -147,10 +147,14 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_bcv">m_bcv</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_blockCache">m_blockCache</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_cacheConfig">m_cacheConfig</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#m_conf">m_conf</a></span></code>&nbsp;</td>
 </tr>
@@ -195,26 +199,34 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#getBcv--">getBcv</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#getBlockCache--">getBlockCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#getCacheConfig--">getCacheConfig</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#getConf--">getConf</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#setBcn-java.lang.String-">setBcn</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;bcn)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#setBcv-java.lang.String-">setBcv</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;bcv)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#setBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">setBlockCache</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#setCacheConfig-org.apache.hadoop.hbase.io.hfile.CacheConfig-">setCacheConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
@@ -246,7 +258,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_cacheConfig</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.77">m_cacheConfig</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.78">m_cacheConfig</a></pre>
 </li>
 </ul>
 <a name="m_conf">
@@ -255,7 +267,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_conf</h4>
-<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.88">m_conf</a></pre>
+<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.89">m_conf</a></pre>
 </li>
 </ul>
 <a name="m_bcn">
@@ -264,16 +276,25 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>m_bcn</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.99">m_bcn</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.100">m_bcn</a></pre>
 </li>
 </ul>
 <a name="m_bcv">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>m_bcv</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.110">m_bcv</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.111">m_bcv</a></pre>
+</li>
+</ul>
+<a name="m_blockCache">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>m_blockCache</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.122">m_blockCache</a></pre>
 </li>
 </ul>
 </li>
@@ -290,7 +311,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ImplData</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.64">ImplData</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.65">ImplData</a>()</pre>
 </li>
 </ul>
 </li>
@@ -307,7 +328,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setCacheConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.68">setCacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.69">setCacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConfig)</pre>
 </li>
 </ul>
 <a name="getCacheConfig--">
@@ -316,7 +337,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.73">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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.74">getCacheConfig</a>()</pre>
 </li>
 </ul>
 <a name="setConf-org.apache.hadoop.conf.Configuration-">
@@ -325,7 +346,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setConf</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.79">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.80">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="getConf--">
@@ -334,7 +355,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConf</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.84">getConf</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.85">getConf</a>()</pre>
 </li>
 </ul>
 <a name="setBcn-java.lang.String-">
@@ -343,7 +364,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setBcn</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.90">setBcn</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;bcn)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.91">setBcn</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;bcn)</pre>
 </li>
 </ul>
 <a name="getBcn--">
@@ -352,7 +373,7 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getBcn</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.95">getBcn</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.96">getBcn</a>()</pre>
 </li>
 </ul>
 <a name="setBcv-java.lang.String-">
@@ -361,16 +382,34 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setBcv</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.101">setBcv</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;bcv)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.102">setBcv</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;bcv)</pre>
 </li>
 </ul>
 <a name="getBcv--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getBcv</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.106">getBcv</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/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.107">getBcv</a>()</pre>
+</li>
+</ul>
+<a name="setBlockCache-org.apache.hadoop.hbase.io.hfile.BlockCache-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBlockCache</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.113">setBlockCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</pre>
+</li>
+</ul>
+<a name="getBlockCache--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getBlockCache</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.ImplData.html#line.118">getBlockCache</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html
index adf295a..4ac038d 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.57">BlockCacheViewTmpl.Intf</a>
+<pre>public static interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.html#line.58">BlockCacheViewTmpl.Intf</a>
 extends org.jamon.AbstractTemplateProxy.Intf</pre>
 </li>
 </ul>
@@ -158,7 +158,7 @@ extends org.jamon.AbstractTemplateProxy.Intf</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>renderNoFlush</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html#line.61">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheViewTmpl.Intf.html#line.62">renderNoFlush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;jamonWriter)
             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>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
index 1124f8b..0c29054 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.html
@@ -1111,587 +1111,592 @@
 <span class="sourceLineNo">1103</span>          blockStream.write(midKeyMetadata);<a name="line.1103"></a>
 <span class="sourceLineNo">1104</span>        blockWriter.writeHeaderAndData(out);<a name="line.1104"></a>
 <span class="sourceLineNo">1105</span>        if (cacheConf != null) {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>          cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>            rootLevelIndexPos, true, blockForCaching.getBlockType()), blockForCaching);<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><a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>      // Add root index block size<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>      totalBlockUncompressedSize +=<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      if (LOG.isTraceEnabled()) {<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>          " on-disk size, "<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>          " total uncompressed size.");<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>      return rootLevelIndexPos;<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>    /**<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>     * block framing.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>     *<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>     *          stream writing into an {@link HFile} block.<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>     * @param description a short description of the index being written. Used<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>     *          in a log message.<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>     * @throws IOException<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>     */<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>        throws IOException {<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      expectNumLevels(1);<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>      if (!singleLevelOnly)<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>        throw new IOException("Single-level mode is turned off");<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span><a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>        throw new IOException("Root-level entries already added in " +<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>            "single-level mode");<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span><a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      rootChunk = curInlineChunk;<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>      if (LOG.isTraceEnabled()) {<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>          + " bytes");<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      }<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>      rootChunk.writeRoot(out);<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span><a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>    /**<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>     * Split the current level of the block index into intermediate index<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>     *<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>     * @param out<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>     *          chunk referencing all leaf-level index blocks<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>     * @return the parent level block index, which becomes the root index after<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>     *         a few (usually zero) iterations<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>     * @throws IOException<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>     */<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span><a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      // The current intermediate-level block index chunk.<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span><a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span><a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>          writeIntermediateBlock(out, parent, curChunk);<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>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>      }<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>      return parent;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>    }<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>      long beginOffset = out.getPos();<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>      curChunk.writeNonRoot(dos);<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      blockWriter.writeHeaderAndData(out);<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>      if (getCacheOnWrite()) {<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>        HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>        cacheConf.getBlockCache().cacheBlock(new BlockCacheKey(nameForCaching,<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>          beginOffset, true, blockForCaching.getBlockType()), blockForCaching);<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>      }<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span><a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      // Add intermediate index block size<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>      totalBlockUncompressedSize +=<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1218"></a>
+<span class="sourceLineNo">1106</span>          cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>            HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>            cache.cacheBlock(new BlockCacheKey(nameForCaching, rootLevelIndexPos, true,<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                blockForCaching.getBlockType()), blockForCaching);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>          });<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>      // Add root index block size<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      totalBlockUncompressedSize +=<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span><a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>      if (LOG.isTraceEnabled()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>        LOG.trace("Wrote a " + numLevels + "-level index with root level at pos "<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>          + rootLevelIndexPos + ", " + rootChunk.getNumEntries()<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          + " root-level entries, " + totalNumEntries + " total entries, "<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>          + StringUtils.humanReadableInt(this.totalBlockOnDiskSize) +<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          " on-disk size, "<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>          + StringUtils.humanReadableInt(totalBlockUncompressedSize) +<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>          " total uncompressed size.");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>      }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>      return rootLevelIndexPos;<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>    /**<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>     * Writes the block index data as a single level only. Does not do any<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>     * block framing.<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>     *<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>     * @param out the buffered output stream to write the index to. Typically a<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>     *          stream writing into an {@link HFile} block.<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>     * @param description a short description of the index being written. Used<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>     *          in a log message.<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>     * @throws IOException<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>     */<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>    public void writeSingleLevelIndex(DataOutput out, String description)<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        throws IOException {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      expectNumLevels(1);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      if (!singleLevelOnly)<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>        throw new IOException("Single-level mode is turned off");<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>      if (rootChunk.getNumEntries() &gt; 0)<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        throw new IOException("Root-level entries already added in " +<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>            "single-level mode");<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      rootChunk = curInlineChunk;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>      curInlineChunk = new BlockIndexChunk();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span><a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>      if (LOG.isTraceEnabled()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        LOG.trace("Wrote a single-level " + description + " index with "<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>          + rootChunk.getNumEntries() + " entries, " + rootChunk.getRootSize()<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>          + " bytes");<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>      }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      rootChunk.writeRoot(out);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>    /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>     * Split the current level of the block index into intermediate index<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>     * blocks of permitted size and write those blocks to disk. Return the next<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>     * level of the block index referencing those intermediate-level blocks.<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>     *<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>     * @param out<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>     * @param currentLevel the current level of the block index, such as the a<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>     *          chunk referencing all leaf-level index blocks<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>     * @return the parent level block index, which becomes the root index after<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>     *         a few (usually zero) iterations<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>     * @throws IOException<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>     */<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>    private BlockIndexChunk writeIntermediateLevel(FSDataOutputStream out,<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>        BlockIndexChunk currentLevel) throws IOException {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      // Entries referencing intermediate-level blocks we are about to create.<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      BlockIndexChunk parent = new BlockIndexChunk();<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span><a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>      // The current intermediate-level block index chunk.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>      BlockIndexChunk curChunk = new BlockIndexChunk();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span><a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>      for (int i = 0; i &lt; currentLevel.getNumEntries(); ++i) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        curChunk.add(currentLevel.getBlockKey(i),<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>            currentLevel.getBlockOffset(i), currentLevel.getOnDiskDataSize(i));<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span><a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>        // HBASE-16288: We have to have at least minIndexNumEntries(16) items in the index so that<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        // we won't end up with too-many levels for a index with very large rowKeys. Also, if the<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        // first key is larger than maxChunkSize this will cause infinite recursion.<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>        if (i &gt;= minIndexNumEntries &amp;&amp; curChunk.getRootSize() &gt;= maxChunkSize) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>          writeIntermediateBlock(out, parent, curChunk);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>        }<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>      }<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span><a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>      if (curChunk.getNumEntries() &gt; 0) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>        writeIntermediateBlock(out, parent, curChunk);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>      }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span><a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      return parent;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span><a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    private void writeIntermediateBlock(FSDataOutputStream out,<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        BlockIndexChunk parent, BlockIndexChunk curChunk) throws IOException {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>      long beginOffset = out.getPos();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      DataOutputStream dos = blockWriter.startWriting(<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>          BlockType.INTERMEDIATE_INDEX);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      curChunk.writeNonRoot(dos);<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      byte[] curFirstKey = curChunk.getBlockKey(0);<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>      blockWriter.writeHeaderAndData(out);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>      if (getCacheOnWrite()) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        cacheConf.getBlockCache().ifPresent(cache -&gt; {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>          HFileBlock blockForCaching = blockWriter.getBlockForCaching(cacheConf);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>          cache.cacheBlock(<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>              new BlockCacheKey(nameForCaching, beginOffset, true, blockForCaching.getBlockType()),<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>              blockForCaching);<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        });<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>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>      // + the secondary index size<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>      // entries.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>      parent.add(curFirstKey, beginOffset,<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span><a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>      // clear current block index chunk<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      curChunk.clear();<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>      curFirstKey = null;<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    }<a name="line.1231"></a>
+<span class="sourceLineNo">1220</span>      // Add intermediate index block size<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>      totalBlockOnDiskSize += blockWriter.getOnDiskSizeWithoutHeader();<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>      totalBlockUncompressedSize +=<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>          blockWriter.getUncompressedSizeWithoutHeader();<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span><a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      // OFFSET is the beginning offset the chunk of block index entries.<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>      // SIZE is the total byte size of the chunk of block index entries<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>      // + the secondary index size<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>      // FIRST_KEY is the first key in the chunk of block index<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>      // entries.<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>      parent.add(curFirstKey, beginOffset,<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>          blockWriter.getOnDiskSizeWithHeader());<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span><a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>    /**<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>     * @return how many block index entries there are in the root level<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>     */<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>    public final int getNumRootEntries() {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>      return rootChunk.getNumEntries();<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>     * @return the number of levels in this block index.<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>     */<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>    public int getNumLevels() {<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>      return numLevels;<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    }<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span><a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>      if (numLevels != expectedNumLevels) {<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>            + numLevels + "but is expected to be " + expectedNumLevels);<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>     * Whether there is an inline block ready to be written. In general, we<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>     */<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span>    @Override<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>      if (singleLevelOnly) {<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>      }<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span><a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>      if (curInlineChunk == null) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>            "called with closing=true and then called again?");<a name="line.1267"></a>
+<span class="sourceLineNo">1233</span>      // clear current block index chunk<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>      curChunk.clear();<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>      curFirstKey = null;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>    }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span><a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>    /**<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>     * @return how many block index entries there are in the root level<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>     */<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>    public final int getNumRootEntries() {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>      return rootChunk.getNumEntries();<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>    }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span><a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>    /**<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>     * @return the number of levels in this block index.<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>     */<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    public int getNumLevels() {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      return numLevels;<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>    private void expectNumLevels(int expectedNumLevels) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>      if (numLevels != expectedNumLevels) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        throw new IllegalStateException("Number of block index levels is "<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>            + numLevels + "but is expected to be " + expectedNumLevels);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>      }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>    }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>    /**<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>     * Whether there is an inline block ready to be written. In general, we<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>     * write an leaf-level index block as an inline block as soon as its size<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>     * as serialized in the non-root format reaches a certain threshold.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>     */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>    @Override<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>    public boolean shouldWriteBlock(boolean closing) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>      if (singleLevelOnly) {<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<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>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>        return false;<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>      }<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      // We do have some entries in the current inline chunk.<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>      if (closing) {<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>          // leaf level with one block, move these entries to the root level.<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span><a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>          expectNumLevels(1);<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>          rootChunk = curInlineChunk;<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>          curInlineChunk = null;  // Disallow adding any more index entries.<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>          return false;<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>        return true;<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span>      } else {<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>    /**<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>     * blocks, so the non-root index format is used.<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>     *<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>     * @param out<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>     */<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>    @Override<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>      if (singleLevelOnly)<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span><a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>      // Write the inline block index to the output stream in the non-root<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      // index block format.<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>      curInlineChunk.writeNonRoot(out);<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span><a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span>      // parent-level index.<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span><a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>      // Start a new inline index block<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>      curInlineChunk.clear();<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>    }<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>     * Called after an inline block has been written so that we can add an<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>     * entry referring to that block to the parent-level index.<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>     */<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>    @Override<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>      // Add leaf index block size<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span><a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>      if (singleLevelOnly)<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span><a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>      if (firstKey == null) {<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>            "but the first key was not set in writeInlineBlock");<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>      if (rootChunk.getNumEntries() == 0) {<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>        // We are writing the first leaf block, so increase index level.<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        expectNumLevels(1);<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>        numLevels = 2;<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>      // Add another entry to the second-level index. Include the number of<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>      firstKey = null;<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    }<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span><a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    @Override<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>    public BlockType getInlineBlockType() {<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>      return BlockType.LEAF_INDEX;<a name="line.1348"></a>
+<span class="sourceLineNo">1270</span>      if (curInlineChunk == null) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        throw new IllegalStateException("curInlineChunk is null; has shouldWriteBlock been " +<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>            "called with closing=true and then called again?");<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      }<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>      if (curInlineChunk.getNumEntries() == 0) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>        return false;<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>      // We do have some entries in the current inline chunk.<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>      if (closing) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>        if (rootChunk.getNumEntries() == 0) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>          // We did not add any leaf-level blocks yet. Instead of creating a<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>          // leaf level with one block, move these entries to the root level.<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>          expectNumLevels(1);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>          rootChunk = curInlineChunk;<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>          curInlineChunk = null;  // Disallow adding any more index entries.<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><a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>        return true;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>        return curInlineChunk.getNonRootSize() &gt;= maxChunkSize;<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><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>    /**<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>     * Write out the current inline index block. Inline blocks are non-root<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>     * blocks, so the non-root index format is used.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>     *<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>     * @param out<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>     */<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>    @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>    public void writeInlineBlock(DataOutput out) throws IOException {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>      if (singleLevelOnly)<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>      // Write the inline block index to the output stream in the non-root<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>      // index block format.<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>      curInlineChunk.writeNonRoot(out);<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span><a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>      // Save the first key of the inline block so that we can add it to the<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>      // parent-level index.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>      firstKey = curInlineChunk.getBlockKey(0);<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>      // Start a new inline index block<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>      curInlineChunk.clear();<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>    }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span><a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>    /**<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>     * Called after an inline block has been written so that we can add an<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>     * entry referring to that block to the parent-level index.<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>     */<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>    @Override<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    public void blockWritten(long offset, int onDiskSize, int uncompressedSize) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>      // Add leaf index block size<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>      totalBlockOnDiskSize += onDiskSize;<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>      totalBlockUncompressedSize += uncompressedSize;<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>      if (singleLevelOnly)<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        throw new UnsupportedOperationException(INLINE_BLOCKS_NOT_ALLOWED);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span><a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>      if (firstKey == null) {<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>        throw new IllegalStateException("Trying to add second-level index " +<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>            "entry with offset=" + offset + " and onDiskSize=" + onDiskSize +<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>            "but the first key was not set in writeInlineBlock");<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>      }<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span><a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>      if (rootChunk.getNumEntries() == 0) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>        // We are writing the first leaf block, so increase index level.<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        expectNumLevels(1);<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        numLevels = 2;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>      }<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span><a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>      // Add another entry to the second-level index. Include the number of<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>      // entries in all previous leaf-level chunks for mid-key calculation.<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>      rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>      firstKey = null;<a name="line.1348"></a>
 <span class="sourceLineNo">1349</span>    }<a name="line.1349"></a>
 <span class="sourceLineNo">1350</span><a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    /**<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>     *<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>     * @param firstKey the first key of the data block<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>     * @param blockOffset the offset of the data block<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>     *          {@link HFile} format version 1).<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>     */<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>      ++totalNumEntries;<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>     * @throws IOException if we happened to write a multi-level index.<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>     */<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>    public void ensureSingleLevel() throws IOException {<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>      if (numLevels &gt; 1) {<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>            "this is expected to be a single-level block index.");<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>      }<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>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>     *         or null.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>     */<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>    @Override<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>    public boolean getCacheOnWrite() {<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>    }<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span><a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>    /**<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>     * index blocks, and leaf-level index blocks.<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>     *<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>     * @return the total uncompressed size of all index blocks<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>     */<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>    public long getTotalUncompressedSize() {<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>      return totalBlockUncompressedSize;<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>    }<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span><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>  /**<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>   * block.<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>   */<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  static class BlockIndexChunk {<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span><a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    /** Block offset in backing stream. */<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span><a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>    /**<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>     */<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>    /**<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>     */<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span><a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    /**<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1430"></a>
+<span class="sourceLineNo">1351</span>    @Override<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    public BlockType getInlineBlockType() {<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>      return BlockType.LEAF_INDEX;<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>    /**<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>     * Add one index entry to the current leaf-level block. When the leaf-level<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>     * block gets large enough, it will be flushed to disk as an inline block.<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>     *<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>     * @param firstKey the first key of the data block<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>     * @param blockOffset the offset of the data block<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>     * @param blockDataSize the on-disk size of the data block ({@link HFile}<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>     *          format version 2), or the uncompressed size of the data block (<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>     *          {@link HFile} format version 1).<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>     */<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>    public void addEntry(byte[] firstKey, long blockOffset, int blockDataSize) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>      curInlineChunk.add(firstKey, blockOffset, blockDataSize);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>      ++totalNumEntries;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    }<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span><a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    /**<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>     * @throws IOException if we happened to write a multi-level index.<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>     */<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>    public void ensureSingleLevel() throws IOException {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>      if (numLevels &gt; 1) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        throw new IOException ("Wrote a " + numLevels + "-level index with " +<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>            rootChunk.getNumEntries() + " root-level entries, but " +<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>            "this is expected to be a single-level block index.");<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      }<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span><a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>    /**<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>     * @return true if we are using cache-on-write. This is configured by the<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>     *         caller of the constructor by either passing a valid block cache<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>     *         or null.<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>     */<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>    @Override<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>    public boolean getCacheOnWrite() {<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>      return cacheConf != null &amp;&amp; cacheConf.shouldCacheIndexesOnWrite();<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>    }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span><a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>    /**<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>     * The total uncompressed size of the root index block, intermediate-level<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>     * index blocks, and leaf-level index blocks.<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>     *<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>     * @return the total uncompressed size of all index blocks<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>     */<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    public long getTotalUncompressedSize() {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      return totalBlockUncompressedSize;<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span><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>  /**<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>   * A single chunk of the block index in the process of writing. The data in<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>   * this chunk can become a leaf-level, intermediate-level, or root index<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>   * block.<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>   */<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  static class BlockIndexChunk {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    /** First keys of the key range corresponding to each index entry. */<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>    private final List&lt;byte[]&gt; blockKeys = new ArrayList&lt;&gt;();<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>    /** Block offset in backing stream. */<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    private final List&lt;Long&gt; blockOffsets = new ArrayList&lt;&gt;();<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>    /** On-disk data sizes of lower-level data or index blocks. */<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    private final List&lt;Integer&gt; onDiskDataSizes = new ArrayList&lt;&gt;();<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span><a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    /**<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>     * The cumulative number of sub-entries, i.e. entries on deeper-level block<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>     * index entries. numSubEntriesAt[i] is the number of sub-entries in the<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>     * blocks corresponding to this chunk's entries #0 through #i inclusively.<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>     */<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    private final List&lt;Long&gt; numSubEntriesAt = new ArrayList&lt;&gt;();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>    /**<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>     * The offset of the next entry to be added, relative to the end of the<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>     * "secondary index" in the "non-root" format representation of this index<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>     * chunk. This is the next value to be added to the secondary index.<a name="line.1430"></a>
 <span class="sourceLineNo">1431</span>     */<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>    private int curTotalRootSize = 0;<a name="line.1432"></a>
+<span class="sourceLineNo">1432</span>    private int curTotalNonRootEntrySize = 0;<a name="line.1432"></a>
 <span class="sourceLineNo">1433</span><a name="line.1433"></a>
 <span class="sourceLineNo">1434</span>    /**<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>     * The "secondary index" used for binary search over variable-length<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>     * end of this secondary index.<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>     */<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span><a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>    /**<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>     * Adds a new entry to this block index chunk.<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>     *<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>     *          entry<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>     *          entry, including header size<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>     *          construction, this specifies the current total number of<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>     *          corresponding to the second-level entry being added.<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>     */<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        long curTotalNumSubEntries) {<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      // Record the offset for the secondary index<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>          + firstKey.length;<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span><a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span><a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      blockKeys.add(firstKey);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      blockOffsets.add(blockOffset);<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span><a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>      if (curTotalNumSubEntries != -1) {<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>        // Make sure the parallel arrays are in sync.<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>              "entries out of " + blockKeys.size());<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>        }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      }<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>    }<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span><a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>    /**<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>     * key/value into account. Used for single-level indexes.<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>     *<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>     * @see #add(byte[], long, int, long)<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>     */<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>    public void clear() {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>      blockKeys.clear();<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      blockOffsets.clear();<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>      onDiskDataSizes.clear();<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>      secondaryIndexOffsetMarks.clear();<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>      numSubEntriesAt.clear();<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>      curTotalNonRootEntrySize = 0;<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      curTotalRootSize = 0;<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    }<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span><a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>    /**<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>     * ordering of sub-entries.<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>     *<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>     * &lt;p&gt;<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>     * numSubEntriesAt.<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>     *<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>     *         sub-entry<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>     */<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    public int getEntryBySubEntry(long k) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      // We define mid-key as the key corresponding to k'th sub-entry<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      // (0-based).<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      int i = Collections.binarySearch(numSubEntriesAt, k);<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span><a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      // Exact match: cumulativeWeight[i] = k. This means chunks #0 through<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>      // #i contain exactly k sub-entries, and the sub-entry #k (0-based)<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // is in the (i + 1)'th chunk.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (i &gt;= 0)<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        return i + 1;<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span><a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // Inexact match. Return the insertion point.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      return -i - 1;<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>    /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>     * Used when writing the root block index of a multi-level block index.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>     * Serializes additional information allowing to efficiently identify the<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>     * mid-key.<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>     *<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>     * @return a few serialized fields for finding the mid-key<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>     * @throws IOException if could not create metadata for computing mid-key<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>     */<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    public byte[] getMidKeyMetadata() throws IOException {<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>      ByteArrayOutputStream baos = new ByteArrayOutputStream(<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>          MID_KEY_METADATA_SIZE);<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>      DataOutputStream baosDos = new DataOutputStream(baos);<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      long totalNumSubEntries = numSubEntriesAt.get(blockKeys.size() - 1);<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      if (totalNumSubEntries == 0) {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>        throw new IOException("No leaf-level entries, mid-key unavailable");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      }<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      long midKeySubEntry = (totalNumSubEntries - 1) / 2;<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      int midKeyEntry = getEntryBySubEntry(midKeySubEntry);<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span><a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      baosDos.writeLong(blockOffsets.get(midKeyEntry));<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      baosDos.writeInt(onDiskDataSizes.get(midKeyEntry));<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span><a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      long numSubEntriesBefore = midKeyEntry &gt; 0<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>          ? numSubEntriesAt.get(midKeyEntry - 1) : 0;<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      long subEntryWithinEntry = midKeySubEntry - numSubEntriesBefore;<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      if (subEntryWithinEntry &lt; 0 || subEntryWithinEntry &gt; Integer.MAX_VALUE)<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>        throw new IOException("Could not identify mid-key index within the "<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>            + "leaf-level block containing mid-key: out of range ("<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>            + subEntryWithinEntry + ", numSubEntriesBefore="<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>            + numSubEntriesBefore + ", midKeySubEntry=" + midKeySubEntry<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>            + ")");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      }<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span><a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      baosDos.writeInt((int) subEntryWithinEntry);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span><a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>      if (baosDos.size() != MID_KEY_METADATA_SIZE) {<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>        throw new IOException("Could not write mid-key metadata: size=" +<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>            baosDos.size() + ", correct size: " + MID_KEY_METADATA_SIZE);<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      }<a name="line.1572"></a>
+<span class="sourceLineNo">1435</span>     * The accumulated size of this chunk if stored in the root index format.<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>     */<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>    private int curTotalRootSize = 0;<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span><a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>    /**<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>     * The "secondary index" used for binary search over variable-length<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>     * records in a "non-root" format block. These offsets are relative to the<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>     * end of this secondary index.<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>     */<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>    private final List&lt;Integer&gt; secondaryIndexOffsetMarks = new ArrayList&lt;&gt;();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    /**<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>     * Adds a new entry to this block index chunk.<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>     *<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>     * @param firstKey the first key in the block pointed to by this entry<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>     * @param blockOffset the offset of the next-level block pointed to by this<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>     *          entry<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>     * @param onDiskDataSize the on-disk data of the block pointed to by this<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>     *          entry, including header size<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>     * @param curTotalNumSubEntries if this chunk is the root index chunk under<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>     *          construction, this specifies the current total number of<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>     *          sub-entries in all leaf-level chunks, including the one<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>     *          corresponding to the second-level entry being added.<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>     */<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>    void add(byte[] firstKey, long blockOffset, int onDiskDataSize,<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        long curTotalNumSubEntries) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>      // Record the offset for the secondary index<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      secondaryIndexOffsetMarks.add(curTotalNonRootEntrySize);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      curTotalNonRootEntrySize += SECONDARY_INDEX_ENTRY_OVERHEAD<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>          + firstKey.length;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>      curTotalRootSize += Bytes.SIZEOF_LONG + Bytes.SIZEOF_INT<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>          + WritableUtils.getVIntSize(firstKey.length) + firstKey.length;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span><a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      blockKeys.add(firstKey);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>      blockOffsets.add(blockOffset);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      onDiskDataSizes.add(onDiskDataSize);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      if (curTotalNumSubEntries != -1) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>        numSubEntriesAt.add(curTotalNumSubEntries);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        // Make sure the parallel arrays are in sync.<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        if (numSubEntriesAt.size() != blockKeys.size()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>          throw new IllegalStateException("Only have key/value count " +<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>              "stats for " + numSubEntriesAt.size() + " block index " +<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>              "entries out of " + blockKeys.size());<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>        }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>      }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>    }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    /**<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>     * The same as {@link #add(byte[], long, int, long)} but does not take the<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>     * key/value into account. Used for single-level indexes.<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>     *<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>     * @see #add(byte[], long, int, long)<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>     */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    public void add(byte[] firstKey, long blockOffset, int onDiskDataSize) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      add(firstKey, blockOffset, onDiskDataSize, -1);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span><a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    public void clear() {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      blockKeys.clear();<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>      blockOffsets.clear();<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      onDiskDataSizes.clear();<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>      secondaryIndexOffsetMarks.clear();<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>      numSubEntriesAt.clear();<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>      curTotalNonRootEntrySize = 0;<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>      curTotalRootSize = 0;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    }<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>    /**<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>     * Finds the entry corresponding to the deeper-level index block containing<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>     * the given deeper-level entry (a "sub-entry"), assuming a global 0-based<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>     * ordering of sub-entries.<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>     *<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>     * &lt;p&gt;<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>     * &lt;i&gt; Implementation note. &lt;/i&gt; We are looking for i such that<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>     * numSubEntriesAt[i - 1] &lt;= k &lt; numSubEntriesAt[i], because a deeper-level<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>     * block #i (0-based) contains sub-entries # numSubEntriesAt[i - 1]'th<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>     * through numSubEntriesAt[i] - 1, assuming a global 0-based ordering of<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>     * sub-entries. i is by definition the insertion point of k in<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>     * numSubEntriesAt.<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>     *<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>     * @param k sub-entry index, from 0 to the total number sub-entries - 1<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>     * @return the 0-based index of the entry corresponding to the given<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>     *         sub-entry<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>     */<

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
index b390abe..6424016 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.424">HRegion.WriteState</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.428">HRegion.WriteState</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>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>flushing</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.426">flushing</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.430">flushing</a></pre>
 </li>
 </ul>
 <a name="flushRequested">
@@ -248,7 +248,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>flushRequested</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.428">flushRequested</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.432">flushRequested</a></pre>
 </li>
 </ul>
 <a name="compacting">
@@ -257,7 +257,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>compacting</h4>
-<pre><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.WriteState.html#line.430">compacting</a></pre>
+<pre><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.WriteState.html#line.434">compacting</a></pre>
 </li>
 </ul>
 <a name="writesEnabled">
@@ -266,7 +266,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writesEnabled</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.432">writesEnabled</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.436">writesEnabled</a></pre>
 </li>
 </ul>
 <a name="readOnly">
@@ -275,7 +275,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>readOnly</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.434">readOnly</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.438">readOnly</a></pre>
 </li>
 </ul>
 <a name="readsEnabled">
@@ -284,7 +284,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>readsEnabled</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.437">readsEnabled</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.441">readsEnabled</a></pre>
 </li>
 </ul>
 <a name="HEAP_SIZE">
@@ -293,7 +293,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HEAP_SIZE</h4>
-<pre>static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.461">HEAP_SIZE</a></pre>
+<pre>static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.465">HEAP_SIZE</a></pre>
 </li>
 </ul>
 </li>
@@ -310,7 +310,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WriteState</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.424">WriteState</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.428">WriteState</a>()</pre>
 </li>
 </ul>
 </li>
@@ -327,7 +327,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setReadOnly</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.444">setReadOnly</a>(boolean&nbsp;onOff)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.448">setReadOnly</a>(boolean&nbsp;onOff)</pre>
 <div class="block">Set flags that make this region read-only.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -341,7 +341,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isReadOnly</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.449">isReadOnly</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.453">isReadOnly</a>()</pre>
 </li>
 </ul>
 <a name="isFlushRequested--">
@@ -350,7 +350,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isFlushRequested</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.453">isFlushRequested</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.457">isFlushRequested</a>()</pre>
 </li>
 </ul>
 <a name="setReadsEnabled-boolean-">
@@ -359,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>setReadsEnabled</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.457">setReadsEnabled</a>(boolean&nbsp;readsEnabled)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html#line.461">setReadsEnabled</a>(boolean&nbsp;readsEnabled)</pre>
 </li>
 </ul>
 </li>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html
index bfe700b..bd404ad 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.98">RegionServerServices.PostOpenDeployContext</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.101">RegionServerServices.PostOpenDeployContext</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">Context for postOpenDeployTasks().</div>
 </li>
@@ -211,7 +211,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>private 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/RegionServerServices.PostOpenDeployContext.html#line.99">region</a></pre>
+<pre>private 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/RegionServerServices.PostOpenDeployContext.html#line.102">region</a></pre>
 </li>
 </ul>
 <a name="masterSystemTime">
@@ -220,7 +220,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>masterSystemTime</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html#line.100">masterSystemTime</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html#line.103">masterSystemTime</a></pre>
 </li>
 </ul>
 </li>
@@ -238,7 +238,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li class="blockList">
 <h4>PostOpenDeployContext</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html#line.103">PostOpenDeployContext</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html#line.106">PostOpenDeployContext</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                                         long&nbsp;masterSystemTime)</pre>
 </li>
 </ul>
@@ -256,7 +256,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegion</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/RegionServerServices.PostOpenDeployContext.html#line.107">getRegion</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/RegionServerServices.PostOpenDeployContext.html#line.110">getRegion</a>()</pre>
 </li>
 </ul>
 <a name="getMasterSystemTime--">
@@ -265,7 +265,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMasterSystemTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html#line.110">getMasterSystemTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html#line.113">getMasterSystemTime</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html
index c642a6b..84b5eca 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.121">RegionServerServices.RegionStateTransitionContext</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.124">RegionServerServices.RegionStateTransitionContext</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>
@@ -228,7 +228,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>code</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.122">code</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.125">code</a></pre>
 </li>
 </ul>
 <a name="openSeqNum">
@@ -237,7 +237,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>openSeqNum</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.123">openSeqNum</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.126">openSeqNum</a></pre>
 </li>
 </ul>
 <a name="masterSystemTime">
@@ -246,7 +246,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>masterSystemTime</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.124">masterSystemTime</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.127">masterSystemTime</a></pre>
 </li>
 </ul>
 <a name="hris">
@@ -255,7 +255,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hris</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.125">hris</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.128">hris</a></pre>
 </li>
 </ul>
 </li>
@@ -273,7 +273,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li class="blockList">
 <h4>RegionStateTransitionContext</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.128">RegionStateTransitionContext</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode&nbsp;code,
+public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.131">RegionStateTransitionContext</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode&nbsp;code,
                                                                long&nbsp;openSeqNum,
                                                                long&nbsp;masterSystemTime,
                                                                <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>...&nbsp;hris)</pre>
@@ -293,7 +293,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>getCode</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.135">getCode</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.138">getCode</a>()</pre>
 </li>
 </ul>
 <a name="getOpenSeqNum--">
@@ -302,7 +302,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>getOpenSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.138">getOpenSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.141">getOpenSeqNum</a>()</pre>
 </li>
 </ul>
 <a name="getMasterSystemTime--">
@@ -311,7 +311,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterSystemTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.141">getMasterSystemTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html#line.144">getMasterSystemTime</a>()</pre>
 </li>
 </ul>
 <a name="getHris--">
@@ -320,7 +320,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getHris</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/RegionServerServices.RegionStateTransitionContext.html#line.144">getHris</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/RegionServerServices.RegionStateTransitionContext.html#line.147">getHris</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.html
index 399a075..1356fbf 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerServices.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":38,"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,"i27":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":38,"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,"i27":6,"i28":6,"i29":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.52">RegionServerServices</a>
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.55">RegionServerServices</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableOnlineRegions.html" title="interface in org.apache.hadoop.hbase.regionserver">MutableOnlineRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/FavoredNodesForRegion.html" title="interface in org.apache.hadoop.hbase.regionserver">FavoredNodesForRegion</a></pre>
 <div class="block">A curated subset of services provided by <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegionServer</code></a>.
  For use internally only. Passed to Managers, Services and Chores so can pass less-than-a
@@ -160,104 +160,112 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code><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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getBlockCache--">getBlockCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>double</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getCompactionPressure--">getCompactionPressure</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequester.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequester</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getCompactionRequestor--">getCompactionRequestor</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getExecutorService--">getExecutorService</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>double</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getFlushPressure--">getFlushPressure</a></span>()</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getFlushRequester--">getFlushRequester</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getFlushThroughputController--">getFlushThroughputController</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/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getHeapMemoryManager--">getHeapMemoryManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getLeases--">getLeases</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getMetrics--">getMetrics</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getMobFileCache--">getMobFileCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getNonceManager--">getNonceManager</a></span>()</code>
 <div class="block">Only required for "old" log replay; if it's removed, remove this.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionServerAccounting--">getRegionServerAccounting</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionServerSpaceQuotaManager--">getRegionServerSpaceQuotaManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code><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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionsInTransitionInRS--">getRegionsInTransitionInRS</a></span>()</code>
 <div class="block">Get the regions that are currently being opened or closed in the RS</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getReplicationSourceService--">getReplicationSourceService</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRpcServer--">getRpcServer</a></span>()</code>
 <div class="block">Returns a reference to the region server's RPC server</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getSecureBulkLoadManager--">getSecureBulkLoadManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getTableDescriptors--">getTableDescriptors</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getWAL-org.apache.hadoop.hbase.client.RegionInfo-">getWAL</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<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/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getWALs--">getWALs</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#isClusterUp--">isClusterUp</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">postOpenDeployTasks</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)</code>
 <div class="block">Tasks to perform after region open to complete deploy of region on regionserver</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/locking/EntityLock.html" title="class in org.apache.hadoop.hbase.client.locking">EntityLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#regionLock-java.util.List-java.lang.String-org.apache.hadoop.hbase.Abortable-">regionLock</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="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
           <a href="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;description,
@@ -265,14 +273,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <div class="block">Master based locks on namespaces/tables/regions.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#registerService-com.google.protobuf.Service-">registerService</a></span>(com.google.protobuf.Service&nbsp;service)</code>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#reportFileArchivalForQuotas-org.apache.hadoop.hbase.TableName-java.util.Collection-">reportFileArchivalForQuotas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                            <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="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</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="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;&gt;&nbsp;archivedFiles)</code>
@@ -280,19 +288,19 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
  just moved to the archive directory.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#reportRegionSizesForQuotas-org.apache.hadoop.hbase.quotas.RegionSizeStore-">reportRegionSizesForQuotas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;sizeStore)</code>
 <div class="block">Reports the provided Region sizes hosted by this RegionServer to the active Master.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">reportRegionStateTransition</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</code>
 <div class="block">Notify master that a handler requests to change a region state</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#unassign-byte:A-">unassign</a></span>(byte[]&nbsp;regionName)</code>
 <div class="block">Unassign the given region from the current regionserver and assign it randomly.</div>
@@ -361,7 +369,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getWAL</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.56">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
+<pre><a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.59">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
     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="returnLabel">Returns:</span></dt>
@@ -378,7 +386,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALs</h4>
-<pre><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/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.61">getWALs</a>()
+<pre><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/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.64">getWALs</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="returnLabel">Returns:</span></dt>
@@ -395,7 +403,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushRequester</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.67">getFlushRequester</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.70">getFlushRequester</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Implementation of <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>FlushRequester</code></a> or null. Usually it will not be null unless
@@ -409,7 +417,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionRequestor</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequester.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.73">getCompactionRequestor</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequester.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.76">getCompactionRequestor</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Implementation of <a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequester.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions"><code>CompactionRequester</code></a> or null. Usually it will not be null
@@ -423,7 +431,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerAccounting</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.78">getRegionServerAccounting</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.81">getRegionServerAccounting</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the RegionServerAccounting for this Region Server</dd>
@@ -436,7 +444,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerRpcQuotaManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.83">getRegionServerRpcQuotaManager</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.86">getRegionServerRpcQuotaManager</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>RegionServer's instance of <a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas"><code>RegionServerRpcQuotaManager</code></a></dd>
@@ -449,7 +457,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getSecureBulkLoadManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.88">getSecureBulkLoadManager</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.91">getSecureBulkLoadManager</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>RegionServer's instance of <a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver"><code>SecureBulkLoadManager</code></a></dd>
@@ -462,7 +470,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerSpaceQuotaManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.93">getRegionServerSpaceQuotaManager</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.96">getRegionServerSpaceQuotaManager</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>RegionServer's instance of <a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas"><code>RegionServerSpaceQuotaManager</code></a></dd>
@@ -475,7 +483,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>postOpenDeployTasks</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.119">postOpenDeployTasks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.122">postOpenDeployTasks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)
                   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">Tasks to perform after region open to complete deploy of region on regionserver</div>
 <dl>
@@ -492,7 +500,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionStateTransition</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.152">reportRegionStateTransition</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.155">reportRegionStateTransition</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</pre>
 <div class="block">Notify master that a handler requests to change a region state</div>
 </li>
 </ul>
@@ -502,7 +510,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcServer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.157">getRpcServer</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.160">getRpcServer</a>()</pre>
 <div class="block">Returns a reference to the region server's RPC server</div>
 </li>
 </ul>
@@ -512,7 +520,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionsInTransitionInRS</h4>
-<pre><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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.163">getRegionsInTransitionInRS</a>()</pre>
+<pre><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;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.166">getRegionsInTransitionInRS</a>()</pre>
 <div class="block">Get the regions that are currently being opened or closed in the RS</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -526,7 +534,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getLeases</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.168">getLeases</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.171">getLeases</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The RegionServer's "Leases" service</dd>
@@ -539,7 +547,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getExecutorService</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.173">getExecutorService</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.176">getExecutorService</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>hbase executor service</dd>
@@ -552,7 +560,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.179">getNonceManager</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.182">getNonceManager</a>()</pre>
 <div class="block">Only required for "old" log replay; if it's removed, remove this.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -566,7 +574,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>registerService</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.187">registerService</a>(com.google.protobuf.Service&nbsp;service)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.190">registerService</a>(com.google.protobuf.Service&nbsp;service)</pre>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
 <dl>
@@ -583,7 +591,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getHeapMemoryManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.192">getHeapMemoryManager</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.195">getHeapMemoryManager</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>heap memory manager instance</dd>
@@ -596,7 +604,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionPressure</h4>
-<pre>double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.200">getCompactionPressure</a>()</pre>
+<pre>double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.203">getCompactionPressure</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the max compaction pressure of all stores on this regionserver. The value should be
@@ -613,7 +621,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushThroughputController</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.205">getFlushThroughputController</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.208">getFlushThroughputController</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the controller to avoid flush too fast</dd>
@@ -627,7 +635,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="inte
 <li class="blockList">
 <h4>getFlushPressure</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.213">getFlushPressure</a>()</pre>
+double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.216">getFlushPressure</a>()</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -643,7 +651,7 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetrics</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.218">getMetrics</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.221">getMetrics</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the metrics tracker for the region server</dd>
@@ -656,7 +664,7 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>regionLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/locking/EntityLock.html" title="class in org.apache.hadoop.hbase.client.locking">EntityLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.223">regionLock</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/locking/EntityLock.html" title="class in org.apache.hadoop.hbase.client.locking">EntityLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.226">regionLock</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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionInfos,
                       <a href="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;description,
                       <a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abort)
                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>
@@ -673,7 +681,7 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>unassign</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.234">unassign</a>(byte[]&nbsp;regionName)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.237">unassign</a>(byte[]&nbsp;regionName)
        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">Unassign the given region from the current regionserver and assign it randomly. Could still be
  assigned to us. This is used to solve some tough problems for which you need to reset the state
@@ -693,7 +701,7 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionSizesForQuotas</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.242">reportRegionSizesForQuotas</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;sizeStore)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.245">reportRegionSizesForQuotas</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;sizeStore)</pre>
 <div class="block">Reports the provided Region sizes hosted by this RegionServer to the active Master.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -709,7 +717,7 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>reportFileArchivalForQuotas</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.252">reportFileArchivalForQuotas</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.255">reportFileArchivalForQuotas</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                     <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="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</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="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;&gt;&nbsp;archivedFiles)</pre>
 <div class="block">Reports a collection of files, and their sizes, that belonged to the given <code>table</code> were
  just moved to the archive directory.</div>
@@ -728,7 +736,7 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>isClusterUp</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.258">isClusterUp</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.261">isClusterUp</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if cluster is up; false if cluster is not up (we are shutting down).</dd>
@@ -741,7 +749,7 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationSourceService</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.263">getReplicationSourceService</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.266">getReplicationSourceService</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return the object that implements the replication source executorService.</dd>
@@ -751,16 +759,42 @@ double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserve
 <a name="getTableDescriptors--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.268">getTableDescriptors</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.271">getTableDescriptors</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return table descriptors implementation.</dd>
 </dl>
 </li>
 </ul>
+<a name="getBlockCache--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBlockCache</h4>
+<pre><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/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.276">getBlockCache</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The block cache instance.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMobFileCache--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMobFileCache</h4>
+<pre><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/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerServices.html#line.281">getMobFileCache</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The cache for mob files.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/FlushRequester.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/FlushRequester.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/FlushRequester.html
index f060ad2..9e615dc 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/FlushRequester.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/FlushRequester.html
@@ -144,22 +144,6 @@
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods 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/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HeapMemoryManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">create</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
-      <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
-      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</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/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
@@ -167,7 +151,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.ResizableBlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a>&nbsp;blockCache,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
                  <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HeapMemoryManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HeapMemoryManager.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HeapMemoryManager.html
index 1ef5e53..41a3a43 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HeapMemoryManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HeapMemoryManager.html
@@ -116,17 +116,10 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HeapMemoryManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">create</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
-      <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
-      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionServerServices.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getHeapMemoryManager--">getHeapMemoryManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getHeapMemoryManager--">getHeapMemoryManager</a></span>()</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerAccounting.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerAccounting.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerAccounting.html
index 25b41e6..efec620 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerAccounting.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerAccounting.html
@@ -133,22 +133,6 @@
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods 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/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HeapMemoryManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">create</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
-      <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
-      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</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/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
@@ -156,7 +140,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.ResizableBlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a>&nbsp;blockCache,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
                  <a href="../../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 b8ec2f4..47f803b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -716,20 +716,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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 23060c2..b377318 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -131,8 +131,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.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/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/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/4f8b8424/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 7eedc5c..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/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/4f8b8424/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 f8e4b11..3c7146a 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/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>
+<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>
 </ul>
 </li>
 </ul>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
index f1c0bc3..88147e4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
@@ -610,585 +610,588 @@
 <span class="sourceLineNo">602</span>      return false;<a name="line.602"></a>
 <span class="sourceLineNo">603</span>    }<a name="line.603"></a>
 <span class="sourceLineNo">604</span>    LOG.info("Processing expiration of " + serverName + " on " + this.master.getServerName());<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    master.getAssignmentManager().submitServerCrash(serverName, true);<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>    // Tell our listeners that a server was removed<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    if (!this.listeners.isEmpty()) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      for (ServerListener listener : this.listeners) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        listener.serverRemoved(serverName);<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>    // trigger a persist of flushedSeqId<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (flushedSeqIdFlusher != null) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      flushedSeqIdFlusher.triggerNow();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    return true;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
-<span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>  @VisibleForTesting<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  public void moveFromOnlineToDeadServers(final ServerName sn) {<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    synchronized (onlineServers) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      if (!this.onlineServers.containsKey(sn)) {<a name="line.623"></a>
-<span class="sourceLineNo">624</span>        LOG.trace("Expiration of {} but server not online", sn);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      // Remove the server from the known servers lists and update load info BUT<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      // add to deadservers first; do this so it'll show in dead servers list if<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // not in online servers list.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      this.deadservers.add(sn);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      this.onlineServers.remove(sn);<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      onlineServers.notifyAll();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    this.rsAdmins.remove(sn);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>  }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>  /*<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * Remove the server from the drain list.<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   */<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  public synchronized boolean removeServerFromDrainList(final ServerName sn) {<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.641"></a>
-<span class="sourceLineNo">642</span><a name="line.642"></a>
-<span class="sourceLineNo">643</span>    if (!this.isServerOnline(sn)) {<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.644"></a>
-<span class="sourceLineNo">645</span>               "Removing from draining list anyway, as requested.");<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // Remove the server from the draining servers lists.<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    return this.drainingServers.remove(sn);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
-<span class="sourceLineNo">650</span><a name="line.650"></a>
-<span class="sourceLineNo">651</span>  /**<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * Add the server to the drain list.<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   * @param sn<a name="line.653"></a>
-<span class="sourceLineNo">654</span>   * @return True if the server is added or the server is already on the drain list.<a name="line.654"></a>
-<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  public synchronized boolean addServerToDrainList(final ServerName sn) {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>    if (!this.isServerOnline(sn)) {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.661"></a>
-<span class="sourceLineNo">662</span>               "Ignoring request to add it to draining list.");<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      return false;<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    // Add the server to the draining servers lists, if it's not already in<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // it.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    if (this.drainingServers.contains(sn)) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      LOG.warn("Server " + sn + " is already in the draining server list." +<a name="line.668"></a>
-<span class="sourceLineNo">669</span>               "Ignoring request to add it again.");<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      return true;<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    LOG.info("Server " + sn + " added to draining server list.");<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    return this.drainingServers.add(sn);<a name="line.673"></a>
-<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
-<span class="sourceLineNo">675</span><a name="line.675"></a>
-<span class="sourceLineNo">676</span>  // RPC methods to region servers<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>  private HBaseRpcController newRpcController() {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>    return rpcControllerFactory == null ? null : rpcControllerFactory.newController();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  }<a name="line.680"></a>
-<span class="sourceLineNo">681</span><a name="line.681"></a>
-<span class="sourceLineNo">682</span>  /**<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   * Sends a WARMUP RPC to the specified server to warmup the specified region.<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * &lt;p&gt;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * A region server could reject the close request because it either does not<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * have the specified region or the region is being split.<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   * @param server server to warmup a region<a name="line.687"></a>
-<span class="sourceLineNo">688</span>   * @param region region to  warmup<a name="line.688"></a>
-<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  public void sendRegionWarmup(ServerName server,<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      RegionInfo region) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    if (server == null) return;<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    try {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      AdminService.BlockingInterface admin = getRsAdmin(server);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      HBaseRpcController controller = newRpcController();<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      ProtobufUtil.warmupRegion(controller, admin, region);<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    } catch (IOException e) {<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      LOG.error("Received exception in RPC for warmup server:" +<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        server + "region: " + region +<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        "exception: " + e);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>  }<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span>  /**<a name="line.704"></a>
-<span class="sourceLineNo">705</span>   * Contacts a region server and waits up to timeout ms<a name="line.705"></a>
-<span class="sourceLineNo">706</span>   * to close the region.  This bypasses the active hmaster.<a name="line.706"></a>
-<span class="sourceLineNo">707</span>   */<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  public static void closeRegionSilentlyAndWait(ClusterConnection connection,<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    ServerName server, RegionInfo region, long timeout) throws IOException, InterruptedException {<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    AdminService.BlockingInterface rs = connection.getAdmin(server);<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    HBaseRpcController controller = connection.getRpcControllerFactory().newController();<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    try {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      ProtobufUtil.closeRegion(controller, rs, server, region.getRegionName());<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    } catch (IOException e) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      LOG.warn("Exception when closing region: " + region.getRegionNameAsString(), e);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    }<a name="line.716"></a>
-<span class="sourceLineNo">717</span>    long expiration = timeout + System.currentTimeMillis();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    while (System.currentTimeMillis() &lt; expiration) {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      controller.reset();<a name="line.719"></a>
-<span class="sourceLineNo">720</span>      try {<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        RegionInfo rsRegion =<a name="line.721"></a>
-<span class="sourceLineNo">722</span>          ProtobufUtil.getRegionInfo(controller, rs, region.getRegionName());<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        if (rsRegion == null) return;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      } catch (IOException ioe) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>        if (ioe instanceof NotServingRegionException) // no need to retry again<a name="line.725"></a>
-<span class="sourceLineNo">726</span>          return;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>        LOG.warn("Exception when retrieving regioninfo from: "<a name="line.727"></a>
-<span class="sourceLineNo">728</span>          + region.getRegionNameAsString(), ioe);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      }<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      Thread.sleep(1000);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    }<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    throw new IOException("Region " + region + " failed to close within"<a name="line.732"></a>
-<span class="sourceLineNo">733</span>        + " timeout " + timeout);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>  }<a name="line.734"></a>
-<span class="sourceLineNo">735</span><a name="line.735"></a>
-<span class="sourceLineNo">736</span>  /**<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * @param sn<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * @return Admin interface for the remote regionserver named &lt;code&gt;sn&lt;/code&gt;<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   * @throws IOException<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   * @throws RetriesExhaustedException wrapping a ConnectException if failed<a name="line.740"></a>
-<span class="sourceLineNo">741</span>   */<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  public AdminService.BlockingInterface getRsAdmin(final ServerName sn)<a name="line.742"></a>
-<span class="sourceLineNo">743</span>  throws IOException {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    AdminService.BlockingInterface admin = this.rsAdmins.get(sn);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    if (admin == null) {<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      LOG.debug("New admin connection to " + sn.toString());<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      if (sn.equals(master.getServerName()) &amp;&amp; master instanceof HRegionServer) {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        // A master is also a region server now, see HBASE-10569 for details<a name="line.748"></a>
-<span class="sourceLineNo">749</span>        admin = ((HRegionServer)master).getRSRpcServices();<a name="line.749"></a>
-<span class="sourceLineNo">750</span>      } else {<a name="line.750"></a>
-<span class="sourceLineNo">751</span>        admin = this.connection.getAdmin(sn);<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      }<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      this.rsAdmins.put(sn, admin);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    return admin;<a name="line.755"></a>
-<span class="sourceLineNo">756</span>  }<a name="line.756"></a>
-<span class="sourceLineNo">757</span><a name="line.757"></a>
-<span class="sourceLineNo">758</span>  /**<a name="line.758"></a>
-<span class="sourceLineNo">759</span>   * Calculate min necessary to start. This is not an absolute. It is just<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * a friction that will cause us hang around a bit longer waiting on<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * RegionServers to check-in.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   */<a name="line.762"></a>
-<span class="sourceLineNo">763</span>  private int getMinToStart() {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>    if (master.isInMaintenanceMode()) {<a name="line.764"></a>
-<span class="sourceLineNo">765</span>      // If in maintenance mode, then master hosting meta will be the only server available<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      return 1;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    }<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>    int minimumRequired = 1;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>    if (LoadBalancer.isTablesOnMaster(master.getConfiguration()) &amp;&amp;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>        LoadBalancer.isSystemTablesOnlyOnMaster(master.getConfiguration())) {<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      // If Master is carrying regions it will show up as a 'server', but is not handling user-<a name="line.772"></a>
-<span class="sourceLineNo">773</span>      // space regions, so we need a second server.<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      minimumRequired = 2;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>    }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>    int minToStart = this.master.getConfiguration().getInt(WAIT_ON_REGIONSERVERS_MINTOSTART, -1);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>    // Ensure we are never less than minimumRequired else stuff won't work.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    return Math.max(minToStart, minimumRequired);<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>  /**<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * Wait for the region servers to report in.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * We will wait until one of this condition is met:<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   *  - the master is stopped<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   *  - the 'hbase.master.wait.on.regionservers.maxtostart' number of<a name="line.786"></a>
-<span class="sourceLineNo">787</span>   *    region servers is reached<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   *  - the 'hbase.master.wait.on.regionservers.mintostart' is reached AND<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   *   there have been no new region server in for<a name="line.789"></a>
-<span class="sourceLineNo">790</span>   *      'hbase.master.wait.on.regionservers.interval' time AND<a name="line.790"></a>
-<span class="sourceLineNo">791</span>   *   the 'hbase.master.wait.on.regionservers.timeout' is reached<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   *<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   * @throws InterruptedException<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   */<a name="line.794"></a>
-<span class="sourceLineNo">795</span>  public void waitForRegionServers(MonitoredTask status) throws InterruptedException {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    final long interval = this.master.getConfiguration().<a name="line.796"></a>
-<span class="sourceLineNo">797</span>        getLong(WAIT_ON_REGIONSERVERS_INTERVAL, 1500);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    final long timeout = this.master.getConfiguration().<a name="line.798"></a>
-<span class="sourceLineNo">799</span>        getLong(WAIT_ON_REGIONSERVERS_TIMEOUT, 4500);<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    // Min is not an absolute; just a friction making us wait longer on server checkin.<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    int minToStart = getMinToStart();<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    int maxToStart = this.master.getConfiguration().<a name="line.802"></a>
-<span class="sourceLineNo">803</span>        getInt(WAIT_ON_REGIONSERVERS_MAXTOSTART, Integer.MAX_VALUE);<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    if (maxToStart &lt; minToStart) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      LOG.warn(String.format("The value of '%s' (%d) is set less than '%s' (%d), ignoring.",<a name="line.805"></a>
-<span class="sourceLineNo">806</span>          WAIT_ON_REGIONSERVERS_MAXTOSTART, maxToStart,<a name="line.806"></a>
-<span class="sourceLineNo">807</span>          WAIT_ON_REGIONSERVERS_MINTOSTART, minToStart));<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      maxToStart = Integer.MAX_VALUE;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>    long now =  System.currentTimeMillis();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    final long startTime = now;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    long slept = 0;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    long lastLogTime = 0;<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    long lastCountChange = startTime;<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    int count = countOfRegionServers();<a name="line.816"></a>
-<span class="sourceLineNo">817</span>    int oldCount = 0;<a name="line.817"></a>
-<span class="sourceLineNo">818</span>    // This while test is a little hard to read. We try to comment it in below but in essence:<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    // Wait if Master is not stopped and the number of regionservers that have checked-in is<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    // less than the maxToStart. Both of these conditions will be true near universally.<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    // Next, we will keep cycling if ANY of the following three conditions are true:<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    // 1. The time since a regionserver registered is &lt; interval (means servers are actively checking in).<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    // 2. We are under the total timeout.<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    // 3. The count of servers is &lt; minimum.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    for (ServerListener listener: this.listeners) {<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      listener.waiting();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>    while (!this.master.isStopped() &amp;&amp; !isClusterShutdown() &amp;&amp; count &lt; maxToStart &amp;&amp;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        ((lastCountChange + interval) &gt; now || timeout &gt; slept || count &lt; minToStart)) {<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // Log some info at every interval time or if there is a change<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      if (oldCount != count || lastLogTime + interval &lt; now) {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        lastLogTime = now;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>        String msg =<a name="line.833"></a>
-<span class="sourceLineNo">834</span>            "Waiting on regionserver count=" + count + "; waited="+<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                slept + "ms, expecting min=" + minToStart + " server(s), max="+ getStrForMax(maxToStart) +<a name="line.835"></a>
-<span class="sourceLineNo">836</span>                " server(s), " + "timeout=" + timeout + "ms, lastChange=" + (lastCountChange - now) + "ms";<a name="line.836"></a>
-<span class="sourceLineNo">837</span>        LOG.info(msg);<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        status.setStatus(msg);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      }<a name="line.839"></a>
-<span class="sourceLineNo">840</span><a name="line.840"></a>
-<span class="sourceLineNo">841</span>      // We sleep for some time<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      final long sleepTime = 50;<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      Thread.sleep(sleepTime);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>      now =  System.currentTimeMillis();<a name="line.844"></a>
-<span class="sourceLineNo">845</span>      slept = now - startTime;<a name="line.845"></a>
-<span class="sourceLineNo">846</span><a name="line.846"></a>
-<span class="sourceLineNo">847</span>      oldCount = count;<a name="line.847"></a>
-<span class="sourceLineNo">848</span>      count = countOfRegionServers();<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      if (count != oldCount) {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        lastCountChange = now;<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      }<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    // Did we exit the loop because cluster is going down?<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    if (isClusterShutdown()) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      this.master.stop("Cluster shutdown");<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    LOG.info("Finished waiting on RegionServer count=" + count + "; waited=" + slept + "ms," +<a name="line.857"></a>
-<span class="sourceLineNo">858</span>        " expected min=" + minToStart + " server(s), max=" +  getStrForMax(maxToStart) + " server(s),"+<a name="line.858"></a>
-<span class="sourceLineNo">859</span>        " master is "+ (this.master.isStopped() ? "stopped.": "running"));<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>  private String getStrForMax(final int max) {<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    return max == Integer.MAX_VALUE? "NO_LIMIT": Integer.toString(max);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>  }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>  /**<a name="line.866"></a>
-<span class="sourceLineNo">867</span>   * @return A copy of the internal list of online servers.<a name="line.867"></a>
-<span class="sourceLineNo">868</span>   */<a name="line.868"></a>
-<span class="sourceLineNo">869</span>  public List&lt;ServerName&gt; getOnlineServersList() {<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    // TODO: optimize the load balancer call so we don't need to make a new list<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    // TODO: FIX. THIS IS POPULAR CALL.<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    return new ArrayList&lt;&gt;(this.onlineServers.keySet());<a name="line.872"></a>
-<span class="sourceLineNo">873</span>  }<a name="line.873"></a>
-<span class="sourceLineNo">874</span><a name="line.874"></a>
-<span class="sourceLineNo">875</span>  /**<a name="line.875"></a>
-<span class="sourceLineNo">876</span>   * @param keys The target server name<a name="line.876"></a>
-<span class="sourceLineNo">877</span>   * @param idleServerPredicator Evaluates the server on the given load<a name="line.877"></a>
-<span class="sourceLineNo">878</span>   * @return A copy of the internal list of online servers matched by the predicator<a name="line.878"></a>
-<span class="sourceLineNo">879</span>   */<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  public List&lt;ServerName&gt; getOnlineServersListWithPredicator(List&lt;ServerName&gt; keys,<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    Predicate&lt;ServerMetrics&gt; idleServerPredicator) {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    List&lt;ServerName&gt; names = new ArrayList&lt;&gt;();<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    if (keys != null &amp;&amp; idleServerPredicator != null) {<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      keys.forEach(name -&gt; {<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        ServerMetrics load = onlineServers.get(name);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        if (load != null) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>          if (idleServerPredicator.test(load)) {<a name="line.887"></a>
-<span class="sourceLineNo">888</span>            names.add(name);<a name="line.888"></a>
-<span class="sourceLineNo">889</span>          }<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
-<span class="sourceLineNo">891</span>      });<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    }<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    return names;<a name="line.893"></a>
-<span class="sourceLineNo">894</span>  }<a name="line.894"></a>
-<span class="sourceLineNo">895</span><a name="line.895"></a>
-<span class="sourceLineNo">896</span>  /**<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @return A copy of the internal list of draining servers.<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   */<a name="line.898"></a>
-<span class="sourceLineNo">899</span>  public List&lt;ServerName&gt; getDrainingServersList() {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    return new ArrayList&lt;&gt;(this.drainingServers);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>  }<a name="line.901"></a>
-<span class="sourceLineNo">902</span><a name="line.902"></a>
-<span class="sourceLineNo">903</span>  public boolean isServerOnline(ServerName serverName) {<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    return serverName != null &amp;&amp; onlineServers.containsKey(serverName);<a name="line.904"></a>
-<span class="sourceLineNo">905</span>  }<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>  /**<a name="line.907"></a>
-<span class="sourceLineNo">908</span>   * Check if a server is known to be dead.  A server can be online,<a name="line.908"></a>
-<span class="sourceLineNo">909</span>   * or known to be dead, or unknown to this manager (i.e, not online,<a name="line.909"></a>
-<span class="sourceLineNo">910</span>   * not known to be dead either. it is simply not tracked by the<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * master any more, for example, a very old previous instance).<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   */<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  public synchronized boolean isServerDead(ServerName serverName) {<a name="line.913"></a>
-<span class="sourceLineNo">914</span>    return serverName == null || deadservers.isDeadServer(serverName);<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  }<a name="line.915"></a>
-<span class="sourceLineNo">916</span><a name="line.916"></a>
-<span class="sourceLineNo">917</span>  public void shutdownCluster() {<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    String statusStr = "Cluster shutdown requested of master=" + this.master.getServerName();<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    LOG.info(statusStr);<a name="line.919"></a>
-<span class="sourceLineNo">920</span>    this.clusterShutdown.set(true);<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    if (onlineServers.isEmpty()) {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      // we do not synchronize here so this may cause a double stop, but not a big deal<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      master.stop("OnlineServer=0 right after cluster shutdown set");<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    }<a name="line.924"></a>
-<span class="sourceLineNo">925</span>  }<a name="line.925"></a>
-<span class="sourceLineNo">926</span><a name="line.926"></a>
-<span class="sourceLineNo">927</span>  public boolean isClusterShutdown() {<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    return this.clusterShutdown.get();<a name="line.928"></a>
-<span class="sourceLineNo">929</span>  }<a name="line.929"></a>
-<span class="sourceLineNo">930</span><a name="line.930"></a>
-<span class="sourceLineNo">931</span>  /**<a name="line.931"></a>
-<span class="sourceLineNo">932</span>   * start chore in ServerManager<a name="line.932"></a>
-<span class="sourceLineNo">933</span>   */<a name="line.933"></a>
-<span class="sourceLineNo">934</span>  public void startChore() {<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    Configuration c = master.getConfiguration();<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    if (persistFlushedSequenceId) {<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      // when reach here, RegionStates should loaded, firstly, we call remove deleted regions<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      removeDeletedRegionFromLoadedFlushedSequenceIds();<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      int flushPeriod = c.getInt(FLUSHEDSEQUENCEID_FLUSHER_INTERVAL,<a name="line.939"></a>
-<span class="sourceLineNo">940</span>          FLUSHEDSEQUENCEID_FLUSHER_INTERVAL_DEFAULT);<a name="line.940"></a>
-<span class="sourceLineNo">941</span>      flushedSeqIdFlusher = new FlushedSequenceIdFlusher(<a name="line.941"></a>
-<span class="sourceLineNo">942</span>          "FlushedSequenceIdFlusher", flushPeriod);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      master.getChoreService().scheduleChore(flushedSeqIdFlusher);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
-<span class="sourceLineNo">945</span>  }<a name="line.945"></a>
-<span class="sourceLineNo">946</span><a name="line.946"></a>
-<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * Stop the ServerManager.<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   */<a name="line.949"></a>
-<span class="sourceLineNo">950</span>  public void stop() {<a name="line.950"></a>
-<span class="sourceLineNo">951</span>    if (flushedSeqIdFlusher != null) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      flushedSeqIdFlusher.cancel();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    if (persistFlushedSequenceId) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      try {<a name="line.955"></a>
-<span class="sourceLineNo">956</span>        persistRegionLastFlushedSequenceIds();<a name="line.956"></a>
-<span class="sourceLineNo">957</span>      } catch (IOException e) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        LOG.warn("Failed to persist last flushed sequence id of regions"<a name="line.958"></a>
-<span class="sourceLineNo">959</span>            + " to file system", e);<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      }<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    }<a name="line.961"></a>
-<span class="sourceLineNo">962</span>  }<a name="line.962"></a>
-<span class="sourceLineNo">963</span><a name="line.963"></a>
-<span class="sourceLineNo">964</span>  /**<a name="line.964"></a>
-<span class="sourceLineNo">965</span>   * Creates a list of possible destinations for a region. It contains the online servers, but not<a name="line.965"></a>
-<span class="sourceLineNo">966</span>   *  the draining or dying servers.<a name="line.966"></a>
-<span class="sourceLineNo">967</span>   *  @param serversToExclude can be null if there is no server to exclude<a name="line.967"></a>
-<span class="sourceLineNo">968</span>   */<a name="line.968"></a>
-<span class="sourceLineNo">969</span>  public List&lt;ServerName&gt; createDestinationServersList(final List&lt;ServerName&gt; serversToExclude){<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    final List&lt;ServerName&gt; destServers = getOnlineServersList();<a name="line.970"></a>
-<span class="sourceLineNo">971</span><a name="line.971"></a>
-<span class="sourceLineNo">972</span>    if (serversToExclude != null) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>      destServers.removeAll(serversToExclude);<a name="line.973"></a>
-<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>    // Loop through the draining server list and remove them from the server list<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    final List&lt;ServerName&gt; drainingServersCopy = getDrainingServersList();<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    destServers.removeAll(drainingServersCopy);<a name="line.978"></a>
-<span class="sourceLineNo">979</span><a name="line.979"></a>
-<span class="sourceLineNo">980</span>    return destServers;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>  }<a name="line.981"></a>
+<span class="sourceLineNo">605</span>    long pid = master.getAssignmentManager().submitServerCrash(serverName, true);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    if(pid &lt;= 0) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      return false;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    } else {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      // Tell our listeners that a server was removed<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      if (!this.listeners.isEmpty()) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        for (ServerListener listener : this.listeners) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>          listener.serverRemoved(serverName);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      }<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      // trigger a persist of flushedSeqId<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      if (flushedSeqIdFlusher != null) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        flushedSeqIdFlusher.triggerNow();<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      return true;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>  @VisibleForTesting<a name="line.623"></a>
+<span class="sourceLineNo">624</span>  public void moveFromOnlineToDeadServers(final ServerName sn) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    synchronized (onlineServers) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      if (!this.onlineServers.containsKey(sn)) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        LOG.trace("Expiration of {} but server not online", sn);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      // Remove the server from the known servers lists and update load info BUT<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      // add to deadservers first; do this so it'll show in dead servers list if<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      // not in online servers list.<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      this.deadservers.add(sn);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      this.onlineServers.remove(sn);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      onlineServers.notifyAll();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>    this.rsAdmins.remove(sn);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>  }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>  /*<a name="line.639"></a>
+<span class="sourceLineNo">640</span>   * Remove the server from the drain list.<a name="line.640"></a>
+<span class="sourceLineNo">641</span>   */<a name="line.641"></a>
+<span class="sourceLineNo">642</span>  public synchronized boolean removeServerFromDrainList(final ServerName sn) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>    if (!this.isServerOnline(sn)) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.647"></a>
+<span class="sourceLineNo">648</span>               "Removing from draining list anyway, as requested.");<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    // Remove the server from the draining servers lists.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    return this.drainingServers.remove(sn);<a name="line.651"></a>
+<span class="sourceLineNo">652</span>  }<a name="line.652"></a>
+<span class="sourceLineNo">653</span><a name="line.653"></a>
+<span class="sourceLineNo">654</span>  /**<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   * Add the server to the drain list.<a name="line.655"></a>
+<span class="sourceLineNo">656</span>   * @param sn<a name="line.656"></a>
+<span class="sourceLineNo">657</span>   * @return True if the server is added or the server is already on the drain list.<a name="line.657"></a>
+<span class="sourceLineNo">658</span>   */<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  public synchronized boolean addServerToDrainList(final ServerName sn) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    // Warn if the server (sn) is not online.  ServerName is of the form:<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    // &lt;hostname&gt; , &lt;port&gt; , &lt;startcode&gt;<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>    if (!this.isServerOnline(sn)) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      LOG.warn("Server " + sn + " is not currently online. " +<a name="line.664"></a>
+<span class="sourceLineNo">665</span>               "Ignoring request to add it to draining list.");<a name="line.665"></a>
+<span class="sourceLineNo">666</span>      return false;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    }<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    // Add the server to the draining servers lists, if it's not already in<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    // it.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    if (this.drainingServers.contains(sn)) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      LOG.warn("Server " + sn + " is already in the draining server list." +<a name="line.671"></a>
+<span class="sourceLineNo">672</span>               "Ignoring request to add it again.");<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      return true;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>    LOG.info("Server " + sn + " added to draining server list.");<a name="line.675"></a>
+<span class="sourceLineNo">676</span>    return this.drainingServers.add(sn);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>  // RPC methods to region servers<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>  private HBaseRpcController newRpcController() {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    return rpcControllerFactory == null ? null : rpcControllerFactory.newController();<a name="line.682"></a>
+<span class="sourceLineNo">683</span>  }<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>  /**<a name="line.685"></a>
+<span class="sourceLineNo">686</span>   * Sends a WARMUP RPC to the specified server to warmup the specified region.<a name="line.686"></a>
+<span class="sourceLineNo">687</span>   * &lt;p&gt;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>   * A region server could reject the close request because it either does not<a name="line.688"></a>
+<span class="sourceLineNo">689</span>   * have the specified region or the region is being split.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>   * @param server server to warmup a region<a name="line.690"></a>
+<span class="sourceLineNo">691</span>   * @param region region to  warmup<a name="line.691"></a>
+<span class="sourceLineNo">692</span>   */<a name="line.692"></a>
+<span class="sourceLineNo">693</span>  public void sendRegionWarmup(ServerName server,<a name="line.693"></a>
+<span class="sourceLineNo">694</span>      RegionInfo region) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    if (server == null) return;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    try {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>      AdminService.BlockingInterface admin = getRsAdmin(server);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      HBaseRpcController controller = newRpcController();<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      ProtobufUtil.warmupRegion(controller, admin, region);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    } catch (IOException e) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>      LOG.error("Received exception in RPC for warmup server:" +<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        server + "region: " + region +<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        "exception: " + e);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
+<span class="sourceLineNo">708</span>   * Contacts a region server and waits up to timeout ms<a name="line.708"></a>
+<span class="sourceLineNo">709</span>   * to close the region.  This bypasses the active hmaster.<a name="line.709"></a>
+<span class="sourceLineNo">710</span>   */<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  public static void closeRegionSilentlyAndWait(ClusterConnection connection,<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    ServerName server, RegionInfo region, long timeout) throws IOException, InterruptedException {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    AdminService.BlockingInterface rs = connection.getAdmin(server);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    HBaseRpcController controller = connection.getRpcControllerFactory().newController();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>    try {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>      ProtobufUtil.closeRegion(controller, rs, server, region.getRegionName());<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    } catch (IOException e) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>      LOG.warn("Exception when closing region: " + region.getRegionNameAsString(), e);<a name="line.718"></a>
+<span class="sourceLineNo">719</span>    }<a name="line.719"></a>
+<span class="sourceLineNo">720</span>    long expiration = timeout + System.currentTimeMillis();<a name="line.720"></a>
+<span class="sourceLineNo">721</span>    while (System.currentTimeMillis() &lt; expiration) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      controller.reset();<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      try {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        RegionInfo rsRegion =<a name="line.724"></a>
+<span class="sourceLineNo">725</span>          ProtobufUtil.getRegionInfo(controller, rs, region.getRegionName());<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        if (rsRegion == null) return;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>      } catch (IOException ioe) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        if (ioe instanceof NotServingRegionException) // no need to retry again<a name="line.728"></a>
+<span class="sourceLineNo">729</span>          return;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        LOG.warn("Exception when retrieving regioninfo from: "<a name="line.730"></a>
+<span class="sourceLineNo">731</span>          + region.getRegionNameAsString(), ioe);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      Thread.sleep(1000);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    }<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    throw new IOException("Region " + region + " failed to close within"<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        + " timeout " + timeout);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>  }<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+<span class="sourceLineNo">739</span>  /**<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * @param sn<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * @return Admin interface for the remote regionserver named &lt;code&gt;sn&lt;/code&gt;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * @throws IOException<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   * @throws RetriesExhaustedException wrapping a ConnectException if failed<a name="line.743"></a>
+<span class="sourceLineNo">744</span>   */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>  public AdminService.BlockingInterface getRsAdmin(final ServerName sn)<a name="line.745"></a>
+<span class="sourceLineNo">746</span>  throws IOException {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    AdminService.BlockingInterface admin = this.rsAdmins.get(sn);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    if (admin == null) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>      LOG.debug("New admin connection to " + sn.toString());<a name="line.749"></a>
+<span class="sourceLineNo">750</span>      if (sn.equals(master.getServerName()) &amp;&amp; master instanceof HRegionServer) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>        // A master is also a region server now, see HBASE-10569 for details<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        admin = ((HRegionServer)master).getRSRpcServices();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>      } else {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>        admin = this.connection.getAdmin(sn);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>      }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>      this.rsAdmins.put(sn, admin);<a name="line.756"></a>
+<span class="sourceLineNo">757</span>    }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    return admin;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>  }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>  /**<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * Calculate min necessary to start. This is not an absolute. It is just<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * a friction that will cause us hang around a bit longer waiting on<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   * RegionServers to check-in.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>  private int getMinToStart() {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>    if (master.isInMaintenanceMode()) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>      // If in maintenance mode, then master hosting meta will be the only server available<a name="line.768"></a>
+<span class="sourceLineNo">769</span>      return 1;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>    }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>    int minimumRequired = 1;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>    if (LoadBalancer.isTablesOnMaster(master.getConfiguration()) &amp;&amp;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        LoadBalancer.isSystemTablesOnlyOnMaster(master.getConfiguration())) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>      // If Master is carrying regions it will show up as a 'server', but is not handling user-<a name="line.775"></a>
+<span class="sourceLineNo">776</span>      // space regions, so we need a second server.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>      minimumRequired = 2;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>    }<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>    int minToStart = this.master.getConfiguration().getInt(WAIT_ON_REGIONSERVERS_MINTOSTART, -1);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    // Ensure we are never less than minimumRequired else stuff won't work.<a name="line.781"></a>
+<span class="sourceLineNo">782</span>    return Math.max(minToStart, minimumRequired);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>  }<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>  /**<a name="line.785"></a>
+<span class="sourceLineNo">786</span>   * Wait for the region servers to report in.<a name="line.786"></a>
+<span class="sourceLineNo">787</span>   * We will wait until one of this condition is met:<a name="line.787"></a>
+<span class="sourceLineNo">788</span>   *  - the master is stopped<a name="line.788"></a>
+<span class="sourceLineNo">789</span>   *  - the 'hbase.master.wait.on.regionservers.maxtostart' number of<a name="line.789"></a>
+<span class="sourceLineNo">790</span>   *    region servers is reached<a name="line.790"></a>
+<span class="sourceLineNo">791</span>   *  - the 'hbase.master.wait.on.regionservers.mintostart' is reached AND<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   *   there have been no new region server in for<a name="line.792"></a>
+<span class="sourceLineNo">793</span>   *      'hbase.master.wait.on.regionservers.interval' time AND<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   *   the 'hbase.master.wait.on.regionservers.timeout' is reached<a name="line.794"></a>
+<span class="sourceLineNo">795</span>   *<a name="line.795"></a>
+<span class="sourceLineNo">796</span>   * @throws InterruptedException<a name="line.796"></a>
+<span class="sourceLineNo">797</span>   */<a name="line.797"></a>
+<span class="sourceLineNo">798</span>  public void waitForRegionServers(MonitoredTask status) throws InterruptedException {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>    final long interval = this.master.getConfiguration().<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        getLong(WAIT_ON_REGIONSERVERS_INTERVAL, 1500);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>    final long timeout = this.master.getConfiguration().<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        getLong(WAIT_ON_REGIONSERVERS_TIMEOUT, 4500);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    // Min is not an absolute; just a friction making us wait longer on server checkin.<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    int minToStart = getMinToStart();<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    int maxToStart = this.master.getConfiguration().<a name="line.805"></a>
+<span class="sourceLineNo">806</span>        getInt(WAIT_ON_REGIONSERVERS_MAXTOSTART, Integer.MAX_VALUE);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>    if (maxToStart &lt; minToStart) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>      LOG.warn(String.format("The value of '%s' (%d) is set less than '%s' (%d), ignoring.",<a name="line.808"></a>
+<span class="sourceLineNo">809</span>          WAIT_ON_REGIONSERVERS_MAXTOSTART, maxToStart,<a name="line.809"></a>
+<span class="sourceLineNo">810</span>          WAIT_ON_REGIONSERVERS_MINTOSTART, minToStart));<a name="line.810"></a>
+<span class="sourceLineNo">811</span>      maxToStart = Integer.MAX_VALUE;<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    long now =  System.currentTimeMillis();<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    final long startTime = now;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    long slept = 0;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    long lastLogTime = 0;<a name="line.817"></a>
+<span class="sourceLineNo">818</span>    long lastCountChange = startTime;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>    int count = countOfRegionServers();<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    int oldCount = 0;<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    // This while test is a little hard to read. We try to comment it in below but in essence:<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    // Wait if Master is not stopped and the number of regionservers that have checked-in is<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    // less than the maxToStart. Both of these conditions will be true near universally.<a name="line.823"></a>
+<span class="sourceLineNo">824</span>    // Next, we will keep cycling if ANY of the following three conditions are true:<a name="line.824"></a>
+<span class="sourceLineNo">825</span>    // 1. The time since a regionserver registered is &lt; interval (means servers are actively checking in).<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    // 2. We are under the total timeout.<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    // 3. The count of servers is &lt; minimum.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    for (ServerListener listener: this.listeners) {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      listener.waiting();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    while (!this.master.isStopped() &amp;&amp; !isClusterShutdown() &amp;&amp; count &lt; maxToStart &amp;&amp;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        ((lastCountChange + interval) &gt; now || timeout &gt; slept || count &lt; minToStart)) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>      // Log some info at every interval time or if there is a change<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      if (oldCount != count || lastLogTime + interval &lt; now) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>        lastLogTime = now;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>        String msg =<a name="line.836"></a>
+<span class="sourceLineNo">837</span>            "Waiting on regionserver count=" + count + "; waited="+<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                slept + "ms, expecting min=" + minToStart + " server(s), max="+ getStrForMax(maxToStart) +<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                " server(s), " + "timeout=" + timeout + "ms, lastChange=" + (lastCountChange - now) + "ms";<a name="line.839"></a>
+<span class="sourceLineNo">840</span>        LOG.info(msg);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        status.setStatus(msg);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</span>      // We sleep for some time<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      final long sleepTime = 50;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>      Thread.sleep(sleepTime);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      now =  System.currentTimeMillis();<a name="line.847"></a>
+<span class="sourceLineNo">848</span>      slept = now - startTime;<a name="line.848"></a>
+<span class="sourceLineNo">849</span><a name="line.849"></a>
+<span class="sourceLineNo">850</span>      oldCount = count;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      count = countOfRegionServers();<a name="line.851"></a>
+<span class="sourceLineNo">852</span>      if (count != oldCount) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        lastCountChange = now;<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      }<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    // Did we exit the loop because cluster is going down?<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    if (isClusterShutdown()) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>      this.master.stop("Cluster shutdown");<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    LOG.info("Finished waiting on RegionServer count=" + count + "; waited=" + slept + "ms," +<a name="line.860"></a>
+<span class="sourceLineNo">861</span>        " expected min=" + minToStart + " server(s), max=" +  getStrForMax(maxToStart) + " server(s),"+<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        " master is "+ (this.master.isStopped() ? "stopped.": "running"));<a name="line.862"></a>
+<span class="sourceLineNo">863</span>  }<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>  private String getStrForMax(final int max) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    return max == Integer.MAX_VALUE? "NO_LIMIT": Integer.toString(max);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>  }<a name="line.867"></a>
+<span class="sourceLineNo">868</span><a name="line.868"></a>
+<span class="sourceLineNo">869</span>  /**<a name="line.869"></a>
+<span class="sourceLineNo">870</span>   * @return A copy of the internal list of online servers.<a name="line.870"></a>
+<span class="sourceLineNo">871</span>   */<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  public List&lt;ServerName&gt; getOnlineServersList() {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    // TODO: optimize the load balancer call so we don't need to make a new list<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    // TODO: FIX. THIS IS POPULAR CALL.<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    return new ArrayList&lt;&gt;(this.onlineServers.keySet());<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>  /**<a name="line.878"></a>
+<span class="sourceLineNo">879</span>   * @param keys The target server name<a name="line.879"></a>
+<span class="sourceLineNo">880</span>   * @param idleServerPredicator Evaluates the server on the given load<a name="line.880"></a>
+<span class="sourceLineNo">881</span>   * @return A copy of the internal list of online servers matched by the predicator<a name="line.881"></a>
+<span class="sourceLineNo">882</span>   */<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  public List&lt;ServerName&gt; getOnlineServersListWithPredicator(List&lt;ServerName&gt; keys,<a name="line.883"></a>
+<span class="sourceLineNo">884</span>    Predicate&lt;ServerMetrics&gt; idleServerPredicator) {<a name="line.884"></a>
+<span class="sourceLineNo">885</span>    List&lt;ServerName&gt; names = new ArrayList&lt;&gt;();<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    if (keys != null &amp;&amp; idleServerPredicator != null) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>      keys.forEach(name -&gt; {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>        ServerMetrics load = onlineServers.get(name);<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        if (load != null) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>          if (idleServerPredicator.test(load)) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>            names.add(name);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>          }<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>      });<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    return names;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>  /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   * @return A copy of the internal list of draining servers.<a name="line.900"></a>
+<span class="sourceLineNo">901</span>   */<a name="line.901"></a>
+<span class="sourceLineNo">902</span>  public List&lt;ServerName&gt; getDrainingServersList() {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    return new ArrayList&lt;&gt;(this.drainingServers);<a name="line.903"></a>
+<span class="sourceLineNo">904</span>  }<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>  public boolean isServerOnline(ServerName serverName) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>    return serverName != null &amp;&amp; onlineServers.containsKey(serverName);<a name="line.907"></a>
+<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   * Check if a server is known to be dead.  A server can be online,<a name="line.911"></a>
+<span class="sourceLineNo">912</span>   * or known to be dead, or unknown to this manager (i.e, not online,<a name="line.912"></a>
+<span class="sourceLineNo">913</span>   * not known to be dead either. it is simply not tracked by the<a name="line.913"></a>
+<span class="sourceLineNo">914</span>   * master any more, for example, a very old previous instance).<a name="line.914"></a>
+<span class="sourceLineNo">915</span>   */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  public synchronized boolean isServerDead(ServerName serverName) {<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    return serverName == null || deadservers.isDeadServer(serverName);<a name="line.917"></a>
+<span class="sourceLineNo">918</span>  }<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>  public void shutdownCluster() {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    String statusStr = "Cluster shutdown requested of master=" + this.master.getServerName();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    LOG.info(statusStr);<a name="line.922"></a>
+<span class="sourceLineNo">923</span>    this.clusterShutdown.set(true);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    if (onlineServers.isEmpty()) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      // we do not synchronize here so this may cause a double stop, but not a big deal<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      master.stop("OnlineServer=0 right after cluster shutdown set");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>    }<a name="line.927"></a>
+<span class="sourceLineNo">928</span>  }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>  public boolean isClusterShutdown() {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    return this.clusterShutdown.get();<a name="line.931"></a>
+<span class="sourceLineNo">932</span>  }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>  /**<a name="line.934"></a>
+<span class="sourceLineNo">935</span>   * start chore in ServerManager<a name="line.935"></a>
+<span class="sourceLineNo">936</span>   */<a name="line.936"></a>
+<span class="sourceLineNo">937</span>  public void startChore() {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    Configuration c = master.getConfiguration();<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    if (persistFlushedSequenceId) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      // when reach here, RegionStates should loaded, firstly, we call remove deleted regions<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      removeDeletedRegionFromLoadedFlushedSequenceIds();<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      int flushPeriod = c.getInt(FLUSHEDSEQUENCEID_FLUSHER_INTERVAL,<a name="line.942"></a>
+<span class="sourceLineNo">943</span>          FLUSHEDSEQUENCEID_FLUSHER_INTERVAL_DEFAULT);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>      flushedSeqIdFlusher = new FlushedSequenceIdFlusher(<a name="line.944"></a>
+<span class="sourceLineNo">945</span>          "FlushedSequenceIdFlusher", flushPeriod);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      master.getChoreService().scheduleChore(flushedSeqIdFlusher);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    }<a name="line.947"></a>
+<span class="sourceLineNo">948</span>  }<a name="line.948"></a>
+<span class="sourceLineNo">949</span><a name="line.949"></a>
+<span class="sourceLineNo">950</span>  /**<a name="line.950"></a>
+<span class="sourceLineNo">951</span>   * Stop the ServerManager.<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   */<a name="line.952"></a>
+<span class="sourceLineNo">953</span>  public void stop() {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>    if (flushedSeqIdFlusher != null) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      flushedSeqIdFlusher.cancel();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    }<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (persistFlushedSequenceId) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      try {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        persistRegionLastFlushedSequenceIds();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } catch (IOException e) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        LOG.warn("Failed to persist last flushed sequence id of regions"<a name="line.961"></a>
+<span class="sourceLineNo">962</span>            + " to file system", e);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>      }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>  }<a name="line.965"></a>
+<span class="sourceLineNo">966</span><a name="line.966"></a>
+<span class="sourceLineNo">967</span>  /**<a name="line.967"></a>
+<span class="sourceLineNo">968</span>   * Creates a list of possible destinations for a region. It contains the online servers, but not<a name="line.968"></a>
+<span class="sourceLineNo">969</span>   *  the draining or dying servers.<a name="line.969"></a>
+<span class="sourceLineNo">970</span>   *  @param serversToExclude can be null if there is no server to exclude<a name="line.970"></a>
+<span class="sourceLineNo">971</span>   */<a name="line.971"></a>
+<span class="sourceLineNo">972</span>  public List&lt;ServerName&gt; createDestinationServersList(final List&lt;ServerName&gt; serversToExclude){<a name="line.972"></a>
+<span class="sourceLineNo">973</span>    final List&lt;ServerName&gt; destServers = getOnlineServersList();<a name="line.973"></a>
+<span class="sourceLineNo">974</span><a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (serversToExclude != null) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      destServers.removeAll(serversToExclude);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>    }<a name="line.977"></a>
+<span class="sourceLineNo">978</span><a name="line.978"></a>
+<span class="sourceLineNo">979</span>    // Loop through the draining server list and remove them from the server list<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    final List&lt;ServerName&gt; drainingServersCopy = getDrainingServersList();<a name="line.980"></a>
+<span class="sourceLineNo">981</span>    destServers.removeAll(drainingServersCopy);<a name="line.981"></a>
 <span class="sourceLineNo">982</span><a name="line.982"></a>
-<span class="sourceLineNo">983</span>  /**<a name="line.983"></a>
-<span class="sourceLineNo">984</span>   * Calls {@link #createDestinationServersList} without server to exclude.<a name="line.984"></a>
-<span class="sourceLineNo">985</span>   */<a name="line.985"></a>
-<span class="sourceLineNo">986</span>  public List&lt;ServerName&gt; createDestinationServersList(){<a name="line.986"></a>
-<span class="sourceLineNo">987</span>    return createDestinationServersList(null);<a name="line.987"></a>
-<span class="sourceLineNo">988</span>  }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>  /**<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * To clear any dead server with same host name and port of any online server<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   */<a name="line.992"></a>
-<span class="sourceLineNo">993</span>  void clearDeadServersWithSameHostNameAndPortOfOnlineServer() {<a name="line.993"></a>
-<span class="sourceLineNo">994</span>    for (ServerName serverName : getOnlineServersList()) {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>      deadservers.cleanAllPreviousInstances(serverName);<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><a name="line.998"></a>
-<span class="sourceLineNo">999</span>  /**<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>   * Called by delete table and similar to notify the ServerManager that a region was removed.<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>   */<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>  public void removeRegion(final RegionInfo regionInfo) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    final byte[] encodedName = regionInfo.getEncodedNameAsBytes();<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    storeFlushedSequenceIdsByRegion.remove(encodedName);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    flushedSequenceIdByRegion.remove(encodedName);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span><a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>  @VisibleForTesting<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  public boolean isRegionInServerManagerStates(final RegionInfo hri) {<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    final byte[] encodedName = hri.getEncodedNameAsBytes();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    return (storeFlushedSequenceIdsByRegion.containsKey(encodedName)<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        || flushedSequenceIdByRegion.containsKey(encodedName));<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span><a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  /**<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>   * Called by delete table and similar to notify the ServerManager that a region was removed.<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   */<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>  public void removeRegions(final List&lt;RegionInfo&gt; regions) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    for (RegionInfo hri: regions) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      removeRegion(hri);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>  }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  /**<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   * May return 0 when server is not online.<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>   */<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  public int getVersionNumber(ServerName serverName) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    return serverMetrics != null ? serverMetrics.getVersionNumber() : 0;<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>  /**<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * May return "0.0.0" when server is not online<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  public String getVersion(ServerName serverName) {<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>    return serverMetrics != null ? serverMetrics.getVersion() : "0.0.0";<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>  public int getInfoPort(ServerName serverName) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    return serverMetrics != null ? serverMetrics.getInfoServerPort() : 0;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>  }<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span><a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>  /**<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>   * Persist last flushed sequence id of each region to HDFS<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>   * @throws IOException if persit to HDFS fails<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   */<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  private void persistRegionLastFlushedSequenceIds() throws IOException {<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    if (isFlushSeqIdPersistInProgress) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>      return;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    }<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    isFlushSeqIdPersistInProgress = true;<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    try {<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>      Configuration conf = master.getConfiguration();<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      Path rootDir = FSUtils.getRootDir(conf);<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>      Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      FileSystem fs = FileSystem.get(conf);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (fs.exists(lastFlushedSeqIdPath)) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Rewriting .lastflushedseqids file at: "<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>            + lastFlushedSeqIdPath);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>        if (!fs.delete(lastFlushedSeqIdPath, false)) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>          throw new IOException("Unable to remove existing "<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>              + lastFlushedSeqIdPath);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>        }<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>      } else {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>        LOG.info("Writing .lastflushedseqids file at: " + lastFlushedSeqIdPath);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      FSDataOutputStream out = fs.create(lastFlushedSeqIdPath);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      FlushedSequenceId.Builder flushedSequenceIdBuilder =<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>          FlushedSequenceId.newBuilder();<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      try {<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>        for (Entry&lt;byte[], Long&gt; entry : flushedSequenceIdByRegion.entrySet()) {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>          FlushedRegionSequenceId.Builder flushedRegionSequenceIdBuilder =<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>              FlushedRegionSequenceId.newBuilder();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>          flushedRegionSequenceIdBuilder.setRegionEncodedName(<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>              ByteString.copyFrom(entry.getKey()));<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>          flushedRegionSequenceIdBuilder.setSeqId(entry.getValue());<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeSeqIds =<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>              storeFlushedSequenceIdsByRegion.get(entry.getKey());<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>          if (storeSeqIds != null) {<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>            for (Entry&lt;byte[], Long&gt; store : storeSeqIds.entrySet()) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>              FlushedStoreSequenceId.Builder flushedStoreSequenceIdBuilder =<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>                  FlushedStoreSequenceId.newBuilder();<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>              flushedStoreSequenceIdBuilder.setFamily(ByteString.copyFrom(store.getKey()));<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>              flushedStoreSequenceIdBuilder.setSeqId(store.getValue());<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>              flushedRegionSequenceIdBuilder.addStores(flushedStoreSequenceIdBuilder);<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>          flushedSequenceIdBuilder.addRegionSequenceId(flushedRegionSequenceIdBuilder);<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>        }<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>        flushedSequenceIdBuilder.build().writeDelimitedTo(out);<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>      } finally {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>        if (out != null) {<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>          out.close();<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>        }<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>      }<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    } finally {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      isFlushSeqIdPersistInProgress = false;<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>  }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span><a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>  /**<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>   * Load last flushed sequence id of each region from HDFS, if persisted<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>   */<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  public void loadLastFlushedSequenceIds() throws IOException {<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>    if (!persistFlushedSequenceId) {<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>      return;<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    Configuration conf = master.getConfiguration();<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>    FileSystem fs = FileSystem.get(conf);<a name="line.1113"></a>
-<span class="sourceLin

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionStates.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionStates.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionStates.html
index e647dc5..b1366ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionStates.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/RegionStates.html
@@ -378,7 +378,7 @@ 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/master/assignment/RegionStates.html#getRegionTransitionState-org.apache.hadoop.hbase.client.RegionInfo-">getRegionTransitionState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</code>&nbsp;</td>
 </tr>
 <tr id="i36" class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a></code></td>
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.html#getServerNode-org.apache.hadoop.hbase.ServerName-">getServerNode</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
 <tr id="i37" class="rowColor">
@@ -1201,7 +1201,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerNode</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.741">getServerNode</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.742">getServerNode</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
 <a name="getAverageLoad--">
@@ -1210,7 +1210,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getAverageLoad</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.745">getAverageLoad</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.746">getAverageLoad</a>()</pre>
 </li>
 </ul>
 <a name="addRegionToServer-org.apache.hadoop.hbase.master.assignment.RegionStateNode-">
@@ -1219,7 +1219,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegionToServer</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.755">addRegionToServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.756">addRegionToServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)</pre>
 </li>
 </ul>
 <a name="isReplicaAvailableForRegion-org.apache.hadoop.hbase.client.RegionInfo-">
@@ -1228,7 +1228,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isReplicaAvailableForRegion</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.761">isReplicaAvailableForRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.762">isReplicaAvailableForRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info)</pre>
 </li>
 </ul>
 <a name="removeRegionFromServer-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.master.assignment.RegionStateNode-">
@@ -1237,7 +1237,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRegionFromServer</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.781">removeRegionFromServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/RegionStates.html#line.782">removeRegionFromServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                                               <a href="../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStateNode</a>&nbsp;regionNode)</pre>
 </li>
 </ul>
@@ -1247,7 +1247,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionNamesToString</h4>
-<pre>public static&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/master/assignment/RegionStates.html#line.791">regionNamesToString</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;regions)</pre>
+<pre>public static&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/master/assignment/RegionStates.html#line.792">regionNamesToString</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;regions)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerState.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerState.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerState.html
index b2da9e3..6837096 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerState.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerState.html
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
- enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/ServerState.html#line.26">ServerState</a>
+public enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/ServerState.html#line.26">ServerState</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerState.html" title="enum in org.apache.hadoop.hbase.master.assignment">ServerState</a>&gt;</pre>
 <div class="block">Server State.</div>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerStateNode.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerStateNode.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerStateNode.html
index dc27067..f82b75a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerStateNode.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/ServerStateNode.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/ServerStateNode.html#line.35">ServerStateNode</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/ServerStateNode.html#line.35">ServerStateNode</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/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a>&gt;</pre>
 <div class="block">State of Server; list of hosted regions, etc.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
index a55f278..9376e72 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.734">SplitTableRegionProcedure.StoreFileSplitter</a>
+<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.735">SplitTableRegionProcedure.StoreFileSplitter</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/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&gt;</pre>
 <div class="block">Utility class used to do the file splitting / reference writing
@@ -220,7 +220,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockList">
 <li class="blockList">
 <h4>regionFs</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.735">regionFs</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.736">regionFs</a></pre>
 </li>
 </ul>
 <a name="family">
@@ -229,7 +229,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockList">
 <li class="blockList">
 <h4>family</h4>
-<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.736">family</a></pre>
+<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.737">family</a></pre>
 </li>
 </ul>
 <a name="sf">
@@ -238,7 +238,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sf</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.737">sf</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.738">sf</a></pre>
 </li>
 </ul>
 </li>
@@ -255,7 +255,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StoreFileSplitter</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.745">StoreFileSplitter</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.746">StoreFileSplitter</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
                          byte[]&nbsp;family,
                          <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;sf)</pre>
 <div class="block">Constructor that takes what it needs to split</div>
@@ -281,7 +281,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <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.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.752">call</a>()
+<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.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.753">call</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/4f8b8424/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 da54840..ea1eb5b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
@@ -1063,7 +1063,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>assertReferenceFileCount</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.702">assertReferenceFileCount</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.703">assertReferenceFileCount</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                       int&nbsp;expectedReferenceFileCount,
                                       org.apache.hadoop.fs.Path&nbsp;dir)
                                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>
@@ -1079,7 +1079,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.710">splitStoreFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.711">splitStoreFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
                                                                                  byte[]&nbsp;family,
                                                                                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;sf)
                                                                           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>
@@ -1095,7 +1095,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegionBeforeMETA</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.761">preSplitRegionBeforeMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.762">preSplitRegionBeforeMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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">Post split region actions before the Point-of-No-Return step</div>
@@ -1114,7 +1114,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMeta</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.784">updateMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.785">updateMeta</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Add daughter regions to META</div>
 <dl>
@@ -1131,7 +1131,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegionAfterMETA</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.793">preSplitRegionAfterMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.794">preSplitRegionAfterMETA</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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">Pre split region actions after the Point-of-No-Return step</div>
@@ -1150,7 +1150,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postSplitRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.805">postSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.806">postSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <div class="block">Post split region actions</div>
 <dl>
@@ -1167,7 +1167,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentRegionServerName</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.812">getParentRegionServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.813">getParentRegionServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 </li>
 </ul>
 <a name="createUnassignProcedures-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
@@ -1176,7 +1176,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createUnassignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.817">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.818">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1190,7 +1190,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.823">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">TransitRegionStateProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.824">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1204,7 +1204,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionReplication</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.832">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.833">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1218,7 +1218,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMaxSequenceIdFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.837">writeMaxSequenceIdFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.838">writeMaxSequenceIdFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1232,7 +1232,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>isTraceEnabled</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.854">isTraceEnabled</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.855">isTraceEnabled</a>()</pre>
 <div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
  retrieve it.</div>
 <dl>
@@ -1247,7 +1247,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>abort</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.862">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.863">abort</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">Procedure</a></code></span></div>
 <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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/assignment/class-use/ServerStateNode.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/class-use/ServerStateNode.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/class-use/ServerStateNode.html
index 7e57352..eec0a00 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/class-use/ServerStateNode.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/class-use/ServerStateNode.html
@@ -126,7 +126,7 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a></code></td>
+<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionStates.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.html#getServerNode-org.apache.hadoop.hbase.ServerName-">getServerNode</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 392e0b8..e74876a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -347,10 +347,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.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/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/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/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/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/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 5ad52ef..6c38f1f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html
@@ -347,22 +347,19 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#hasMetaTableRegion--">hasMetaTableRegion</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i13" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">holdLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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="i14" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#isDefaultMetaRegion-org.apache.hadoop.hbase.client.RegionInfo-">isDefaultMetaRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#isInRecoverMetaState--">isInRecoverMetaState</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
-<td class="colFirst"><code>protected boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#isYieldBeforeExecuteFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">isYieldBeforeExecuteFromState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
-                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</code>
-<div class="block">For this procedure, yield at end of each successful flow step so that all crashed servers
- can make progress rather than do the default which has each procedure running to completion
- before we move to the next.</div>
-</td>
-</tr>
 <tr id="i16" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#releaseLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">releaseLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>
@@ -411,14 +408,14 @@ 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/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isEofState--">isEofState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupport
 ed-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#addChildProcedure-T...-">addChildProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#execute-TEnvironment-">execute</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#failIfAborted--">failIfAborted</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentState--">getCurrentState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCurrentStateId--">getCurrentStateId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getCycles--">getCycles</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isEofState--">isEofState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupport
 ed-TState-">isRollbackSupported</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#rollback-TEnvironment-">rollback</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#setNextState-TState-">setNextState</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure2.Procedure">
 <!--   -->
 </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#bypass-TEnvironment-">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#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#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHa
 shCode</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/procedure2/P
 rocedure.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#isLockedWhenLoading--">isLockedWhenLoading</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-">setNonc
 eKey</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.Pro
 cedureProtos.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#skipPersistence--">skipPersistence</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#bypass-TEnvironment-">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#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#getProcId--">getProcId</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHa
 shCode</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/procedure2/P
 rocedure.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#isLockedWhenLoading--">isLockedWhenLoading</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/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#skipPersistence--">skipPersistence</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-">update
 MetricsOnFinish</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">
@@ -884,36 +881,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 </dl>
 </li>
 </ul>
-<a name="isYieldBeforeExecuteFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isYieldBeforeExecuteFromState</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#line.344">isYieldBeforeExecuteFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
-                                                org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</pre>
-<div class="block">For this procedure, yield at end of each successful flow step so that all crashed servers
- can make progress rather than do the default which has each procedure running to completion
- before we move to the next. For crashed servers, especially if running with distributed log
- replay, we will want all servers to come along; we do not want the scenario where a server is
- stuck waiting for regions to online so it can replay edits.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isYieldBeforeExecuteFromState-TEnvironment-TState-">isYieldBeforeExecuteFromState</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&gt;</code></dd>
-<dd><code>state</code> - the state we are going to execute next.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>Return true if the executor should yield before the execution of the specified step.
-         Defaults to return false.</dd>
-</dl>
-</li>
-</ul>
 <a name="shouldWaitClientAck-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldWaitClientAck</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#line.349">shouldWaitClientAck</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#line.338">shouldWaitClientAck</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">Procedure</a></code></span></div>
 <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
@@ -936,7 +910,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 <ul class="blockList">
 <li class="blockList">
 <h4>assignRegions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#line.365">assignRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#line.354">assignRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                            <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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)
                     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">Assign the regions on the crashed RS to other Rses.
@@ -956,10 +930,10 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 <a name="getProcedureMetrics-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<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/master/procedure/ServerCrashProcedure.html#line.390">getProcedureMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</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/master/procedure/ServerCrashProcedure.html#line.379">getProcedureMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">Override this method to provide procedure specific counters for submitted count, failed
  count and time histogram.</div>
@@ -973,6 +947,23 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/S
 </dl>
 </li>
 </ul>
+<a name="holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>holdLock</h4>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#line.384">holdLock</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">Procedure</a></code></span></div>
+<div class="block">Used to keep the procedure lock even when the procedure is yielding or suspended.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a></code>&nbsp;in class&nbsp;<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/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the procedure should hold on the lock until completionCleanup()</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
index 5f7e108..b497b60 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/class-use/MasterProcedureEnv.html
@@ -1548,12 +1548,7 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
-<td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#isYieldBeforeExecuteFromState-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState-">isYieldBeforeExecuteFromState</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
-                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.ServerCrashState&nbsp;state)</code>
-<div class="block">For this procedure, yield at end of each successful flow step so that all crashed servers
- can make progress rather than do the default which has each procedure running to completion
- before we move to the next.</div>
-</td>
+<td class="colLast"><span class="typeNameLabel">ServerCrashProcedure.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.html#holdLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">holdLock</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected static void</code></td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 8b11e23..f76d995 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -215,9 +215,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.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>
 <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/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/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</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>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html b/devapidocs/org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html
index 9f174a7..1107a21 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/mob/DefaultMobStoreFlusher.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html" target="_top">Frames</a></li>
@@ -359,7 +359,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/mob/DefaultMobStoreFlusher.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/mob/ExpiredMobFileCleaner.html" target="_top">Frames</a></li>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
deleted file mode 100644
index f32b223..0000000
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
+++ /dev/null
@@ -1,756 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
-<span class="sourceLineNo">009</span> *<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *<a name="line.11"></a>
-<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
-<span class="sourceLineNo">017</span> */<a name="line.17"></a>
-<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.io.hfile;<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_IOENGINE_KEY;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_SIZE_KEY;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.conf.Configuration;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HConstants;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.slf4j.Logger;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.slf4j.LoggerFactory;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.util.ReflectionUtils;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.util.StringUtils;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>/**<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * Stores all of the cache objects and configuration for a single HFile.<a name="line.41"></a>
-<span class="sourceLineNo">042</span> */<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@InterfaceAudience.Private<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CacheConfig {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  private static final Logger LOG = LoggerFactory.getLogger(CacheConfig.class.getName());<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  /**<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   * Disabled cache configuration<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public static final CacheConfig DISABLED = new CacheConfig();<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * cached if the block cache is enabled.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static final String CACHE_DATA_ON_READ_KEY = "hbase.block.data.cacheonread";<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   * Configuration key to cache data blocks on write. There are separate<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   * switches for bloom blocks and non-root index blocks.<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public static final String CACHE_BLOCKS_ON_WRITE_KEY =<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      "hbase.rs.cacheblocksonwrite";<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>  /**<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * Configuration key to cache leaf and intermediate-level index blocks on<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * write.<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  public static final String CACHE_INDEX_BLOCKS_ON_WRITE_KEY =<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      "hfile.block.index.cacheonwrite";<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  /**<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   * Configuration key to cache compound bloom filter blocks on write.<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public static final String CACHE_BLOOM_BLOCKS_ON_WRITE_KEY =<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      "hfile.block.bloom.cacheonwrite";<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  /**<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * Configuration key to cache data blocks in compressed and/or encrypted format.<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  public static final String CACHE_DATA_BLOCKS_COMPRESSED_KEY =<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      "hbase.block.data.cachecompressed";<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * Configuration key to evict all blocks of a given file from the block cache<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * when the file is closed.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static final String EVICT_BLOCKS_ON_CLOSE_KEY =<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      "hbase.rs.evictblocksonclose";<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   * Configuration keys for Bucket cache<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   */<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY =<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      "hbase.bucketcache.persistent.path";<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY =<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      "hbase.bucketcache.writer.queuelength";<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * A comma-delimited array of values for use as bucket sizes.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * Defaults for Bucket cache<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span> /**<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * Configuration key to prefetch all blocks of a given file into the block cache<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * when the file is opened.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   */<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  public static final String PREFETCH_BLOCKS_ON_OPEN_KEY =<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      "hbase.rs.prefetchblocksonopen";<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   * The target block size used by blockcache instances. Defaults to<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * target block size of BlockCache instances. Rename.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   */<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  private static final String DROP_BEHIND_CACHE_COMPACTION_KEY =<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      "hbase.hfile.drop.behind.compaction";<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private static final boolean DROP_BEHIND_CACHE_COMPACTION_DEFAULT = true;<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>   * Enum of all built in external block caches.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * This is used for config.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private static enum ExternalBlockCaches {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    ExternalBlockCaches(String clazzName) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      try {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      } catch (ClassNotFoundException cnef) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        clazz = null;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      this.clazz = clazz;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  // Defaults<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  public static final boolean DEFAULT_CACHE_DATA_ON_READ = true;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public static final boolean DEFAULT_CACHE_DATA_ON_WRITE = false;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final boolean DEFAULT_IN_MEMORY = false;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  public static final boolean DEFAULT_CACHE_INDEXES_ON_WRITE = false;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public static final boolean DEFAULT_CACHE_BLOOMS_ON_WRITE = false;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static final boolean DEFAULT_EVICT_ON_CLOSE = false;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  public static final boolean DEFAULT_CACHE_DATA_COMPRESSED = false;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final boolean DEFAULT_PREFETCH_ON_OPEN = false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  /** Local reference to the block cache, null if completely disabled */<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  private final BlockCache blockCache;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * Whether blocks should be cached on read (default is on if there is a<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * cache but this can be turned off on a per-family or per-request basis).<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * This cannot be disabled.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  private boolean cacheDataOnRead;<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  /** Whether blocks should be flagged as in-memory when being cached */<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private final boolean inMemory;<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /** Whether data blocks should be cached when new files are written */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private boolean cacheDataOnWrite;<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  /** Whether index blocks should be cached when new files are written */<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final boolean cacheIndexesOnWrite;<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /** Whether compound bloom filter blocks should be cached on write */<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  private final boolean cacheBloomsOnWrite;<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  /** Whether blocks of a file should be evicted when the file is closed */<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private boolean evictOnClose;<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  /** Whether data blocks should be stored in compressed and/or encrypted form in the cache */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  private final boolean cacheDataCompressed;<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  /** Whether data blocks should be prefetched into the cache */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  private final boolean prefetchOnOpen;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private final boolean dropBehindCompaction;<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>   * Create a cache configuration using the specified configuration object and<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * family descriptor.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   * @param conf hbase configuration<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * @param family column family configuration<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public CacheConfig(Configuration conf, ColumnFamilyDescriptor family) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this(GLOBAL_BLOCK_CACHE_INSTANCE,<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)<a name="line.219"></a>
-<span class="sourceLineNo">220</span>           &amp;&amp; family.isBlockCacheEnabled(),<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        family.isInMemory(),<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        // For the following flags we enable them regardless of per-schema settings<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        // if they are enabled in the global configuration.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY,<a name="line.224"></a>
-<span class="sourceLineNo">225</span>            DEFAULT_CACHE_DATA_ON_WRITE) || family.isCacheDataOnWrite(),<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            DEFAULT_CACHE_INDEXES_ON_WRITE) || family.isCacheIndexesOnWrite(),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            DEFAULT_CACHE_BLOOMS_ON_WRITE) || family.isCacheBloomsOnWrite(),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY,<a name="line.230"></a>
-<span class="sourceLineNo">231</span>            DEFAULT_EVICT_ON_CLOSE) || family.isEvictBlocksOnClose(),<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY,<a name="line.233"></a>
-<span class="sourceLineNo">234</span>            DEFAULT_PREFETCH_ON_OPEN) || family.isPrefetchBlocksOnOpen(),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.235"></a>
-<span class="sourceLineNo">236</span>     );<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    LOG.info("Created cacheConfig for " + family.getNameAsString() + ": " + this);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  /**<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * Create a cache configuration using the specified configuration object and<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * defaults for family level settings. Only use if no column family context. Prefer<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * {@link CacheConfig#CacheConfig(Configuration, ColumnFamilyDescriptor)}<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * @see #CacheConfig(Configuration, ColumnFamilyDescriptor)<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * @param conf hbase configuration<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  public CacheConfig(Configuration conf) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    this(GLOBAL_BLOCK_CACHE_INSTANCE,<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ),<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        DEFAULT_IN_MEMORY, // This is a family-level setting so can't be set<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        // strictly from conf<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_DATA_ON_WRITE),<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_INDEXES_ON_WRITE),<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_BLOOMS_ON_WRITE),<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, DEFAULT_EVICT_ON_CLOSE),<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY, DEFAULT_PREFETCH_ON_OPEN),<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT));<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    LOG.info("Created cacheConfig: " + this);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>  /**<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * Create a block cache configuration with the specified cache and configuration parameters.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * @param blockCache reference to block cache, null if completely disabled<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * @param cacheDataOnRead whether DATA blocks should be cached on read (we always cache INDEX<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   *          blocks and BLOOM blocks; this cannot be disabled).<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * @param inMemory whether blocks should be flagged as in-memory<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * @param cacheDataOnWrite whether data blocks should be cached on write<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * @param cacheIndexesOnWrite whether index blocks should be cached on write<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param cacheBloomsOnWrite whether blooms should be cached on write<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param evictOnClose whether blocks should be evicted when HFile is closed<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param cacheDataCompressed whether to store blocks as compressed in the cache<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * @param prefetchOnOpen whether to prefetch blocks upon open<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param dropBehindCompaction indicate that we should set drop behind to true when open a store<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   *          file reader for compaction<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   */<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @VisibleForTesting<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  CacheConfig(final BlockCache blockCache,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      final boolean dropBehindCompaction) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    this.blockCache = blockCache;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    this.inMemory = inMemory;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.evictOnClose = evictOnClose;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.dropBehindCompaction = dropBehindCompaction;<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>  /**<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * Constructs a cache configuration copied from the specified configuration.<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * @param cacheConf<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   */<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  public CacheConfig(CacheConfig cacheConf) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    this(cacheConf.blockCache, cacheConf.cacheDataOnRead, cacheConf.inMemory,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        cacheConf.cacheDataOnWrite, cacheConf.cacheIndexesOnWrite,<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        cacheConf.cacheBloomsOnWrite, cacheConf.evictOnClose,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        cacheConf.cacheDataCompressed, cacheConf.prefetchOnOpen,<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        cacheConf.dropBehindCompaction);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private CacheConfig() {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    this(null, false, false, false, false, false, false, false, false, false);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  /**<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   * Checks whether the block cache is enabled.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>   */<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  public boolean isBlockCacheEnabled() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return this.blockCache != null;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  /**<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   * Returns the block cache.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   * @return the block cache, or null if caching is completely disabled<a name="line.321"></a>
-<span class="sourceLineNo">322</span>   */<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public BlockCache getBlockCache() {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    return this.blockCache;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  }<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>   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always<a name="line.328"></a>
-<span class="sourceLineNo">329</span>   * cache the meta blocks, the INDEX and BLOOM blocks).<a name="line.329"></a>
-<span class="sourceLineNo">330</span>   * @return true if blocks should be cached on read, false if not<a name="line.330"></a>
-<span class="sourceLineNo">331</span>   */<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  public boolean shouldCacheDataOnRead() {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    return isBlockCacheEnabled() &amp;&amp; cacheDataOnRead;<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>  public boolean shouldDropBehindCompaction() {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return dropBehindCompaction;<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>   * Should we cache a block of a particular category? We always cache<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * important blocks such as index blocks, as long as the block cache is<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * available.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   */<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  public boolean shouldCacheBlockOnRead(BlockCategory category) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    return isBlockCacheEnabled()<a name="line.346"></a>
-<span class="sourceLineNo">347</span>        &amp;&amp; (cacheDataOnRead ||<a name="line.347"></a>
-<span class="sourceLineNo">348</span>            category == BlockCategory.INDEX ||<a name="line.348"></a>
-<span class="sourceLineNo">349</span>            category == BlockCategory.BLOOM ||<a name="line.349"></a>
-<span class="sourceLineNo">350</span>            (prefetchOnOpen &amp;&amp;<a name="line.350"></a>
-<span class="sourceLineNo">351</span>                (category != BlockCategory.META &amp;&amp;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                 category != BlockCategory.UNKNOWN)));<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>  /**<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @return true if blocks in this file should be flagged as in-memory<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   */<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public boolean isInMemory() {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return isBlockCacheEnabled() &amp;&amp; this.inMemory;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  }<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  /**<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * @return true if data blocks should be written to the cache when an HFile is<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   *         written, false if not<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   */<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  public boolean shouldCacheDataOnWrite() {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnWrite;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /**<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * Only used for testing.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * @param cacheDataOnWrite whether data blocks should be written to the cache<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   *                         when an HFile is written<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   */<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  @VisibleForTesting<a name="line.375"></a>
-<span class="sourceLineNo">376</span>  public void setCacheDataOnWrite(boolean cacheDataOnWrite) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  }<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>   * @return true if index blocks should be written to the cache when an HFile<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   *         is written, false if not<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   */<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  public boolean shouldCacheIndexesOnWrite() {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheIndexesOnWrite;<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<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>   * @return true if bloom blocks should be written to the cache when an HFile<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   *         is written, false if not<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   */<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public boolean shouldCacheBloomsOnWrite() {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheBloomsOnWrite;<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  }<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>   * @return true if blocks should be evicted from the cache when an HFile<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   *         reader is closed, false if not<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  public boolean shouldEvictOnClose() {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    return isBlockCacheEnabled() &amp;&amp; this.evictOnClose;<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>  /**<a name="line.404"></a>
-<span class="sourceLineNo">405</span>   * Only used for testing.<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   * @param evictOnClose whether blocks should be evicted from the cache when an<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   *                     HFile reader is closed<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   */<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  public void setEvictOnClose(boolean evictOnClose) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    this.evictOnClose = evictOnClose;<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>  /**<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * @return true if data blocks should be compressed in the cache, false if not<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   */<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  public boolean shouldCacheDataCompressed() {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>  }<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>   * @return true if this {@link BlockCategory} should be compressed in blockcache, false otherwise<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   */<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  public boolean shouldCacheCompressed(BlockCategory category) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    if (!isBlockCacheEnabled()) return false;<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    switch (category) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      case DATA:<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      default:<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        return false;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * @return true if blocks should be prefetched into the cache on open, false if not<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   */<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  public boolean shouldPrefetchOnOpen() {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    return isBlockCacheEnabled() &amp;&amp; this.prefetchOnOpen;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>  }<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>  /**<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * Return true if we may find this type of block in block cache.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * &lt;p&gt;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * TODO: today {@code family.isBlockCacheEnabled()} only means {@code cacheDataOnRead}, so here we<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * consider lots of other configurations such as {@code cacheDataOnWrite}. We should fix this in<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * the future, {@code cacheDataOnWrite} should honor the CF level {@code isBlockCacheEnabled}<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * configuration.<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public boolean shouldReadBlockFromCache(BlockType blockType) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    if (!isBlockCacheEnabled()) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      return false;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    }<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    if (cacheDataOnRead) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      return true;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    if (prefetchOnOpen) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      return true;<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    if (cacheDataOnWrite) {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      return true;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    if (blockType == null) {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return true;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    if (blockType.getCategory() == BlockCategory.BLOOM ||<a name="line.464"></a>
-<span class="sourceLineNo">465</span>            blockType.getCategory() == BlockCategory.INDEX) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return true;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    return false;<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>   * If we make sure the block could not be cached, we will not acquire the lock<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * otherwise we will acquire lock<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   */<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  public boolean shouldLockOnCacheMiss(BlockType blockType) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    if (blockType == null) {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      return true;<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    }<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    return shouldCacheBlockOnRead(blockType.getCategory());<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>  @Override<a name="line.482"></a>
-<span class="sourceLineNo">483</span>  public String toString() {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    if (!isBlockCacheEnabled()) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      return "CacheConfig:disabled";<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    }<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    return "blockCache=" + getBlockCache() +<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      ", cacheDataOnRead=" + shouldCacheDataOnRead() +<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      ", cacheDataOnWrite=" + shouldCacheDataOnWrite() +<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      ", cacheIndexesOnWrite=" + shouldCacheIndexesOnWrite() +<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      ", cacheBloomsOnWrite=" + shouldCacheBloomsOnWrite() +<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      ", cacheEvictOnClose=" + shouldEvictOnClose() +<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      ", cacheDataCompressed=" + shouldCacheDataCompressed() +<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      ", prefetchOnOpen=" + shouldPrefetchOnOpen();<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>  // Static block cache reference and methods<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span>  /**<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * Static reference to the block cache, or null if no caching should be used<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * at all.<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   */<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  // Clear this if in tests you'd make more than one block cache instance.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>  @VisibleForTesting<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  static BlockCache GLOBAL_BLOCK_CACHE_INSTANCE;<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  private static LruBlockCache ONHEAP_CACHE_INSTANCE = null;<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  private static BlockCache L2_CACHE_INSTANCE = null;// Can be BucketCache or External cache.<a name="line.507"></a>
-<span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>  /** Boolean whether we have disabled the block cache entirely. */<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  @VisibleForTesting<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  static boolean blockCacheDisabled = false;<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  /**<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * @param c Configuration to use.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @return An L1 instance.  Currently an instance of LruBlockCache.<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   */<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  public static LruBlockCache getOnHeapCache(final Configuration c) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    return getOnHeapCacheInternal(c);<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 CacheStats getOnHeapCacheStats() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    if (ONHEAP_CACHE_INSTANCE != null) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      return ONHEAP_CACHE_INSTANCE.getStats();<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    return null;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>  }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public CacheStats getL2CacheStats() {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    if (L2_CACHE_INSTANCE != null) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      return L2_CACHE_INSTANCE.getStats();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    }<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    return null;<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>   * @param c Configuration to use.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * @return An L1 instance.  Currently an instance of LruBlockCache.<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   */<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  private synchronized static LruBlockCache getOnHeapCacheInternal(final Configuration c) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    if (ONHEAP_CACHE_INSTANCE != null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      return ONHEAP_CACHE_INSTANCE;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    final long cacheSize = MemorySizeUtil.getOnHeapCacheSize(c);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    if (cacheSize &lt; 0) {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      blockCacheDisabled = true;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    if (blockCacheDisabled) return null;<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    LOG.info("Allocating onheap LruBlockCache size=" +<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      StringUtils.byteDesc(cacheSize) + ", blockSize=" + StringUtils.byteDesc(blockSize));<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    ONHEAP_CACHE_INSTANCE = new LruBlockCache(cacheSize, blockSize, true, c);<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    return ONHEAP_CACHE_INSTANCE;<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>  private static BlockCache getExternalBlockcache(Configuration c) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    if (LOG.isDebugEnabled()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      LOG.debug("Trying to use External l2 cache");<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    Class klass = null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    // Get the class, from the config. s<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    try {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      klass = ExternalBlockCaches.valueOf(c.get(EXTERNAL_BLOCKCACHE_CLASS_KEY, "memcache")).clazz;<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    } catch (IllegalArgumentException exception) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      try {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        klass = c.getClass(EXTERNAL_BLOCKCACHE_CLASS_KEY, Class.forName(<a name="line.566"></a>
-<span class="sourceLineNo">567</span>            "org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache"));<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      } catch (ClassNotFoundException e) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        return null;<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>    // Now try and create an instance of the block cache.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    try {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      LOG.info("Creating external block cache of type: " + klass);<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      return (BlockCache) ReflectionUtils.newInstance(klass, c);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    } catch (Exception e) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      LOG.warn("Error creating external block cache", e);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    return null;<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>  @VisibleForTesting<a name="line.584"></a>
-<span class="sourceLineNo">585</span>  static BucketCache getBucketCache(Configuration c) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    // Check for L2.  ioengine name must be non-null.<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    String bucketCacheIOEngineName = c.get(BUCKET_CACHE_IOENGINE_KEY, null);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (bucketCacheIOEngineName == null || bucketCacheIOEngineName.length() &lt;= 0) return null;<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    final long bucketCacheSize = MemorySizeUtil.getBucketCacheSize(c);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    if (bucketCacheSize &lt;= 0) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      throw new IllegalStateException("bucketCacheSize &lt;= 0; Check " +<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        BUCKET_CACHE_SIZE_KEY + " setting and/or server java heap size");<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    if (c.get("hbase.bucketcache.percentage.in.combinedcache") != null) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      LOG.warn("Configuration 'hbase.bucketcache.percentage.in.combinedcache' is no longer "<a name="line.597"></a>
-<span class="sourceLineNo">598</span>          + "respected. See comments in http://hbase.apache.org/book.html#_changes_of_note");<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    }<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    int writerThreads = c.getInt(BUCKET_CACHE_WRITER_THREADS_KEY,<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      DEFAULT_BUCKET_CACHE_WRITER_THREADS);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    int writerQueueLen = c.getInt(BUCKET_CACHE_WRITER_QUEUE_KEY,<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      DEFAULT_BUCKET_CACHE_WRITER_QUEUE);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    String persistentPath = c.get(BUCKET_CACHE_PERSISTENT_PATH_KEY);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    String[] configuredBucketSizes = c.getStrings(BUCKET_CACHE_BUCKETS_KEY);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    int [] bucketSizes = null;<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    if (configuredBucketSizes != null) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      bucketSizes = new int[configuredBucketSizes.length];<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      for (int i = 0; i &lt; configuredBucketSizes.length; i++) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        int bucketSize = Integer.parseInt(configuredBucketSizes[i].trim());<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        if (bucketSize % 256 != 0) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          // We need all the bucket sizes to be multiples of 256. Having all the configured bucket<a name="line.612"></a>
-<span class="sourceLineNo">613</span>          // sizes to be multiples of 256 will ensure that the block offsets within buckets,<a name="line.613"></a>
-<span class="sourceLineNo">614</span>          // that are calculated, will also be multiples of 256.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>          // See BucketEntry where offset to each block is represented using 5 bytes (instead of 8<a name="line.615"></a>
-<span class="sourceLineNo">616</span>          // bytes long). We would like to save heap overhead as less as possible.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>          throw new IllegalArgumentException("Illegal value: " + bucketSize + " configured for '"<a name="line.617"></a>
-<span class="sourceLineNo">618</span>              + BUCKET_CACHE_BUCKETS_KEY + "'. All bucket sizes to be multiples of 256");<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        }<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        bucketSizes[i] = bucketSize;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    }<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    BucketCache bucketCache = null;<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    try {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      int ioErrorsTolerationDuration = c.getInt(<a name="line.625"></a>
-<span class="sourceLineNo">626</span>        "hbase.bucketcache.ioengine.errors.tolerated.duration",<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        BucketCache.DEFAULT_ERROR_TOLERATION_DURATION);<a name="line.627"></a>
-<span class="sourceLineNo">628</span>      // Bucket cache logs its stats on creation internal to the constructor.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      bucketCache = new BucketCache(bucketCacheIOEngineName,<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        bucketCacheSize, blockSize, bucketSizes, writerThreads, writerQueueLen, persistentPath,<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        ioErrorsTolerationDuration, c);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    } catch (IOException ioex) {<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      LOG.error("Can't instantiate bucket cache", ioex); throw new RuntimeException(ioex);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    return bucketCache;<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  }<a name="line.636"></a>
-<span class="sourceLineNo">637</span><a name="line.637"></a>
-<span class="sourceLineNo">638</span>  /**<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   * Returns the block cache or &lt;code&gt;null&lt;/code&gt; in case none should be used.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   * Sets GLOBAL_BLOCK_CACHE_INSTANCE<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   *<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * @param conf  The current configuration.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * @return The block cache or &lt;code&gt;null&lt;/code&gt;.<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   */<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  public static synchronized BlockCache instantiateBlockCache(Configuration conf) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    if (GLOBAL_BLOCK_CACHE_INSTANCE != null) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      return GLOBAL_BLOCK_CACHE_INSTANCE;<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    if (blockCacheDisabled) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      return null;<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    }<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    LruBlockCache onHeapCache = getOnHeapCacheInternal(conf);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    // blockCacheDisabled is set as a side-effect of getL1Internal(), so check it again after the<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    // call.<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    if (blockCacheDisabled) {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      return null;<a name="line.656"></a>
-<span class="sourceLineNo">657</span>    }<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    boolean useExternal = conf.getBoolean(EXTERNAL_BLOCKCACHE_KEY, EXTERNAL_BLOCKCACHE_DEFAULT);<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    if (useExternal) {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>      L2_CACHE_INSTANCE = getExternalBlockcache(conf);<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      GLOBAL_BLOCK_CACHE_INSTANCE = L2_CACHE_INSTANCE == null ? onHeapCache<a name="line.661"></a>
-<span class="sourceLineNo">662</span>          : new InclusiveCombinedBlockCache(onHeapCache, L2_CACHE_INSTANCE);<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    } else {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>      // otherwise use the bucket cache.<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      L2_CACHE_INSTANCE = getBucketCache(conf);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      if (!conf.getBoolean("hbase.bucketcache.combinedcache.enabled", true)) {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>        // Non combined mode is off from 2.0<a name="line.667"></a>
-<span class="sourceLineNo">668</span>        LOG.warn(<a name="line.668"></a>
-<span class="sourceLineNo">669</span>            "From HBase 2.0 onwards only combined mode of LRU cache and bucket cache is available");<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      }<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      GLOBAL_BLOCK_CACHE_INSTANCE = L2_CACHE_INSTANCE == null ? onHeapCache<a name="line.671"></a>
-<span class="sourceLineNo">672</span>          : new CombinedBlockCache(onHeapCache, L2_CACHE_INSTANCE);<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    }<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    return GLOBAL_BLOCK_CACHE_INSTANCE;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  }<a name="line.675"></a>
-<span class="sourceLineNo">676</span><a name="line.676"></a>
-<span class="sourceLineNo">677</span>  // Supposed to use only from tests. Some tests want to reinit the Global block cache instance<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  @VisibleForTesting<a name="line.678"></a>
-<span class="sourceLineNo">679</span>  static synchronized void clearGlobalInstances() {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    ONHEAP_CACHE_INSTANCE = null;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    L2_CACHE_INSTANCE = null;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    GLOBAL_BLOCK_CACHE_INSTANCE = null;<a name="line.682"></a>
-<span class="sourceLineNo">683</span>  }<a name="line.683"></a>
-<span class="sourceLineNo">684</span>}<a name="line.684"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
index 79cb21b..d8d391b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.EncodedScanner.html
@@ -378,1508 +378,1510 @@
 <span class="sourceLineNo">370</span><a name="line.370"></a>
 <span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
 <span class="sourceLineNo">372</span>  public void returnBlock(HFileBlock block) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    BlockCache blockCache = this.cacheConf.getBlockCache();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (blockCache != null &amp;&amp; block != null) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      BlockCacheKey cacheKey = new BlockCacheKey(this.getFileContext().getHFileName(),<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          block.getOffset(), this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      blockCache.returnBlock(cacheKey, block);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   *         first KeyValue.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (dataBlockIndexReader == null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      throw new BlockIndexNotLoadedException();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   *<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return the first row key, or null if the file is empty.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // We have to copy the row part to form the row key alone<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  /**<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   *<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return the last row key, or null if the file is empty.<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  @Override<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    // We have to copy the row part to form the row key alone<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    return getLastKey().map(CellUtil::cloneRow);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  /** @return number of KV entries in this HFile */<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public long getEntries() {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    return trailer.getEntryCount();<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>  /** @return comparator */<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  @Override<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public CellComparator getComparator() {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    return comparator;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  /** @return compression algorithm */<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return compressAlgo;<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>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  @Override<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public long indexSize() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            : 0);<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>  @Override<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public String getName() {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return name;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  @Override<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return dataBlockIndexReader;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  @Override<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public FixedFileTrailer getTrailer() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return trailer;<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>  @Override<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public boolean isPrimaryReplicaReader() {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    return primaryReplicaReader;<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>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * is invoked on a scanner that is not seeked.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  @SuppressWarnings("serial")<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    public NotSeekedException() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      super("Not seeked to a key/value");<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>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    private ByteBuff blockBuffer;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    protected final boolean cacheBlocks;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    protected final boolean pread;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    protected final boolean isCompaction;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    private int currKeyLen;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    private int currValueLen;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    private int currMemstoreTSLen;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    private long currMemstoreTS;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Updated but never read?<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    protected final HFile.Reader reader;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    private int currTagsLen;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // buffer backed keyonlyKV<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.503"></a>
-<span class="sourceLineNo">504</span>     * current data block is the last data block.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>     *<a name="line.505"></a>
-<span class="sourceLineNo">506</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>     */<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    protected Cell nextIndexedKey;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    // Current block being used<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    protected HFileBlock curBlock;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Previous blocks that were used in the course of the read<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        final boolean pread, final boolean isCompaction) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.reader = reader;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      this.cacheBlocks = cacheBlocks;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.pread = pread;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      this.isCompaction = isCompaction;<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>    void updateCurrBlockRef(HFileBlock block) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        return;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        prevBlocks.add(this.curBlock);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      this.curBlock = block;<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>    void reset() {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>        this.prevBlocks.add(this.curBlock);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      }<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      this.curBlock = null;<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>    private void returnBlockToCache(HFileBlock block) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (LOG.isTraceEnabled()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.trace("Returning the block : " + block);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.reader.returnBlock(block);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    private void returnBlocks(boolean returnAll) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      this.prevBlocks.clear();<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        returnBlockToCache(this.curBlock);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        this.curBlock = null;<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>    @Override<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    public boolean isSeeked(){<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return blockBuffer != null;<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>    @Override<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    public String toString() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (!isSeeked())<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        throw new NotSeekedException();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>    @Override<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    public HFile.Reader getReader() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      return reader;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    private int getKVBufSize() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      if (currTagsLen &gt; 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      return kvBufSize;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    @Override<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    public void close() {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      if (!pread) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        reader.unbufferStream();<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      this.returnBlocks(true);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // HFile block's buffer so as to position to the next cell.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private int getCurCellSerializedSize() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.602"></a>
-<span class="sourceLineNo">603</span>          + currMemstoreTSLen;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      }<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return curCellSize;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    protected void readKeyValueLen() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      // byte buffer array a byte at a time.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      // earlier way is better by doing mark and reset?<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      // But ensure that you read long instead of two ints<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      // Read top half as an int of key length and bottom int as value length<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      checkKeyValueLen();<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        // Tags length is a short.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        checkTagsLen();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      readMvccVersion(p);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>    private final void checkTagsLen() {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      if (checkLen(this.currTagsLen)) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.638"></a>
-<span class="sourceLineNo">639</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.639"></a>
-<span class="sourceLineNo">640</span>            this.blockBuffer.limit() +<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    /**<a name="line.645"></a>
-<span class="sourceLineNo">646</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>     * @param offsetFromPos<a name="line.647"></a>
-<span class="sourceLineNo">648</span>     */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      // See if we even need to decode mvcc.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        currMemstoreTS = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        currMemstoreTSLen = 1;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>        return;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      _readMvccVersion(offsetFromPos);<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>    /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>     * Actually do the mvcc read. Does no checks.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>     * @param offsetFromPos<a name="line.662"></a>
-<span class="sourceLineNo">663</span>     */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      // Also the method is kept small so can be inlined.<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      if (len == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        this.currMemstoreTS = firstByte;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      } else {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        int remaining = len -1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>        long i = 0;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        offsetFromPos++;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          i = i &lt;&lt; 16;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          i = i | (s &amp; 0xFFFF);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          i = i &lt;&lt; 8;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>          i = i | (b &amp; 0xFF);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      }<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      this.currMemstoreTSLen = len;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    /**<a name="line.699"></a>
-<span class="sourceLineNo">700</span>     * Within a loaded block, seek looking for the last key that is smaller than<a name="line.700"></a>
-<span class="sourceLineNo">701</span>     * (or equal to?) the key we are interested in.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>     * A note on the seekBefore: if you have seekBefore = true, AND the first<a name="line.702"></a>
-<span class="sourceLineNo">703</span>     * key in the block = key, then you'll get thrown exceptions. The caller has<a name="line.703"></a>
-<span class="sourceLineNo">704</span>     * to check for that case and load the previous block as appropriate.<a name="line.704"></a>
-<span class="sourceLineNo">705</span>     * @param key<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     *          the key to find<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * @param seekBefore<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     *          find the key before the given key in case of exact match.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>     * @return 0 in case of an exact key match, 1 in case of an inexact match,<a name="line.709"></a>
-<span class="sourceLineNo">710</span>     *         -2 in case of an inexact match and furthermore, the input key<a name="line.710"></a>
-<span class="sourceLineNo">711</span>     *         less than the first key of current block(e.g. using a faked index<a name="line.711"></a>
-<span class="sourceLineNo">712</span>     *         key)<a name="line.712"></a>
-<span class="sourceLineNo">713</span>     */<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    protected int blockSeek(Cell key, boolean seekBefore) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      int klen, vlen, tlen = 0;<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      int lastKeyValueSize = -1;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      int offsetFromPos;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      do {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        offsetFromPos = 0;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        // Better to ensure that we use the BB Utils here<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        long ll = blockBuffer.getLongAfterPosition(offsetFromPos);<a name="line.721"></a>
-<span class="sourceLineNo">722</span>        klen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        vlen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        if (checkKeyLen(klen) || checkLen(vlen)) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>          throw new IllegalStateException("Invalid klen " + klen + " or vlen "<a name="line.725"></a>
-<span class="sourceLineNo">726</span>              + vlen + ". Block offset: "<a name="line.726"></a>
-<span class="sourceLineNo">727</span>              + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.727"></a>
-<span class="sourceLineNo">728</span>              + blockBuffer.position() + " (without header).");<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        }<a name="line.729"></a>
-<span class="sourceLineNo">730</span>        offsetFromPos += Bytes.SIZEOF_LONG;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        blockBuffer.asSubByteBuffer(blockBuffer.position() + offsetFromPos, klen, pair);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>        bufBackedKeyOnlyKv.setKey(pair.getFirst(), pair.getSecond(), klen);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>        int comp =<a name="line.733"></a>
-<span class="sourceLineNo">734</span>            PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), key, bufBackedKeyOnlyKv);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>        offsetFromPos += klen + vlen;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        if (this.reader.getFileContext().isIncludesTags()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>          // Read short as unsigned, high byte first<a name="line.737"></a>
-<span class="sourceLineNo">738</span>          tlen = ((blockBuffer.getByteAfterPosition(offsetFromPos) &amp; 0xff) &lt;&lt; 8)<a name="line.738"></a>
-<span class="sourceLineNo">739</span>              ^ (blockBuffer.getByteAfterPosition(offsetFromPos + 1) &amp; 0xff);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>          if (checkLen(tlen)) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            throw new IllegalStateException("Invalid tlen " + tlen + ". Block offset: "<a name="line.741"></a>
-<span class="sourceLineNo">742</span>                + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.742"></a>
-<span class="sourceLineNo">743</span>                + blockBuffer.position() + " (without header).");<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          }<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          // add the two bytes read for the tags.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          offsetFromPos += tlen + (Bytes.SIZEOF_SHORT);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        if (this.reader.shouldIncludeMemStoreTS()) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>          // Directly read the mvcc based on current position<a name="line.749"></a>
-<span class="sourceLineNo">750</span>          readMvccVersion(offsetFromPos);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>        }<a name="line.751"></a>
-<span class="sourceLineNo">752</span>        if (comp == 0) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>          if (seekBefore) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>            if (lastKeyValueSize &lt; 0) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>              throw new IllegalStateException("blockSeek with seekBefore "<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  + "at the first key of the block: key=" + CellUtil.getCellKeyAsString(key)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                  + ", blockOffset=" + curBlock.getOffset() + ", onDiskSize="<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                  + curBlock.getOnDiskSizeWithHeader());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            readKeyValueLen();<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            return 1; // non exact match.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>          }<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          currKeyLen = klen;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          currValueLen = vlen;<a name="line.765"></a>
-<span class="sourceLineNo">766</span>          currTagsLen = tlen;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>          return 0; // indicate exact match<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        } else if (comp &lt; 0) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          if (lastKeyValueSize &gt; 0) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          readKeyValueLen();<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          if (lastKeyValueSize == -1 &amp;&amp; blockBuffer.position() == 0) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>            return HConstants.INDEX_KEY_MAGIC;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          }<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          return 1;<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
-<span class="sourceLineNo">778</span>        // The size of this key/value tuple, including key/value length fields.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        lastKeyValueSize = klen + vlen + currMemstoreTSLen + KEY_VALUE_LEN_SIZE;<a name="line.779"></a>
-<span class="sourceLineNo">780</span>        // include tag length also if tags included with KV<a name="line.780"></a>
-<span class="sourceLineNo">781</span>        if (reader.getFileContext().isIncludesTags()) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>          lastKeyValueSize += tlen + Bytes.SIZEOF_SHORT;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        blockBuffer.skip(lastKeyValueSize);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      } while (blockBuffer.hasRemaining());<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>      // Seek to the last key we successfully read. This will happen if this is<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      // the last key/value pair in the file, in which case the following call<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      // to next() has to return false.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      blockBuffer.moveBack(lastKeyValueSize);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      readKeyValueLen();<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      return 1; // didn't exactly find it.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    }<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    @Override<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    public Cell getNextIndexedKey() {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      return nextIndexedKey;<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>    @Override<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    public int seekTo(Cell key) throws IOException {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      return seekTo(key, true);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    @Override<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    public int reseekTo(Cell key) throws IOException {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      int compared;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (isSeeked()) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        compared = compareKey(reader.getComparator(), key);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        if (compared &lt; 1) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span>          // If the required key is less than or equal to current key, then<a name="line.811"></a>
-<span class="sourceLineNo">812</span>          // don't do anything.<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          return compared;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } else {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          // The comparison with no_next_index_key has to be checked<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          if (this.nextIndexedKey != null &amp;&amp;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>              (this.nextIndexedKey == KeyValueScanner.NO_NEXT_INDEXED_KEY || PrivateCellUtil<a name="line.817"></a>
-<span class="sourceLineNo">818</span>                  .compareKeyIgnoresMvcc(reader.getComparator(), key, nextIndexedKey) &lt; 0)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            // The reader shall continue to scan the current data block instead<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            // of querying the<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            // block index as long as it knows the target key is strictly<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            // smaller than<a name="line.822"></a>
-<span class="sourceLineNo">823</span>            // the next indexed key or the current data block is the last data<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // block.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            return loadBlockAndSeekToKey(this.curBlock, nextIndexedKey, false, key,<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                false);<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      // Don't rewind on a reseek operation, because reseek implies that we are<a name="line.831"></a>
-<span class="sourceLineNo">832</span>      // always going forward in the file.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      return seekTo(key, false);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    }<a name="line.834"></a>
-<span class="sourceLineNo">835</span><a name="line.835"></a>
-<span class="sourceLineNo">836</span>    /**<a name="line.836"></a>
-<span class="sourceLineNo">837</span>     * An internal API function. Seek to the given key, optionally rewinding to<a name="line.837"></a>
-<span class="sourceLineNo">838</span>     * the first key of the block before doing the seek.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>     *<a name="line.839"></a>
-<span class="sourceLineNo">840</span>     * @param key - a cell representing the key that we need to fetch<a name="line.840"></a>
-<span class="sourceLineNo">841</span>     * @param rewind whether to rewind to the first key of the block before<a name="line.841"></a>
-<span class="sourceLineNo">842</span>     *        doing the seek. If this is false, we are assuming we never go<a name="line.842"></a>
-<span class="sourceLineNo">843</span>     *        back, otherwise the result is undefined.<a name="line.843"></a>
-<span class="sourceLineNo">844</span>     * @return -1 if the key is earlier than the first key of the file,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>     *         0 if we are at the given key, 1 if we are past the given key<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     *         -2 if the key is earlier than the first key of the file while<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     *         using a faked index key<a name="line.847"></a>
-<span class="sourceLineNo">848</span>     * @throws IOException<a name="line.848"></a>
-<span class="sourceLineNo">849</span>     */<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    public int seekTo(Cell key, boolean rewind) throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      HFileBlockIndex.BlockIndexReader indexReader = reader.getDataBlockIndexReader();<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      BlockWithScanInfo blockWithScanInfo = indexReader.loadDataBlockWithScanInfo(key, curBlock,<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          cacheBlocks, pread, isCompaction, getEffectiveDataBlockEncoding());<a name="line.853"></a>
-<span class="sourceLineNo">854</span>      if (blockWithScanInfo == null || blockWithScanInfo.getHFileBlock() == null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>        // This happens if the key e.g. falls before the beginning of the<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        // file.<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        return -1;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      return loadBlockAndSeekToKey(blockWithScanInfo.getHFileBlock(),<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          blockWithScanInfo.getNextIndexedKey(), rewind, key, false);<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
-<span class="sourceLineNo">862</span><a name="line.862"></a>
-<span class="sourceLineNo">863</span>    @Override<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    public boolean seekBefore(Cell key) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      HFileBlock seekToBlock = reader.getDataBlockIndexReader().seekToDataBlock(key, curBlock,<a name="line.865"></a>
-<span class="sourceLineNo">866</span>          cacheBlocks, pread, isCompaction, reader.getEffectiveEncodingInCache(isCompaction));<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (seekToBlock == null) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        return false;<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      Cell firstKey = getFirstKeyCellInBlock(seekToBlock);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      if (PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), firstKey, key) &gt;= 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        long previousBlockOffset = seekToBlock.getPrevBlockOffset();<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        // The key we are interested in<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        if (previousBlockOffset == -1) {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          // we have a 'problem', the key we want is the first of the file.<a name="line.875"></a>
-<span class="sourceLineNo">876</span>          return false;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // The first key in the current block 'seekToBlock' is greater than the given<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        // seekBefore key. We will go ahead by reading the next block that satisfies the<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        // given key. Return the current block before reading the next one.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>        reader.returnBlock(seekToBlock);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        // It is important that we compute and pass onDiskSize to the block<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        // reader so that it does not have to read the header separately to<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        // figure out the size.  Currently, we do not have a way to do this<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        // correctly in the general case however.<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        // TODO: See https://issues.apache.org/jira/browse/HBASE-14576<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        int prevBlockSize = -1;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        seekToBlock = reader.readBlock(previousBlockOffset,<a name="line.889"></a>
-<span class="sourceLineNo">890</span>            prevBlockSize, cacheBlocks,<a name="line.890"></a>
-<span class="sourceLineNo">891</span>            pread, isCompaction, true, BlockType.DATA, getEffectiveDataBlockEncoding());<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        // TODO shortcut: seek forward in this block to the last key of the<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        // block.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      loadBlockAndSeekToKey(seekToBlock, firstKey, true, key, true);<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      return true;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>    /**<a name="line.899"></a>
-<span class="sourceLineNo">900</span>     * Scans blocks in the "scanned" section of the {@link HFile} until the next<a name="line.900"></a>
-<span class="sourceLineNo">901</span>     * data block is found.<a name="line.901"></a>
-<span class="sourceLineNo">902</span>     *<a name="line.902"></a>
-<span class="sourceLineNo">903</span>     * @return the next block, or null if there are no more data blocks<a name="line.903"></a>
-<span class="sourceLineNo">904</span>     * @throws IOException<a name="line.904"></a>
-<span class="sourceLineNo">905</span>     */<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.906"></a>
-<span class="sourceLineNo">907</span>        justification="Yeah, unnecessary null check; could do w/ clean up")<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    protected HFileBlock readNextDataBlock() throws IOException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>      long lastDataBlockOffset = reader.getTrailer().getLastDataBlockOffset();<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (curBlock == null)<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        return null;<a name="line.911"></a>
-<span class="sourceLineNo">912</span><a name="line.912"></a>
-<span class="sourceLineNo">913</span>      HFileBlock block = this.curBlock;<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>      do {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        if (block.getOffset() &gt;= lastDataBlockOffset) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>          return null;<a name="line.917"></a>
-<span class="sourceLineNo">918</span>        }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>        if (block.getOffset() &lt; 0) {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>          throw new IOException("Invalid block file offset: " + block);<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
-<span class="sourceLineNo">923</span><a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // We are reading the next block without block type validation, because<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        // it might turn out to be a non-data block.<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        block = reader.readBlock(block.getOffset() + block.getOnDiskSizeWithHeader(),<a name="line.926"></a>
-<span class="sourceLineNo">927</span>            block.getNextBlockOnDiskSize(), cacheBlocks, pread,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>            isCompaction, true, null, getEffectiveDataBlockEncoding());<a name="line.928"></a>
-<span class="sourceLineNo">929</span>        if (block != null &amp;&amp; !block.getBlockType().isData()) { // Findbugs: NP_NULL_ON_SOME_PATH<a name="line.929"></a>
-<span class="sourceLineNo">930</span>          // Whatever block we read we will be returning it unless<a name="line.930"></a>
-<span class="sourceLineNo">931</span>          // it is a datablock. Just in case the blocks are non data blocks<a name="line.931"></a>
-<span class="sourceLineNo">932</span>          reader.returnBlock(block);<a name="line.932"></a>
-<span class="sourceLineNo">933</span>        }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      } while (!block.getBlockType().isData());<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>      return block;<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">373</span>    if (block != null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      this.cacheConf.getBlockCache().ifPresent(blockCache -&gt; {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        BlockCacheKey cacheKey =<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            new BlockCacheKey(this.getFileContext().getHFileName(), block.getOffset(),<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        blockCache.returnBlock(cacheKey, block);<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>  }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   *         first KeyValue.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    if (dataBlockIndexReader == null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      throw new BlockIndexNotLoadedException();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   *<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * @return the first row key, or null if the file is empty.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    // We have to copy the row part to form the row key alone<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>  /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   *<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @return the last row key, or null if the file is empty.<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // We have to copy the row part to form the row key alone<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    return getLastKey().map(CellUtil::cloneRow);<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>  /** @return number of KV entries in this HFile */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  public long getEntries() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    return trailer.getEntryCount();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  /** @return comparator */<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  public CellComparator getComparator() {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return comparator;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /** @return compression algorithm */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  @Override<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    return compressAlgo;<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>  /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public long indexSize() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.446"></a>
+<span class="sourceLineNo">447</span>            : 0);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>  @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>  public String getName() {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    return name;<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>  @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    return dataBlockIndexReader;<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>  @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>  public FixedFileTrailer getTrailer() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    return trailer;<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>  @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  public boolean isPrimaryReplicaReader() {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    return primaryReplicaReader;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * is invoked on a scanner that is not seeked.<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  @SuppressWarnings("serial")<a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    public NotSeekedException() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      super("Not seeked to a key/value");<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><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    private ByteBuff blockBuffer;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    protected final boolean cacheBlocks;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    protected final boolean pread;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    protected final boolean isCompaction;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    private int currKeyLen;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    private int currValueLen;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    private int currMemstoreTSLen;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    private long currMemstoreTS;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Updated but never read?<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    protected final HFile.Reader reader;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    private int currTagsLen;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // buffer backed keyonlyKV<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<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>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.506"></a>
+<span class="sourceLineNo">507</span>     * current data block is the last data block.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>     *<a name="line.508"></a>
+<span class="sourceLineNo">509</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.509"></a>
+<span class="sourceLineNo">510</span>     */<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    protected Cell nextIndexedKey;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // Current block being used<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    protected HFileBlock curBlock;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // Previous blocks that were used in the course of the read<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        final boolean pread, final boolean isCompaction) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      this.reader = reader;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      this.cacheBlocks = cacheBlocks;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      this.pread = pread;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>      this.isCompaction = isCompaction;<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>    void updateCurrBlockRef(HFileBlock block) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        return;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        prevBlocks.add(this.curBlock);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      this.curBlock = block;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>    void reset() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        this.prevBlocks.add(this.curBlock);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      this.curBlock = null;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private void returnBlockToCache(HFileBlock block) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      if (LOG.isTraceEnabled()) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        LOG.trace("Returning the block : " + block);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      this.reader.returnBlock(block);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    private void returnBlocks(boolean returnAll) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      this.prevBlocks.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        returnBlockToCache(this.curBlock);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        this.curBlock = null;<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>    @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    public boolean isSeeked(){<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return blockBuffer != null;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>    @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    public String toString() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      if (!isSeeked())<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        throw new NotSeekedException();<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>    @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    public HFile.Reader getReader() {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      return reader;<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>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    private int getKVBufSize() {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      if (currTagsLen &gt; 0) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      return kvBufSize;<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>    @Override<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    public void close() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      if (!pread) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        reader.unbufferStream();<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.returnBlocks(true);<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>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    // HFile block's buffer so as to position to the next cell.<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    private int getCurCellSerializedSize() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.605"></a>
+<span class="sourceLineNo">606</span>          + currMemstoreTSLen;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      return curCellSize;<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>    protected void readKeyValueLen() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.616"></a>
+<span class="sourceLineNo">617</span>      // byte buffer array a byte at a time.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      // earlier way is better by doing mark and reset?<a name="line.621"></a>
+<span class="sourceLineNo">622</span>      // But ensure that you read long instead of two ints<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      // Read top half as an int of key length and bottom int as value length<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>      checkKeyValueLen();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        // Tags length is a short.<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        checkTagsLen();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      readMvccVersion(p);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    private final void checkTagsLen() {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      if (checkLen(this.currTagsLen)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.641"></a>
+<span class="sourceLineNo">642</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.642"></a>
+<span class="sourceLineNo">643</span>            this.blockBuffer.limit() +<a name="line.643"></a>
+<span class="sourceLineNo">644</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>    /**<a name="line.648"></a>
+<span class="sourceLineNo">649</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.649"></a>
+<span class="sourceLineNo">650</span>     * @param offsetFromPos<a name="line.650"></a>
+<span class="sourceLineNo">651</span>     */<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      // See if we even need to decode mvcc.<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        currMemstoreTS = 0;<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        currMemstoreTSLen = 1;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        return;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      _readMvccVersion(offsetFromPos);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>    /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>     * Actually do the mvcc read. Does no checks.<a name="line.664"></a>
+<span class="sourceLineNo">665</span>     * @param offsetFromPos<a name="line.665"></a>
+<span class="sourceLineNo">666</span>     */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      // Also the method is kept small so can be inlined.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      if (len == 1) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        this.currMemstoreTS = firstByte;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      } else {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        int remaining = len -1;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        long i = 0;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        offsetFromPos++;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>          i = i &lt;&lt; 16;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>          i = i | (s &amp; 0xFFFF);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>          i = i &lt;&lt; 8;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>          i = i | (b &amp; 0xFF);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      this.currMemstoreTSLen = len;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>    /**<a name="line.702"></a>
+<span class="sourceLineNo">703</span>     * Within a loaded block, seek

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 0761683..f7aa217 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -168,9 +168,9 @@
 <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/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/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/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/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/class-use/Server.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/Server.html b/devapidocs/org/apache/hadoop/hbase/class-use/Server.html
index 8de0f88..2615bf2 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/Server.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/Server.html
@@ -436,13 +436,6 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a></code></td>
-<td class="colLast"><span class="typeNameLabel">HeapMemoryManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#create-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">create</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-      <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
-      <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
-      <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RSRpcServices.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html#createRpcServer-org.apache.hadoop.hbase.Server-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.RpcSchedulerFactory-java.net.InetSocketAddress-java.lang.String-">createRpcServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                org.apache.hadoop.conf.Configuration&nbsp;conf,
@@ -450,7 +443,7 @@
                <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,
                <a href="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)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">ReplicationService.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationService.html#initialize-org.apache.hadoop.hbase.Server-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.wal.WALProvider-">initialize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;rs,
           org.apache.hadoop.fs.FileSystem&nbsp;fs,
@@ -474,7 +467,7 @@
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.ResizableBlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a>&nbsp;blockCache,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html#HeapMemoryManager-org.apache.hadoop.hbase.io.hfile.BlockCache-org.apache.hadoop.hbase.regionserver.FlushRequester-org.apache.hadoop.hbase.Server-org.apache.hadoop.hbase.regionserver.RegionServerAccounting-">HeapMemoryManager</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;memStoreFlusher,
                  <a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;regionServerAccounting)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index 08889d8..ed399cc 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -4324,7 +4324,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a></code></td>
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/master/assignment/ServerStateNode.html" title="class in org.apache.hadoop.hbase.master.assignment">ServerStateNode</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionStates.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/assignment/RegionStates.html#getServerNode-org.apache.hadoop.hbase.ServerName-">getServerNode</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/client/class-use/ColumnFamilyDescriptor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/ColumnFamilyDescriptor.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/ColumnFamilyDescriptor.html
index 5c02dc3..3e059fa 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/ColumnFamilyDescriptor.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/ColumnFamilyDescriptor.html
@@ -518,8 +518,9 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-           <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-org.apache.hadoop.hbase.io.hfile.BlockCache-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+           <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family,
+           <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache)</code>
 <div class="block">Create a cache configuration using the specified configuration object and
  family descriptor.</div>
 </td>
@@ -847,18 +848,6 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </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/mob/package-summary.html">org.apache.hadoop.hbase.mob</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</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/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">MobCacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
-              <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
 </li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.mob.compactions">
 <!--   -->
@@ -947,21 +936,15 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">HMobStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HMobStore.html#createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">createCacheConf</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>
-<div class="block">Creates the mob cache config.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#createCacheConf-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">createCacheConf</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>
 <div class="block">Creates the cache config.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#determineTTLFromFamily-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">determineTTLFromFamily</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HRegion.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#instantiateHStore-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">instantiateHStore</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 f24d0a1..aafbcb1 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -555,24 +555,24 @@
 <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/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/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/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/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/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/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/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/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/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/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/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/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/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/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/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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/4f8b8424/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index ce950b0..ae0124e 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,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.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 66fec8b..59d5985 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -184,13 +184,13 @@
 <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/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/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/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/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.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/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/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/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/Reference.Range.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/Reference.Range.html b/devapidocs/org/apache/hadoop/hbase/io/Reference.Range.html
index 7744bec..2a1495e 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/Reference.Range.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/Reference.Range.html
@@ -244,7 +244,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/Reference.Range.html" title="enum in org.apache.hadoop.hbase.io">Reference.Range</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/Reference.Range.html#line.76">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/Reference.Range.html" title="enum in org.apache.hadoop.hbase.io">Reference.Range</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/Reference.Range.html#line.23">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -264,7 +264,7 @@ for (Reference.Range c : Reference.Range.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/Reference.Range.html" title="enum in org.apache.hadoop.hbase.io">Reference.Range</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/Reference.Range.html#line.76">valueOf</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;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/Reference.Range.html" title="enum in org.apache.hadoop.hbase.io">Reference.Range</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/io/Reference.Range.html#line.23">valueOf</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;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCache.html
index c42da0e..fac92df 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCache.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/AgeSnapshot.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/BlockCache.html" target="_top">Frames</a></li>
@@ -551,7 +551,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.ht
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/AgeSnapshot.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/BlockCache.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html
new file mode 100644
index 0000000..2bf00d0
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BlockCacheFactory.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BlockCacheFactory.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static 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>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BlockCacheFactory.ExternalBlockCaches.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.io.hfile</div>
+<h2 title="Enum BlockCacheFactory.ExternalBlockCaches" class="title">Enum BlockCacheFactory.ExternalBlockCaches</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.ExternalBlockCaches</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><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>, <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/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>private static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.126">BlockCacheFactory.ExternalBlockCaches</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>&gt;</pre>
+<div class="block">Enum of all built in external block caches.
+ This is used for config.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#memcached">memcached</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <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;? extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#clazz">clazz</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#valueOf-java.lang.String-">valueOf</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;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;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">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/
 8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<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></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="memcached">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>memcached</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#line.127">memcached</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="clazz">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>clazz</h4>
+<pre><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;? extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#line.129">clazz</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#line.126">values</a>()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (BlockCacheFactory.ExternalBlockCaches c : BlockCacheFactory.ExternalBlockCaches.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html#line.126">valueOf</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;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><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></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BlockCacheFactory.ExternalBlockCaches.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
new file mode 100644
index 0000000..ce65be8
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
@@ -0,0 +1,564 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BlockCacheFactory (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BlockCacheFactory (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static 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>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BlockCacheFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&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>
+</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>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.io.hfile</div>
+<h2 title="Class BlockCacheFactory" class="title">Class BlockCacheFactory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.io.hfile.BlockCacheFactory</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Private
+public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.36">BlockCacheFactory</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>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockCacheFactory.ExternalBlockCaches</a></span></code>
+<div class="block">Enum of all built in external block caches.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</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/io/hfile/BlockCacheFactory.html#BLOCKCACHE_BLOCKSIZE_KEY">BLOCKCACHE_BLOCKSIZE_KEY</a></span></code>
+<div class="block">The target block size used by blockcache instances.</div>
+</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_BUCKETS_KEY">BUCKET_CACHE_BUCKETS_KEY</a></span></code>
+<div class="block">A comma-delimited array of values for use as bucket sizes.</div>
+</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_PERSISTENT_PATH_KEY">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></span></code>
+<div class="block">If the chosen ioengine can persist its state across restarts, the path to the file to persist
+ to.</div>
+</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_WRITER_QUEUE_KEY">BUCKET_CACHE_WRITER_QUEUE_KEY</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/io/hfile/BlockCacheFactory.html#BUCKET_CACHE_WRITER_THREADS_KEY">BUCKET_CACHE_WRITER_THREADS_KEY</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#DEFAULT_BUCKET_CACHE_WRITER_QUEUE">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#DEFAULT_BUCKET_CACHE_WRITER_THREADS">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></span></code>
+<div class="block">Defaults for Bucket cache</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private 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/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_CLASS_KEY">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_DEFAULT">EXTERNAL_BLOCKCACHE_DEFAULT</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private 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/io/hfile/BlockCacheFactory.html#EXTERNAL_BLOCKCACHE_KEY">EXTERNAL_BLOCKCACHE_KEY</a></span></code>&nbsp;</td>
+</tr>
+<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/io/hfile/BlockCacheFactory.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#BlockCacheFactory--">BlockCacheFactory</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createBlockCache-org.apache.hadoop.conf.Configuration-">createBlockCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createBucketCache-org.apache.hadoop.conf.Configuration-">createBucketCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createExternalBlockcache-org.apache.hadoop.conf.Configuration-">createExternalBlockcache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createOnHeapCache-org.apache.hadoop.conf.Configuration-">createOnHeapCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<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></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <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>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <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>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <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>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="LOG">
+<!--   -->
+</a>
+<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/io/hfile/BlockCacheFactory.html#line.38">LOG</a></pre>
+</li>
+</ul>
+<a name="BUCKET_CACHE_PERSISTENT_PATH_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BUCKET_CACHE_PERSISTENT_PATH_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/io/hfile/BlockCacheFactory.html#line.54">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></pre>
+<div class="block">If the chosen ioengine can persist its state across restarts, the path to the file to persist
+ to. This file is NOT the data file. It is a file into which we will serialize the map of
+ what is in the data file. For example, if you pass the following argument as
+ BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),
+ <code>file:/tmp/bucketcache.data </code>, then we will write the bucketcache data to the file
+ <code>/tmp/bucketcache.data</code> but the metadata on where the data is in the supplied file
+ is an in-memory map that needs to be persisted across restarts. Where to store this
+ in-memory state is what you supply here: e.g. <code>/tmp/bucketcache.map</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_PERSISTENT_PATH_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="BUCKET_CACHE_WRITER_THREADS_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BUCKET_CACHE_WRITER_THREADS_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/io/hfile/BlockCacheFactory.html#line.56">BUCKET_CACHE_WRITER_THREADS_KEY</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_WRITER_THREADS_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="BUCKET_CACHE_WRITER_QUEUE_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BUCKET_CACHE_WRITER_QUEUE_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/io/hfile/BlockCacheFactory.html#line.58">BUCKET_CACHE_WRITER_QUEUE_KEY</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_WRITER_QUEUE_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="BUCKET_CACHE_BUCKETS_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BUCKET_CACHE_BUCKETS_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/io/hfile/BlockCacheFactory.html#line.63">BUCKET_CACHE_BUCKETS_KEY</a></pre>
+<div class="block">A comma-delimited array of values for use as bucket sizes.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BUCKET_CACHE_BUCKETS_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DEFAULT_BUCKET_CACHE_WRITER_THREADS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_BUCKET_CACHE_WRITER_THREADS</h4>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.68">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></pre>
+<div class="block">Defaults for Bucket cache</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.DEFAULT_BUCKET_CACHE_WRITER_THREADS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DEFAULT_BUCKET_CACHE_WRITER_QUEUE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_BUCKET_CACHE_WRITER_QUEUE</h4>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.69">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.DEFAULT_BUCKET_CACHE_WRITER_QUEUE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="BLOCKCACHE_BLOCKSIZE_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BLOCKCACHE_BLOCKSIZE_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/io/hfile/BlockCacheFactory.html#line.77">BLOCKCACHE_BLOCKSIZE_KEY</a></pre>
+<div class="block">The target block size used by blockcache instances. Defaults to
+ <a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#DEFAULT_BLOCKSIZE"><code>HConstants.DEFAULT_BLOCKSIZE</code></a>.
+ TODO: this config point is completely wrong, as it's used to determine the
+ target block size of BlockCache instances. Rename.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.BLOCKCACHE_BLOCKSIZE_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="EXTERNAL_BLOCKCACHE_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXTERNAL_BLOCKCACHE_KEY</h4>
+<pre>private 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/io/hfile/BlockCacheFactory.html#line.79">EXTERNAL_BLOCKCACHE_KEY</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.EXTERNAL_BLOCKCACHE_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="EXTERNAL_BLOCKCACHE_DEFAULT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXTERNAL_BLOCKCACHE_DEFAULT</h4>
+<pre>private static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.80">EXTERNAL_BLOCKCACHE_DEFAULT</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.EXTERNAL_BLOCKCACHE_DEFAULT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="EXTERNAL_BLOCKCACHE_CLASS_KEY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EXTERNAL_BLOCKCACHE_CLASS_KEY</h4>
+<pre>private 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/io/hfile/BlockCacheFactory.html#line.82">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.BlockCacheFactory.EXTERNAL_BLOCKCACHE_CLASS_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BlockCacheFactory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BlockCacheFactory</h4>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.84">BlockCacheFactory</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createBlockCache-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBlockCache</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.87">createBlockCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+</li>
+</ul>
+<a name="createOnHeapCache-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createOnHeapCache</h4>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.110">createOnHeapCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+</li>
+</ul>
+<a name="createExternalBlockcache-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createExternalBlockcache</h4>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.142">createExternalBlockcache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+</li>
+</ul>
+<a name="createBucketCache-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createBucketCache</h4>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#line.172">createBucketCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BlockCacheFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html" target="_top">Frames</a></li>
+<li><a href="BlockCacheFactory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&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>
+</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>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
index f12e2ad..075304a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.255">RSRpcServices</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.256">RSRpcServices</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/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>, org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.BlockingInterface, <a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
 <div class="block">Implements the regionserver RPC services.</div>
@@ -1016,7 +1016,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>protected static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.258">LOG</a></pre>
+<pre>protected static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.259">LOG</a></pre>
 </li>
 </ul>
 <a name="REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS">
@@ -1025,7 +1025,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS</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/regionserver/RSRpcServices.html#line.261">REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS</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/regionserver/RSRpcServices.html#line.262">REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS</a></pre>
 <div class="block">RPC scheduler to use for the region server.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1039,7 +1039,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>MASTER_RPC_SCHEDULER_FACTORY_CLASS</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/regionserver/RSRpcServices.html#line.265">MASTER_RPC_SCHEDULER_FACTORY_CLASS</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/regionserver/RSRpcServices.html#line.266">MASTER_RPC_SCHEDULER_FACTORY_CLASS</a></pre>
 <div class="block">RPC scheduler to use for the master.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1053,7 +1053,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA</h4>
-<pre>private 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/RSRpcServices.html#line.273">REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA</a></pre>
+<pre>private 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/RSRpcServices.html#line.274">REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA</a></pre>
 <div class="block">Minimum allowable time limit delta (in milliseconds) that can be enforced during scans. This
  configuration exists to prevent the scenario where a time limit is specified to be so
  restrictive that the time limit is reached immediately (before any cells are scanned).</div>
@@ -1069,7 +1069,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA</h4>
-<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.278">DEFAULT_REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.279">DEFAULT_REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA</a></pre>
 <div class="block">Default value of <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html#REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA"><code>REGION_SERVER_RPC_MINIMUM_SCAN_TIME_LIMIT_DELTA</code></a></div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1083,7 +1083,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>BATCH_ROWS_THRESHOLD_NAME</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/RSRpcServices.html#line.283">BATCH_ROWS_THRESHOLD_NAME</a></pre>
+<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/RSRpcServices.html#line.284">BATCH_ROWS_THRESHOLD_NAME</a></pre>
 <div class="block">Number of rows in a batch operation above which a warning will be logged.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1097,7 +1097,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>BATCH_ROWS_THRESHOLD_DEFAULT</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.287">BATCH_ROWS_THRESHOLD_DEFAULT</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.288">BATCH_ROWS_THRESHOLD_DEFAULT</a></pre>
 <div class="block">Default value of <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html#BATCH_ROWS_THRESHOLD_NAME"><code>BATCH_ROWS_THRESHOLD_NAME</code></a></div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1111,7 +1111,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>RESERVOIR_ENABLED_KEY</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/regionserver/RSRpcServices.html#line.289">RESERVOIR_ENABLED_KEY</a></pre>
+<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/regionserver/RSRpcServices.html#line.290">RESERVOIR_ENABLED_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.RSRpcServices.RESERVOIR_ENABLED_KEY">Constant Field Values</a></dd>
@@ -1124,7 +1124,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>requestCount</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.293">requestCount</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.294">requestCount</a></pre>
 </li>
 </ul>
 <a name="rpcGetRequestCount">
@@ -1133,7 +1133,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcGetRequestCount</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.296">rpcGetRequestCount</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.297">rpcGetRequestCount</a></pre>
 </li>
 </ul>
 <a name="rpcScanRequestCount">
@@ -1142,7 +1142,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcScanRequestCount</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.299">rpcScanRequestCount</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.300">rpcScanRequestCount</a></pre>
 </li>
 </ul>
 <a name="rpcMultiRequestCount">
@@ -1151,7 +1151,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcMultiRequestCount</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.302">rpcMultiRequestCount</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.303">rpcMultiRequestCount</a></pre>
 </li>
 </ul>
 <a name="rpcMutateRequestCount">
@@ -1160,7 +1160,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcMutateRequestCount</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.305">rpcMutateRequestCount</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.306">rpcMutateRequestCount</a></pre>
 </li>
 </ul>
 <a name="rpcServer">
@@ -1169,7 +1169,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcServer</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.308">rpcServer</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.309">rpcServer</a></pre>
 </li>
 </ul>
 <a name="isa">
@@ -1178,7 +1178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>isa</h4>
-<pre>final&nbsp;<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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.309">isa</a></pre>
+<pre>final&nbsp;<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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.310">isa</a></pre>
 </li>
 </ul>
 <a name="regionServer">
@@ -1187,7 +1187,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServer</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.311">regionServer</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.312">regionServer</a></pre>
 </li>
 </ul>
 <a name="maxScannerResultSize">
@@ -1196,7 +1196,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>maxScannerResultSize</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.312">maxScannerResultSize</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.313">maxScannerResultSize</a></pre>
 </li>
 </ul>
 <a name="priority">
@@ -1205,7 +1205,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>priority</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.315">priority</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.316">priority</a></pre>
 </li>
 </ul>
 <a name="scannerIdGenerator">
@@ -1214,7 +1214,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerIdGenerator</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerIdGenerator.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerIdGenerator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.317">scannerIdGenerator</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerIdGenerator.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerIdGenerator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.318">scannerIdGenerator</a></pre>
 </li>
 </ul>
 <a name="scanners">
@@ -1223,7 +1223,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>scanners</h4>
-<pre>private final&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/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.318">scanners</a></pre>
+<pre>private final&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/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.319">scanners</a></pre>
 </li>
 </ul>
 <a name="closedScanners">
@@ -1232,7 +1232,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>closedScanners</h4>
-<pre>private final&nbsp;org.apache.hbase.thirdparty.com.google.common.cache.Cache&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="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; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.322">closedScanners</a></pre>
+<pre>private final&nbsp;org.apache.hbase.thirdparty.com.google.common.cache.Cache&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="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; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.323">closedScanners</a></pre>
 </li>
 </ul>
 <a name="scannerLeaseTimeoutPeriod">
@@ -1241,7 +1241,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerLeaseTimeoutPeriod</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.326">scannerLeaseTimeoutPeriod</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.327">scannerLeaseTimeoutPeriod</a></pre>
 <div class="block">The lease timeout period for client scanners (milliseconds).</div>
 </li>
 </ul>
@@ -1251,7 +1251,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcTimeout</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.331">rpcTimeout</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.332">rpcTimeout</a></pre>
 <div class="block">The RPC timeout period (milliseconds)</div>
 </li>
 </ul>
@@ -1261,7 +1261,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>minimumScanTimeLimitDelta</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.336">minimumScanTimeLimitDelta</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.337">minimumScanTimeLimitDelta</a></pre>
 <div class="block">The minimum allowable delta to use for the scan limit</div>
 </li>
 </ul>
@@ -1271,7 +1271,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>rowSizeWarnThreshold</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.341">rowSizeWarnThreshold</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.342">rowSizeWarnThreshold</a></pre>
 <div class="block">Row size threshold for multi requests above which a warning is logged</div>
 </li>
 </ul>
@@ -1281,7 +1281,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>clearCompactionQueues</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/RSRpcServices.html#line.343">clearCompactionQueues</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/RSRpcServices.html#line.344">clearCompactionQueues</a></pre>
 </li>
 </ul>
 <a name="accessChecker">
@@ -1290,7 +1290,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>accessChecker</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/access/AccessChecker.html" title="class in org.apache.hadoop.hbase.security.access">AccessChecker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.350">accessChecker</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/access/AccessChecker.html" title="class in org.apache.hadoop.hbase.security.access">AccessChecker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.351">accessChecker</a></pre>
 </li>
 </ul>
 <a name="REGIONSERVER_ADMIN_SERVICE_CONFIG">
@@ -1299,7 +1299,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>REGIONSERVER_ADMIN_SERVICE_CONFIG</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/regionserver/RSRpcServices.html#line.357">REGIONSERVER_ADMIN_SERVICE_CONFIG</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/regionserver/RSRpcServices.html#line.358">REGIONSERVER_ADMIN_SERVICE_CONFIG</a></pre>
 <div class="block">Services launched in RSRpcServices. By default they are on but you can use the below
  booleans to selectively enable/disable either Admin or Client Service (Rare is the case
  where you would ever turn off one or the other).</div>
@@ -1315,7 +1315,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>REGIONSERVER_CLIENT_SERVICE_CONFIG</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/regionserver/RSRpcServices.html#line.359">REGIONSERVER_CLIENT_SERVICE_CONFIG</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/regionserver/RSRpcServices.html#line.360">REGIONSERVER_CLIENT_SERVICE_CONFIG</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.RSRpcServices.REGIONSERVER_CLIENT_SERVICE_CONFIG">Constant Field Values</a></dd>
@@ -1328,7 +1328,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_LOG_DELEGATE</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1188">DEFAULT_LOG_DELEGATE</a></pre>
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1189">DEFAULT_LOG_DELEGATE</a></pre>
 </li>
 </ul>
 <a name="ld">
@@ -1337,7 +1337,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>ld</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1201">ld</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1202">ld</a></pre>
 </li>
 </ul>
 <a name="SCANNER_ALREADY_CLOSED">
@@ -1347,7 +1347,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <li class="blockList">
 <h4>SCANNER_ALREADY_CLOSED</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-private static final&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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3025">SCANNER_ALREADY_CLOSED</a></pre>
+private static final&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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3027">SCANNER_ALREADY_CLOSED</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
@@ -1365,7 +1365,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>RSRpcServices</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1203">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1204">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)
               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>
@@ -1379,7 +1379,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSRpcServices</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1208">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1209">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs,
               <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a>&nbsp;ld)
        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>
@@ -1402,7 +1402,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getResultOrException</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.505">getResultOrException</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Result&nbsp;r,
+<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.506">getResultOrException</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Result&nbsp;r,
                                                                                                                      int&nbsp;index)</pre>
 </li>
 </ul>
@@ -1412,7 +1412,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getResultOrException</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.510">getResultOrException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e,
+<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.511">getResultOrException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;e,
                                                                                                                      int&nbsp;index)</pre>
 </li>
 </ul>
@@ -1422,7 +1422,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getResultOrException</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.514">getResultOrException</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException.Builder&nbsp;builder,
+<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.515">getResultOrException</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ResultOrException.Builder&nbsp;builder,
                                                                                                                      int&nbsp;index)</pre>
 </li>
 </ul>
@@ -1432,7 +1432,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcPreCheck</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.528">rpcPreCheck</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;requestName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.529">rpcPreCheck</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;requestName)
                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Checks for the following pre-checks in order:
  <ol>
@@ -1453,7 +1453,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>startNonceOperation</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.543">startNonceOperation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutationProto&nbsp;mutation,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.544">startNonceOperation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutationProto&nbsp;mutation,
                                     long&nbsp;nonceGroup)
                              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">Starts the nonce operation for a mutation, if needed.</div>
@@ -1472,7 +1472,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>endNonceOperation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.562">endNonceOperation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutationProto&nbsp;mutation,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.563">endNonceOperation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutationProto&nbsp;mutation,
                                long&nbsp;nonceGroup,
                                boolean&nbsp;success)</pre>
 <div class="block">Ends nonce operation for a mutation, if needed.</div>
@@ -1490,7 +1490,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>isClientCellBlockSupport</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.569">isClientCellBlockSupport</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.570">isClientCellBlockSupport</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context)</pre>
 </li>
 </ul>
 <a name="addResult-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse.Builder-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.hbase.ipc.HBaseRpcController-boolean-">
@@ -1499,7 +1499,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>addResult</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.573">addResult</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse.Builder&nbsp;builder,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.574">addResult</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse.Builder&nbsp;builder,
                        <a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;result,
                        <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;rpcc,
                        boolean&nbsp;clientCellBlockSupported)</pre>
@@ -1511,7 +1511,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>addResults</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.585">addResults</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse.Builder&nbsp;builder,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.586">addResults</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse.Builder&nbsp;builder,
                         <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/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;results,
                         <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
                         boolean&nbsp;isDefaultRegion,
@@ -1524,7 +1524,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndRowMutate</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.609">checkAndRowMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.610">checkAndRowMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                   <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.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions,
                                   <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner,
                                   byte[]&nbsp;row,
@@ -1551,7 +1551,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.671">append</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.672">append</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/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                       org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutationProto&nbsp;mutation,
                       <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner,
@@ -1574,7 +1574,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>increment</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.723">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.724">increment</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/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                          org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutationProto&nbsp;mutation,
                          <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cells,
@@ -1599,7 +1599,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>doNonAtomicRegionMutation</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/CellScannable.html" title="interface in org.apache.hadoop.hbase">CellScannable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.776">doNonAtomicRegionMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<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/CellScannable.html" title="interface in org.apache.hadoop.hbase">CellScannable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.777">doNonAtomicRegionMutation</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/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionAction&nbsp;actions,
                                                       <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner,
@@ -1628,7 +1628,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCellSizeLimit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.942">checkCellSizeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.943">checkCellSizeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
                                 <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;m)
                          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>
@@ -1643,7 +1643,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>doAtomicBatchOp</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.958">doAtomicBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.959">doAtomicBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
                              <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/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                              <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.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;mutations,
@@ -1662,7 +1662,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>doNonAtomicBatchOp</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.970">doNonAtomicBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.971">doNonAtomicBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
                                 <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/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                                 <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.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;mutations,
@@ -1676,7 +1676,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>doBatchOp</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.992">doBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.993">doBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
                        <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/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                        <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.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;mutations,
@@ -1701,7 +1701,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMutationMetrics</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1088">updateMutationMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1089">updateMutationMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                    long&nbsp;starttime,
                                    boolean&nbsp;batchContainsPuts,
                                    boolean&nbsp;batchContainsDelete)</pre>
@@ -1713,7 +1713,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>doReplayBatchOp</h4>
-<pre>private&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/RSRpcServices.html#line.1113">doReplayBatchOp</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&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/RSRpcServices.html#line.1114">doReplayBatchOp</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                           <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/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;&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>
@@ -1738,7 +1738,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>closeAllScanners</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1171">closeAllScanners</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1172">closeAllScanners</a>()</pre>
 </li>
 </ul>
 <a name="createRpcServer-org.apache.hadoop.hbase.Server-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.regionserver.RpcSchedulerFactory-java.net.InetSocketAddress-java.lang.String-">
@@ -1747,7 +1747,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>createRpcServer</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1276">createRpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1277">createRpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                                              org.apache.hadoop.conf.Configuration&nbsp;conf,
                                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.html" title="interface in org.apache.hadoop.hbase.regionserver">RpcSchedulerFactory</a>&nbsp;rpcSchedulerFactory,
                                              <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,
@@ -1765,7 +1765,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcSchedulerFactoryClass</h4>
-<pre>protected&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/regionserver/RSRpcServices.html#line.1291">getRpcSchedulerFactoryClass</a>()</pre>
+<pre>protected&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/regionserver/RSRpcServices.html#line.1292">getRpcSchedulerFactoryClass</a>()</pre>
 </li>
 </ul>
 <a name="onConfigurationChange-org.apache.hadoop.conf.Configuration-">
@@ -1774,7 +1774,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1297">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1298">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>
@@ -1790,7 +1790,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>createPriority</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1303">createPriority</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1304">createPriority</a>()</pre>
 </li>
 </ul>
 <a name="requirePermission-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action-">
@@ -1799,7 +1799,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>requirePermission</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1307">requirePermission</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;request,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1308">requirePermission</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;request,
                                  <a href="../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access">Permission.Action</a>&nbsp;perm)
                           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>
@@ -1814,7 +1814,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getHostname</h4>
-<pre>public static&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/RSRpcServices.html#line.1314">getHostname</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&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/RSRpcServices.html#line.1315">getHostname</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                  boolean&nbsp;isMaster)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
 <dl>
@@ -1829,7 +1829,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getScannersCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1330">getScannersCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1331">getScannersCount</a>()</pre>
 </li>
 </ul>
 <a name="getScanner-long-">
@@ -1838,7 +1838,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&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/RSRpcServices.html#line.1335">getScanner</a>(long&nbsp;scannerId)</pre>
+<pre>public&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/RSRpcServices.html#line.1336">getScanner</a>(long&nbsp;scannerId)</pre>
 </li>
 </ul>
 <a name="getScanDetailsWithId-long-">
@@ -1847,7 +1847,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanDetailsWithId</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/RSRpcServices.html#line.1344">getScanDetailsWithId</a>(long&nbsp;scannerId)</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/RSRpcServices.html#line.1345">getScanDetailsWithId</a>(long&nbsp;scannerId)</pre>
 </li>
 </ul>
 <a name="getScannerVirtualTime-long-">
@@ -1856,7 +1856,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getScannerVirtualTime</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1359">getScannerVirtualTime</a>(long&nbsp;scannerId)</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1360">getScannerVirtualTime</a>(long&nbsp;scannerId)</pre>
 <div class="block">Get the vtime associated with the scanner.
  Currently the vtime is the number of "next" calls.</div>
 </li>
@@ -1867,7 +1867,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>addSize</h4>
-<pre><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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1372">addSize</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context,
+<pre><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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1373">addSize</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context,
                <a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;r,
                <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;lastBlock)</pre>
 <div class="block">Method to account for the size of retained cells and retained data blocks.</div>
@@ -1883,7 +1883,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>addScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1406">addScanner</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;scannerName,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1407">addScanner</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;scannerName,
                                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;s,
                                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a>&nbsp;shipper,
                                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
@@ -1901,7 +1901,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegion</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/RSRpcServices.html#line.1434">getRegion</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&nbsp;regionSpecifier)
+<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/RSRpcServices.html#line.1435">getRegion</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&nbsp;regionSpecifier)
                   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">Find the HRegion based on a region specifier</div>
 <dl>
@@ -1921,7 +1921,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegions</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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1447">getRegions</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;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&gt;&nbsp;regionSpecifiers,
+<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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1448">getRegions</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;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&gt;&nbsp;regionSpecifiers,
                                  <a href="../../../../../org/apache/hadoop/hbase/CacheEvictionStatsBuilder.html" title="class in org.apache.hadoop.hbase">CacheEvictionStatsBuilder</a>&nbsp;stats)</pre>
 <div class="block">Find the List of HRegions based on a list of region specifiers</div>
 <dl>
@@ -1941,7 +1941,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getPriority</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1461">getPriority</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1462">getPriority</a>()</pre>
 </li>
 </ul>
 <a name="getConfiguration--">
@@ -1950,7 +1950,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1466">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1467">getConfiguration</a>()</pre>
 </li>
 </ul>
 <a name="getRpcQuotaManager--">
@@ -1959,7 +1959,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcQuotaManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1470">getRpcQuotaManager</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1471">getRpcQuotaManager</a>()</pre>
 </li>
 </ul>
 <a name="getSpaceQuotaManager--">
@@ -1968,7 +1968,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getSpaceQuotaManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1474">getSpaceQuotaManager</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1475">getSpaceQuotaManager</a>()</pre>
 </li>
 </ul>
 <a name="start-org.apache.hadoop.hbase.zookeeper.ZKWatcher-">
@@ -1977,7 +1977,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1478">start</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;zkWatcher)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1479">start</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;zkWatcher)</pre>
 </li>
 </ul>
 <a name="stop--">
@@ -1986,7 +1986,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1486">stop</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1487">stop</a>()</pre>
 </li>
 </ul>
 <a name="checkOpen--">
@@ -1995,7 +1995,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>checkOpen</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1498">checkOpen</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1499">checkOpen</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">Called to verify that this server is up and running.</div>
 <dl>
@@ -2010,7 +2010,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>protected&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;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1522">getServices</a>()</pre>
+<pre>protected&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;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1523">getServices</a>()</pre>
 <div class="block">By default, put up an Admin and a Client Service.
  Set booleans <code>hbase.regionserver.admin.executorService</code> and
  <code>hbase.regionserver.client.executorService</code> if you want to enable/disable services.
@@ -2028,7 +2028,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getSocketAddress</h4>
-<pre>public&nbsp;<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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1542">getSocketAddress</a>()</pre>
+<pre>public&nbsp;<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;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1543">getSocketAddress</a>()</pre>
 </li>
 </ul>
 <a name="getPriority-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-">
@@ -2037,7 +2037,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getPriority</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1547">getPriority</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1548">getPriority</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
                        org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param,
                        <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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html#getPriority-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-">PriorityFunction</a></code></span></div>
@@ -2057,7 +2057,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getDeadline</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1552">getDeadline</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1553">getDeadline</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
                         org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;param)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html#getDeadline-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hbase.thirdparty.com.google.protobuf.Message-">PriorityFunction</a></code></span></div>
 <div class="block">Returns the deadline of the specified request.
@@ -2076,7 +2076,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>checkOOME</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1564">checkOOME</a>(<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;e)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1565">checkOOME</a>(<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;e)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html#checkOOME-java.lang.Throwable-">HBaseRPCErrorHandler</a></code></span></div>
 <div class="block">Take actions on the event of an OutOfMemoryError.</div>
 <dl>
@@ -2095,7 +2095,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>exitIfOOME</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1568">exitIfOOME</a>(<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;e)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1569">exitIfOOME</a>(<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;e)</pre>
 </li>
 </ul>
 <a name="closeRegion-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest-">
@@ -2104,7 +2104,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1597">closeRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1598">closeRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest&nbsp;request)
                                                                                               throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Close a region on the region server.</div>
@@ -2125,7 +2125,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1638">compactRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1639">compactRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request)
                                                                                                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Compact a region on the region server.</div>
@@ -2146,7 +2146,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionSwitch</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactionSwitchResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1677">compactionSwitch</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactionSwitchResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1678">compactionSwitch</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactionSwitchRequest&nbsp;request)
                                                                                                         throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2163,7 +2163,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>flushRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1705">flushRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1706">flushRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest&nbsp;request)
                                                                                               throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Flush a region on the region server.</div>
@@ -2184,7 +2184,7 @@ private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/jav
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1747">getOnlineRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#li

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
index 34f0ddd..f8df7c4 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html
@@ -942,7 +942,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Rea
 <ul class="blockList">
 <li class="blockList">
 <h4>MINOR_VERSION_WITH_CHECKSUM</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1265">MINOR_VERSION_WITH_CHECKSUM</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1268">MINOR_VERSION_WITH_CHECKSUM</a></pre>
 <div class="block">Minor versions in HFile starting with this number have hbase checksums</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -956,7 +956,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Rea
 <ul class="blockList">
 <li class="blockList">
 <h4>MINOR_VERSION_NO_CHECKSUM</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1267">MINOR_VERSION_NO_CHECKSUM</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1270">MINOR_VERSION_NO_CHECKSUM</a></pre>
 <div class="block">In HFile minor version that does not support checksums</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -970,7 +970,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Rea
 <ul class="blockList">
 <li class="blockList">
 <h4>PBUF_TRAILER_MINOR_VERSION</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1270">PBUF_TRAILER_MINOR_VERSION</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1273">PBUF_TRAILER_MINOR_VERSION</a></pre>
 <div class="block">HFile minor version that introduced pbuf filetrailer</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -984,7 +984,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Rea
 <ul class="blockList">
 <li class="blockList">
 <h4>KEY_VALUE_LEN_SIZE</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1276">KEY_VALUE_LEN_SIZE</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1279">KEY_VALUE_LEN_SIZE</a></pre>
 <div class="block">The size of a (key length, value length) tuple that prefixes each entry in
  a data block.</div>
 <dl>
@@ -999,7 +999,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Rea
 <ul class="blockList">
 <li class="blockList">
 <h4>includesMemstoreTS</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1278">includesMemstoreTS</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1281">includesMemstoreTS</a></pre>
 </li>
 </ul>
 <a name="decodeMemstoreTS">
@@ -1008,7 +1008,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Rea
 <ul class="blockListLast">
 <li class="blockList">
 <h4>decodeMemstoreTS</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1279">decodeMemstoreTS</a></pre>
+<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1282">decodeMemstoreTS</a></pre>
 </li>
 </ul>
 </li>
@@ -1169,7 +1169,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getFirstKey</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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.386">getFirstKey</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;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.389">getFirstKey</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getFirstKey--">getFirstKey</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1186,7 +1186,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getFirstRowKey</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/io/hfile/HFileReaderImpl.html#line.401">getFirstRowKey</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/io/hfile/HFileReaderImpl.html#line.404">getFirstRowKey</a>()</pre>
 <div class="block">TODO left from <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> version 1: move this to StoreFile after Ryan's
  patch goes in to eliminate <a href="../../../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase"><code>KeyValue</code></a> here.</div>
 <dl>
@@ -1203,7 +1203,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastRowKey</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/io/hfile/HFileReaderImpl.html#line.413">getLastRowKey</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/io/hfile/HFileReaderImpl.html#line.416">getLastRowKey</a>()</pre>
 <div class="block">TODO left from <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>HFile</code></a> version 1: move this to StoreFile after
  Ryan's patch goes in to eliminate <a href="../../../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase"><code>KeyValue</code></a> here.</div>
 <dl>
@@ -1220,7 +1220,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getEntries</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.420">getEntries</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.423">getEntries</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getEntries--">getEntries</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1235,7 +1235,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <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/io/hfile/HFileReaderImpl.html#line.426">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/io/hfile/HFileReaderImpl.html#line.429">getComparator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getComparator--">getComparator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1250,7 +1250,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompressionAlgorithm</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.432">getCompressionAlgorithm</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/compress/Compression.Algorithm.html" title="enum in org.apache.hadoop.hbase.io.compress">Compression.Algorithm</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.435">getCompressionAlgorithm</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getCompressionAlgorithm--">getCompressionAlgorithm</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1265,7 +1265,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>indexSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.441">indexSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.444">indexSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#indexSize--">indexSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1281,7 +1281,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</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/io/hfile/HFileReaderImpl.html#line.448">getName</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/io/hfile/HFileReaderImpl.html#line.451">getName</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getName--">HFile.Reader</a></code></span></div>
 <div class="block">Returns this reader's "name". Usually the last component of the path.
  Needs to be constant as the file is being moved to support caching on
@@ -1298,7 +1298,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataBlockIndexReader</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexReader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.453">getDataBlockIndexReader</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexReader.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexReader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.456">getDataBlockIndexReader</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getDataBlockIndexReader--">getDataBlockIndexReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1311,7 +1311,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getTrailer</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.html" title="class in org.apache.hadoop.hbase.io.hfile">FixedFileTrailer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.458">getTrailer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.html" title="class in org.apache.hadoop.hbase.io.hfile">FixedFileTrailer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.461">getTrailer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getTrailer--">getTrailer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1324,7 +1324,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>isPrimaryReplicaReader</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.463">isPrimaryReplicaReader</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.466">isPrimaryReplicaReader</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#isPrimaryReplicaReader--">isPrimaryReplicaReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1337,7 +1337,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>loadFileInfo</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.FileInfo.html" title="class in org.apache.hadoop.hbase.io.hfile">HFile.FileInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.468">loadFileInfo</a>()
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.FileInfo.html" title="class in org.apache.hadoop.hbase.io.hfile">HFile.FileInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.471">loadFileInfo</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>
@@ -1353,7 +1353,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getPath</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1245">getPath</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1248">getPath</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getPath--">getPath</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1366,7 +1366,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataBlockEncoding</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1250">getDataBlockEncoding</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1253">getDataBlockEncoding</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getDataBlockEncoding--">getDataBlockEncoding</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1379,7 +1379,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getConf</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1255">getConf</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1258">getConf</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
@@ -1392,7 +1392,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>setConf</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1260">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1263">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>setConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
@@ -1405,7 +1405,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>isDecodeMemStoreTS</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1283">isDecodeMemStoreTS</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1286">isDecodeMemStoreTS</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#isDecodeMemStoreTS--">isDecodeMemStoreTS</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1418,7 +1418,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldIncludeMemStoreTS</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1288">shouldIncludeMemStoreTS</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1291">shouldIncludeMemStoreTS</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#shouldIncludeMemStoreTS--">shouldIncludeMemStoreTS</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1431,7 +1431,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getCachedBlock</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1296">getCachedBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1299">getCachedBlock</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>&nbsp;cacheKey,
                                   boolean&nbsp;cacheBlock,
                                   boolean&nbsp;useLock,
                                   boolean&nbsp;isCompaction,
@@ -1453,7 +1453,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaBlock</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1367">getMetaBlock</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;metaBlockName,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1368">getMetaBlock</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;metaBlockName,
                                boolean&nbsp;cacheBlock)
                         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>
@@ -1475,7 +1475,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>readBlock</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1419">readBlock</a>(long&nbsp;dataBlockOffset,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1418">readBlock</a>(long&nbsp;dataBlockOffset,
                             long&nbsp;onDiskBlockSize,
                             boolean&nbsp;cacheBlock,
                             boolean&nbsp;pread,
@@ -1513,7 +1513,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>hasMVCCInfo</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1514">hasMVCCInfo</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1515">hasMVCCInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#hasMVCCInfo--">hasMVCCInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1526,7 +1526,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>validateBlockType</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1527">validateBlockType</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;block,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1528">validateBlockType</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlock</a>&nbsp;block,
                                <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;expectedBlockType)
                         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">Compares the actual type of a block retrieved from cache or disk with its
@@ -1549,7 +1549,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastKey</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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1550">getLastKey</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;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1551">getLastKey</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getLastKey--">getLastKey</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1566,7 +1566,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>midKey</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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1560">midKey</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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1561">midKey</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>
@@ -1585,7 +1585,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1565">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1566">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>
@@ -1603,7 +1603,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1570">close</a>(boolean&nbsp;evictOnClose)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1571">close</a>(boolean&nbsp;evictOnClose)
            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/io/hfile/HFile.Reader.html#close-boolean-">HFile.Reader</a></code></span></div>
 <div class="block">Close method with optional evictOnClose</div>
@@ -1621,7 +1621,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getEffectiveEncodingInCache</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1583">getEffectiveEncodingInCache</a>(boolean&nbsp;isCompaction)</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/encoding/DataBlockEncoding.html" title="enum in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1585">getEffectiveEncodingInCache</a>(boolean&nbsp;isCompaction)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getEffectiveEncodingInCache-boolean-">getEffectiveEncodingInCache</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFile.Reader</a></code></dd>
@@ -1634,7 +1634,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getUncachedBlockReader</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1589">getUncachedBlockReader</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.FSReader.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileBlock.FSReader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1591">getUncachedBlockReader</a>()</pre>
 <div class="block">For testing</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1648,7 +1648,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getGeneralBloomFilterMetadata</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1747">getGeneralBloomFilterMetadata</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1749">getGeneralBloomFilterMetadata</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">Returns a buffer with the Bloom filter metadata. The caller takes
  ownership of the buffer.</div>
@@ -1666,7 +1666,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getDeleteBloomFilterMetadata</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1752">getDeleteBloomFilterMetadata</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1754">getDeleteBloomFilterMetadata</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/io/hfile/HFile.Reader.html#getDeleteBloomFilterMetadata--">HFile.Reader</a></code></span></div>
 <div class="block">Retrieves delete family Bloom filter metadata as appropriate for each
@@ -1686,7 +1686,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getBloomFilterMetadata</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1756">getBloomFilterMetadata</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1758">getBloomFilterMetadata</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)
                                   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>
@@ -1700,7 +1700,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>isFileInfoLoaded</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1770">isFileInfoLoaded</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1772">isFileInfoLoaded</a>()</pre>
 </li>
 </ul>
 <a name="getFileContext--">
@@ -1709,7 +1709,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileContext</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1775">getFileContext</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1777">getFileContext</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#getFileContext--">HFile.Reader</a></code></span></div>
 <div class="block">Return the file context of the HFile this reader belongs to</div>
 <dl>
@@ -1724,7 +1724,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>prefetchComplete</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1785">prefetchComplete</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1787">prefetchComplete</a>()</pre>
 <div class="block">Returns false if block prefetching was requested for this file and has
  not completed, true otherwise</div>
 <dl>
@@ -1739,7 +1739,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>createHFileContext</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1789">createHFileContext</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html" title="class in org.apache.hadoop.hbase.io">FSDataInputStreamWrapper</a>&nbsp;fsdis,
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1791">createHFileContext</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.html" title="class in org.apache.hadoop.hbase.io">FSDataInputStreamWrapper</a>&nbsp;fsdis,
                                           long&nbsp;fileSize,
                                           <a href="../../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a>&nbsp;hfs,
                                           org.apache.hadoop.fs.Path&nbsp;path,
@@ -1757,7 +1757,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1839">getScanner</a>(boolean&nbsp;cacheBlocks,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1841">getScanner</a>(boolean&nbsp;cacheBlocks,
                                boolean&nbsp;pread)</pre>
 <div class="block">Create a Scanner on this file. No seeks or reads are done on creation. Call
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html#seekTo-org.apache.hadoop.hbase.Cell-"><code>HFileScanner.seekTo(Cell)</code></a> to position an start the read. There is
@@ -1782,7 +1782,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1858">getScanner</a>(boolean&nbsp;cacheBlocks,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileScanner.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileScanner</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1860">getScanner</a>(boolean&nbsp;cacheBlocks,
                                boolean&nbsp;pread,
                                boolean&nbsp;isCompaction)</pre>
 <div class="block">Create a Scanner on this file. No seeks or reads are done on creation. Call
@@ -1808,7 +1808,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockList">
 <li class="blockList">
 <h4>getMajorVersion</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1866">getMajorVersion</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1868">getMajorVersion</a>()</pre>
 </li>
 </ul>
 <a name="unbufferStream--">
@@ -1817,7 +1817,7 @@ public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unbufferStream</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1871">unbufferStream</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.html#line.1873">unbufferStream</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Reader.html#unbufferStream--">HFile.Reader</a></code></span></div>
 <div class="block">To close the stream's socket. Note: This can be concurrently called from multiple threads and
  implementation should take care of thread safety.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
index 3e81c1d..8f0ee6e 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html
@@ -1213,7 +1213,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>newBlock</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.556">newBlock</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.557">newBlock</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">Ready a new block for writing.</div>
 <dl>
@@ -1228,7 +1228,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>appendMetaBlock</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.577">appendMetaBlock</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;metaBlockName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.578">appendMetaBlock</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;metaBlockName,
                             org.apache.hadoop.io.Writable&nbsp;content)</pre>
 <div class="block">Add a meta block to the end of the file. Call before close(). Metadata
  blocks are expensive. Fill one with a bunch of serialized data rather than
@@ -1249,7 +1249,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.593">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.594">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>
@@ -1267,7 +1267,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>addInlineBlockWriter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.675">addInlineBlockWriter</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlockWriter.html" title="interface in org.apache.hadoop.hbase.io.hfile">InlineBlockWriter</a>&nbsp;ibw)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.676">addInlineBlockWriter</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/InlineBlockWriter.html" title="interface in org.apache.hadoop.hbase.io.hfile">InlineBlockWriter</a>&nbsp;ibw)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Writer.html#addInlineBlockWriter-org.apache.hadoop.hbase.io.hfile.InlineBlockWriter-">HFile.Writer</a></code></span></div>
 <div class="block">Adds an inline block writer such as a multi-level block index writer or
  a compound Bloom filter writer.</div>
@@ -1283,7 +1283,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>addGeneralBloomFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.680">addGeneralBloomFilter</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/BloomFilterWriter.html" title="interface in org.apache.hadoop.hbase.util">BloomFilterWriter</a>&nbsp;bfw)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.681">addGeneralBloomFilter</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/BloomFilterWriter.html" title="interface in org.apache.hadoop.hbase.util">BloomFilterWriter</a>&nbsp;bfw)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Writer.html#addGeneralBloomFilter-org.apache.hadoop.hbase.util.BloomFilterWriter-">HFile.Writer</a></code></span></div>
 <div class="block">Store general Bloom filter in the file. This does not deal with Bloom filter
  internals but is necessary, since Bloom filters are stored differently
@@ -1300,7 +1300,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>addDeleteFamilyBloomFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.685">addDeleteFamilyBloomFilter</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/BloomFilterWriter.html" title="interface in org.apache.hadoop.hbase.util">BloomFilterWriter</a>&nbsp;bfw)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.686">addDeleteFamilyBloomFilter</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/BloomFilterWriter.html" title="interface in org.apache.hadoop.hbase.util">BloomFilterWriter</a>&nbsp;bfw)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Writer.html#addDeleteFamilyBloomFilter-org.apache.hadoop.hbase.util.BloomFilterWriter-">HFile.Writer</a></code></span></div>
 <div class="block">Store delete family Bloom filter in the file, which is only supported in
  HFile V2.</div>
@@ -1316,7 +1316,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>addBloomFilter</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.689">addBloomFilter</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/BloomFilterWriter.html" title="interface in org.apache.hadoop.hbase.util">BloomFilterWriter</a>&nbsp;bfw,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.690">addBloomFilter</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/BloomFilterWriter.html" title="interface in org.apache.hadoop.hbase.util">BloomFilterWriter</a>&nbsp;bfw,
                             <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
 </li>
 </ul>
@@ -1326,7 +1326,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileContext</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.716">getFileContext</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileContext.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileContext</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.717">getFileContext</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Writer.html#getFileContext--">HFile.Writer</a></code></span></div>
 <div class="block">Return the file context for the HFile this writer belongs to</div>
 <dl>
@@ -1341,7 +1341,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.729">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.730">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
             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">Add key/value to file. Keys must be added in an order that agrees with the
  Comparator passed on construction.</div>
@@ -1361,7 +1361,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeShipped</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.763">beforeShipped</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.764">beforeShipped</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/ShipperListener.html#beforeShipped--">ShipperListener</a></code></span></div>
 <div class="block">The action that needs to be performed before <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--"><code>Shipper.shipped()</code></a> is performed</div>
@@ -1379,7 +1379,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>finishFileInfo</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.776">finishFileInfo</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.777">finishFileInfo</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>
@@ -1393,7 +1393,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>getMajorVersion</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.805">getMajorVersion</a>()</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.806">getMajorVersion</a>()</pre>
 </li>
 </ul>
 <a name="getMinorVersion--">
@@ -1402,7 +1402,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockList">
 <li class="blockList">
 <h4>getMinorVersion</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.809">getMinorVersion</a>()</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.810">getMinorVersion</a>()</pre>
 </li>
 </ul>
 <a name="finishClose-org.apache.hadoop.hbase.io.hfile.FixedFileTrailer-">
@@ -1411,7 +1411,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFile.Wri
 <ul class="blockListLast">
 <li class="blockList">
 <h4>finishClose</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.813">finishClose</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.html" title="class in org.apache.hadoop.hbase.io.hfile">FixedFileTrailer</a>&nbsp;trailer)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/HFileWriterImpl.html#line.814">finishClose</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.html" title="class in org.apache.hadoop.hbase.io.hfile">FixedFileTrailer</a>&nbsp;trailer)
                     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/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/InclusiveCombinedBlockCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/InclusiveCombinedBlockCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/InclusiveCombinedBlockCache.html
index 1e5b6e4..7c4ddac 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/InclusiveCombinedBlockCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/InclusiveCombinedBlockCache.html
@@ -216,7 +216,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBloc
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">CombinedBlockCache</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#cacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">cacheBlock</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#evictBlocksByHfileName-java.lang.String-">evictBlocksByHfileName</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getBlockCaches--">getBlockCaches</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getBlockCount--">getBlockCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getCurrentDataSize--">getCurrentDataSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getCurrentSize--">getCurrentSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getDataBlockCount--">getDataBlockCount</a>, <a href="../
 ../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getFreeSize--">getFreeSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getMaxSize--">getMaxSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getRefCount-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">getRefCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getStats--">getStats</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#heapSize--">heapSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#iterator--">iterator</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">returnBlock</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.htm
 l#setMaxSize-long-">setMaxSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#shutdown--">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#size--">size</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#cacheBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbase.io.hfile.Cacheable-">cacheBlock</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#evictBlocksByHfileName-java.lang.String-">evictBlocksByHfileName</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getBlockCaches--">getBlockCaches</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getBlockCount--">getBlockCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getCurrentDataSize--">getCurrentDataSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getCurrentSize--">getCurrentSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getDataBlockCount--">getDataBlockCount</a>, <a href="../
 ../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getFreeSize--">getFreeSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getMaxSize--">getMaxSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getOnHeapCache--">getOnHeapCache</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getRefCount-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-">getRefCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#getStats--">getStats</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#heapSize--">heapSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#iterator--">iterator</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#returnBlock-org.apache.hadoop.hbase.io.hfile.BlockCacheKey-org.apache.hadoop.hbas
 e.io.hfile.Cacheable-">returnBlock</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#setMaxSize-long-">setMaxSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#shutdown--">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CombinedBlockCache.html#size--">size</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/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.html
index 82dac25..5499d3e 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/bucket/class-use/BucketCache.html
@@ -113,8 +113,8 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) static <a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></code></td>
-<td class="colLast"><span class="typeNameLabel">CacheConfig.</span><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#getBucketCache-org.apache.hadoop.conf.Configuration-">getBucketCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
+<td class="colFirst"><code>private static <a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a></code></td>
+<td class="colLast"><span class="typeNameLabel">BlockCacheFactory.</span><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html#createBucketCache-org.apache.hadoop.conf.Configuration-">createBucketCache</a></span>(org.apache.hadoop.conf.Configuration&nbsp;c)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
index 84c4071..e7b6097 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1184">RSRpcServices.LogDelegate</a></pre>
+<pre>static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1185">RSRpcServices.LogDelegate</a></pre>
 </li>
 </ul>
 </div>
@@ -151,7 +151,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>logBatchWarning</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html#line.1185">logBatchWarning</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;firstRegionName,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html#line.1186">logBatchWarning</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;firstRegionName,
                      int&nbsp;sum,
                      int&nbsp;rowSizeWarnThreshold)</pre>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
index 5d0e72a..9e736dc 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.365">RSRpcServices.RegionScannerCloseCallBack</a>
+<pre>private static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.366">RSRpcServices.RegionScannerCloseCallBack</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/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a></pre>
 <div class="block">An Rpc callback for closing a RegionScanner.</div>
@@ -209,7 +209,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>scanner</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html#line.367">scanner</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html#line.368">scanner</a></pre>
 </li>
 </ul>
 </li>
@@ -226,7 +226,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionScannerCloseCallBack</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html#line.369">RegionScannerCloseCallBack</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;scanner)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html#line.370">RegionScannerCloseCallBack</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;scanner)</pre>
 </li>
 </ul>
 </li>
@@ -243,7 +243,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html#line.374">run</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html#line.375">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/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
index 70b0bd0..69d484d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.431">RSRpcServices.RegionScannerHolder</a>
+<pre>private static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.432">RSRpcServices.RegionScannerHolder</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">Holder class which holds the RegionScanner, nextCallSeq and RpcCallbacks together.</div>
 </li>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>nextCallSeq</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/regionserver/RSRpcServices.RegionScannerHolder.html#line.433">nextCallSeq</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/regionserver/RSRpcServices.RegionScannerHolder.html#line.434">nextCallSeq</a></pre>
 </li>
 </ul>
 <a name="scannerName">
@@ -248,7 +248,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerName</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/RSRpcServices.RegionScannerHolder.html#line.434">scannerName</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/RSRpcServices.RegionScannerHolder.html#line.435">scannerName</a></pre>
 </li>
 </ul>
 <a name="s">
@@ -257,7 +257,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>s</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.435">s</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.436">s</a></pre>
 </li>
 </ul>
 <a name="r">
@@ -266,7 +266,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>r</h4>
-<pre>private 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/RSRpcServices.RegionScannerHolder.html#line.436">r</a></pre>
+<pre>private 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/RSRpcServices.RegionScannerHolder.html#line.437">r</a></pre>
 </li>
 </ul>
 <a name="closeCallBack">
@@ -275,7 +275,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>closeCallBack</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.437">closeCallBack</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.438">closeCallBack</a></pre>
 </li>
 </ul>
 <a name="shippedCallback">
@@ -284,7 +284,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shippedCallback</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.438">shippedCallback</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.439">shippedCallback</a></pre>
 </li>
 </ul>
 <a name="rowOfLastPartialResult">
@@ -293,7 +293,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>rowOfLastPartialResult</h4>
-<pre>private&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.439">rowOfLastPartialResult</a></pre>
+<pre>private&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.440">rowOfLastPartialResult</a></pre>
 </li>
 </ul>
 <a name="needCursor">
@@ -302,7 +302,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>needCursor</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.440">needCursor</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.441">needCursor</a></pre>
 </li>
 </ul>
 </li>
@@ -319,7 +319,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionScannerHolder</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.442">RegionScannerHolder</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;scannerName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.443">RegionScannerHolder</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;scannerName,
                            <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;s,
                            <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
                            <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a>&nbsp;closeCallBack,
@@ -341,7 +341,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNextCallSeq</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.452">getNextCallSeq</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.453">getNextCallSeq</a>()</pre>
 </li>
 </ul>
 <a name="incNextCallSeq-long-">
@@ -350,7 +350,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>incNextCallSeq</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.456">incNextCallSeq</a>(long&nbsp;currentSeq)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html#line.457">incNextCallSeq</a>(long&nbsp;currentSeq)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
index fac0e72..e6fe4db 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.382">RSRpcServices.RegionScannerShippedCallBack</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.383">RSRpcServices.RegionScannerShippedCallBack</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/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a></pre>
 <div class="block">An Rpc callback for doing shipped() call on a RegionScanner.</div>
@@ -219,7 +219,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerName</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/RSRpcServices.RegionScannerShippedCallBack.html#line.384">scannerName</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/RSRpcServices.RegionScannerShippedCallBack.html#line.385">scannerName</a></pre>
 </li>
 </ul>
 <a name="shipper">
@@ -228,7 +228,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>shipper</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.385">shipper</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.386">shipper</a></pre>
 </li>
 </ul>
 <a name="lease">
@@ -237,7 +237,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lease</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.386">lease</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.387">lease</a></pre>
 </li>
 </ul>
 </li>
@@ -254,7 +254,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionScannerShippedCallBack</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.388">RegionScannerShippedCallBack</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;scannerName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.389">RegionScannerShippedCallBack</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;scannerName,
                                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a>&nbsp;shipper,
                                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a>&nbsp;lease)</pre>
 </li>
@@ -273,7 +273,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.395">run</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html#line.396">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/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
index 7080be8..4506356 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.409">RSRpcServices.RegionScannersCloseCallBack</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.410">RSRpcServices.RegionScannersCloseCallBack</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/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a></pre>
 <div class="block">An RpcCallBack that creates a list of scanners that needs to perform callBack operation on
@@ -214,7 +214,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>scanners</h4>
-<pre>private 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/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.410">scanners</a></pre>
+<pre>private 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/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.411">scanners</a></pre>
 </li>
 </ul>
 </li>
@@ -231,7 +231,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionScannersCloseCallBack</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.409">RegionScannersCloseCallBack</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.410">RegionScannersCloseCallBack</a>()</pre>
 </li>
 </ul>
 </li>
@@ -248,7 +248,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>addScanner</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.412">addScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;scanner)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.413">addScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;scanner)</pre>
 </li>
 </ul>
 <a name="run--">
@@ -257,7 +257,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.417">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html#line.418">run</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>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
index 459ba75..68b2325 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.466">RSRpcServices.ScannerListener</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.467">RSRpcServices.ScannerListener</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/LeaseListener.html" title="interface in org.apache.hadoop.hbase.regionserver">LeaseListener</a></pre>
 <div class="block">Instantiated as a scanner lease. If the lease times out, the scanner is
@@ -210,7 +210,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/LeaseLis
 <ul class="blockListLast">
 <li class="blockList">
 <h4>scannerName</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/RSRpcServices.ScannerListener.html#line.467">scannerName</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/RSRpcServices.ScannerListener.html#line.468">scannerName</a></pre>
 </li>
 </ul>
 </li>
@@ -227,7 +227,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/LeaseLis
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ScannerListener</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html#line.469">ScannerListener</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;n)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html#line.470">ScannerListener</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;n)</pre>
 </li>
 </ul>
 </li>
@@ -244,7 +244,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/LeaseLis
 <ul class="blockListLast">
 <li class="blockList">
 <h4>leaseExpired</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html#line.474">leaseExpired</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html#line.475">leaseExpired</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/LeaseListener.html#leaseExpired--">LeaseListener</a></code></span></div>
 <div class="block">When a lease expires, this method is called.</div>
 <dl>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/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 6e007de..e258dca 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.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":9,"i43":9,"i44":9,"i45":9,"i46":9,"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":9,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":9,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10
 ,"i110":9,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":41,"i118":41,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":9,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":42,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10,"i174":10,"i175":10,"i176":10,"i177":9,"i178":10,"i179":10,"i180":10,"i181":10,"i182":10,"i183":10,"i184":10,"i185":10,"i186":9,"i187":10,"i188":10,"i189":9,"i190":9,"i191":9,"i192":9,"i193":9,"i194":9,"i195":9,"i196":9,"i197":9,"i198":9,"i199":10,"i200":10,"i201":10,"i202":10,"i203":10,"i204":10,"i205":10,"i206":10,"i207":10,"i208":9,"i209":10,"i210":10,"
 i211":10,"i212":10,"i213":10,"i214":10,"i215":10,"i216":10,"i217":10,"i218":10,"i219":10,"i220":10,"i221":10,"i222":10,"i223":10,"i224":10,"i225":10,"i226":10,"i227":10,"i228":10,"i229":10,"i230":10,"i231":10,"i232":10,"i233":10,"i234":10,"i235":10,"i236":10,"i237":10,"i238":10,"i239":10,"i240":9,"i241":9,"i242":10,"i243":10,"i244":10,"i245":10,"i246":10,"i247":10,"i248":10,"i249":10,"i250":10,"i251":10,"i252":10,"i253":10,"i254":9,"i255":10,"i256":10,"i257":10,"i258":10,"i259":10,"i260":10,"i261":10,"i262":9,"i263":10,"i264":10,"i265":10,"i266":10,"i267":10,"i268":9,"i269":10,"i270":10,"i271":10,"i272":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":9,"i43":9,"i44":9,"i45":9,"i46":9,"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":9,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":9,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10
 ,"i110":10,"i111":10,"i112":9,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":41,"i120":41,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":9,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":42,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10,"i174":10,"i175":10,"i176":10,"i177":10,"i178":10,"i179":9,"i180":10,"i181":10,"i182":10,"i183":10,"i184":10,"i185":10,"i186":10,"i187":10,"i188":9,"i189":10,"i190":10,"i191":9,"i192":9,"i193":9,"i194":9,"i195":9,"i196":9,"i197":9,"i198":9,"i199":9,"i200":9,"i201":10,"i202":10,"i203":10,"i204":10,"i205":10,"i206":10,"i207":10,"i208":10,"i209":10,"i210":9,"
 i211":10,"i212":10,"i213":10,"i214":10,"i215":10,"i216":10,"i217":10,"i218":10,"i219":10,"i220":10,"i221":10,"i222":10,"i223":10,"i224":10,"i225":10,"i226":10,"i227":10,"i228":10,"i229":10,"i230":10,"i231":10,"i232":10,"i233":10,"i234":10,"i235":10,"i236":10,"i237":10,"i238":10,"i239":10,"i240":10,"i241":10,"i242":9,"i243":9,"i244":10,"i245":10,"i246":10,"i247":10,"i248":10,"i249":10,"i250":10,"i251":10,"i252":10,"i253":10,"i254":10,"i255":10,"i256":10,"i257":10,"i258":9,"i259":10,"i260":10,"i261":10,"i262":10,"i263":10,"i264":10,"i265":10,"i266":9,"i267":10,"i268":10,"i269":10,"i270":10,"i271":10,"i272":9,"i273":10,"i274":10,"i275":10,"i276":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.227">HRegion</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.229">HRegion</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/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">PropagatingConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></pre>
 <div class="block">Regions store data for a certain region of a table.  It stores all columns
@@ -245,287 +245,295 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#baseConf">baseConf</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#blockCache">blockCache</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#blockedRequestsCount">blockedRequestsCount</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/regionserver/HRegion.html#blockingMemStoreSize">blockingMemStoreSize</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<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/HRegion.html#busyWaitDuration">busyWaitDuration</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#checkAndMutateChecksFailed">checkAndMutateChecksFailed</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#checkAndMutateChecksPassed">checkAndMutateChecksPassed</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <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></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#closed">closed</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/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#closeLock">closeLock</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <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></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#closing">closing</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#compactionNumBytesCompacted">compactionNumBytesCompacted</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#compactionNumFilesCompacted">compactionNumFilesCompacted</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#compactionsFailed">compactionsFailed</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#compactionsFinished">compactionsFinished</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#compactionsQueued">compactionsQueued</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#conf">conf</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/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#configurationManager">configurationManager</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#coprocessorHost">coprocessorHost</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/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/String.html?is-external=true" title="class or interface in java.lang">String</a>,com.google.protobuf.Service&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#coprocessorServiceHandlers">coprocessorServiceHandlers</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#cpRequestsCount">cpRequestsCount</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#dataInMemoryWithoutWAL">dataInMemoryWithoutWAL</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/regionserver/HRegion.html#DEEP_OVERHEAD">DEEP_OVERHEAD</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_BUSY_WAIT_DURATION">DEFAULT_BUSY_WAIT_DURATION</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_CACHE_FLUSH_INTERVAL">DEFAULT_CACHE_FLUSH_INTERVAL</a></span></code>
 <div class="block">Default interval for the memstore flush</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_DURABILITY">DEFAULT_DURABILITY</a></span></code>
 <div class="block">This is the global default value for durability.</div>
 </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/regionserver/HRegion.html#DEFAULT_FLUSH_PER_CHANGES">DEFAULT_FLUSH_PER_CHANGES</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_HBASE_REGIONSERVER_MINIBATCH_SIZE">DEFAULT_HBASE_REGIONSERVER_MINIBATCH_SIZE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_MAX_CELL_SIZE">DEFAULT_MAX_CELL_SIZE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_ROW_PROCESSOR_TIMEOUT">DEFAULT_ROW_PROCESSOR_TIMEOUT</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_ROWLOCK_WAIT_DURATION">DEFAULT_ROWLOCK_WAIT_DURATION</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#DEFAULT_WAL_HSYNC">DEFAULT_WAL_HSYNC</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/regionserver/HRegion.html#explicitSplitPoint">explicitSplitPoint</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#filteredReadRequestsCount">filteredReadRequestsCount</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/regionserver/HRegion.html#FIXED_OVERHEAD">FIXED_OVERHEAD</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/regionserver/HRegion.html#flushCheckInterval">flushCheckInterval</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html?is-external=true" title="class or interface in java.util.concurrent.atomic">LongAdder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#flushesQueued">flushesQueued</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/regionserver/HRegion.html#flushPerChanges">flushPerChanges</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">FlushPolicy</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#flushPolicy">flushPolicy</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#FOR_UNIT_TESTS_ONLY">FOR_UNIT_TESTS_ONLY</a></span></code>
 <div class="block">Row needed by below method.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#fs">fs</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/HRegion.html#HBASE_MAX_CELL_SIZE_KEY">HBASE_MAX_CELL_SIZE_KEY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<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/HRegion.html#HBASE_REGIONSERVER_MINIBATCH_SIZE">HBASE_REGIONSERVER_MINIBATCH_SIZE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#htableDescriptor">htableDescriptor</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/regionserver/HRegion.html#isLoadingCfsOnDemandDefault">isLoadingCfsOnDemandDefault</a></span></code>
 <div class="block">The default setting for whether to enable on-demand CF loading for
  scan requests to this region.</div>
 </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/regionserver/HRegion.html#lastFlushOpSeqId">lastFlushOpSeqId</a></span></code>
 <div class="block">Record the sequence id of last flush operation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#lastReplayedCompactionSeqId">lastReplayedCompactionSeqId</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#lastReplayedOpenRegionSeqId">lastReplayedOpenRegionSeqId</a></span></code>
 <div class="block">The sequence id of the last replayed open region event from the primary region.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <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="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>,<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/regionserver/HRegion.html#lastStoreFlushTimeMap">lastStoreFlushTimeMap</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/HRegion.html#LOAD_CFS_ON_DEMAND_CONFIG_KEY">LOAD_CFS_ON_DEMAND_CONFIG_KEY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#lock">lock</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/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;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#lockedRows">lockedRows</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#LOG">LOG</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/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#majorInProgress">majorInProgress</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/regionserver/HRegion.html#MAX_FLUSH_PER_CHANGES">MAX_FLUSH_PER_CHANGES</a></span></code>
 <div class="block">The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes
  overhead.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<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/HRegion.html#maxBusyWaitDuration">maxBusyWaitDuration</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#maxBusyWaitMultiplier">maxBusyWaitMultiplier</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<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/HRegion.html#maxCellSize">maxCellSize</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/regionserver/HRegion.html#maxFlushedSeqId">maxFlushedSeqId</a></span></code>
 <div class="block">The max sequence id of flushed data on this region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <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;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#maxSeqIdInStores">maxSeqIdInStores</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<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/HRegion.html#MEMSTORE_FLUSH_PER_CHANGES">MEMSTORE_FLUSH_PER_CHANGES</a></span></code>
 <div class="block">Conf key to force a flush if there are already enough changes for one region in memstore</div>
 </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/HRegion.html#MEMSTORE_PERIODIC_FLUSH_INTERVAL">MEMSTORE_PERIODIC_FLUSH_INTERVAL</a></span></code>
 <div class="block">Conf key for the periodic flush interval</div>
 </td>
 </tr>
-<tr class="altColor">
+<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/HRegion.html#memstoreFlushSize">memstoreFlushSize</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#memStoreSizing">memStoreSizing</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#metricsRegion">metricsRegion</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapperImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#metricsRegionWrapper">metricsRegionWrapper</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/regionserver/HRegion.html#miniBatchSize">miniBatchSize</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/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#minorInProgress">minorInProgress</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#mobFileCache">mobFileCache</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private static <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;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#MOCKED_LIST">MOCKED_LIST</a></span></code>
@@ -1235,164 +1243,172 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 </td>
 </tr>
 <tr id="i80" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getBlockCache--">getBlockCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getBlockedRequestsCount--">getBlockedRequestsCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getCellComparator--">getCellComparator</a></span>()</code>
 <div class="block">The comparator to be used with the region</div>
 </td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getCheckAndMutateChecksFailed--">getCheckAndMutateChecksFailed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getCheckAndMutateChecksPassed--">getCheckAndMutateChecksPassed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getCompactionState--">getCompactionState</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getCompactPriority--">getCompactPriority</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getCoprocessorHost--">getCoprocessorHost</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getCpRequestsCount--">getCpRequestsCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getDataInMemoryWithoutWAL--">getDataInMemoryWithoutWAL</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getEarliestFlushTimeForAllStores--">getEarliestFlushTimeForAllStores</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getEffectiveDurability-org.apache.hadoop.hbase.client.Durability-">getEffectiveDurability</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</code>
 <div class="block">Returns effective durability from the passed durability and
  the table descriptor.</div>
 </td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code>(package private) byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getExplicitSplitPoint--">getExplicitSplitPoint</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.fs.FileSystem</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getFilesystem--">getFilesystem</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getFilteredReadRequestsCount--">getFilteredReadRequestsCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getHDFSBlocksDistribution--">getHDFSBlocksDistribution</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionLoadStats</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getLoadStatistics--">getLoadStatistics</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code><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;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getLockedRows--">getLockedRows</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code>private static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getLongValue-org.apache.hadoop.hbase.Cell-">getLongValue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMaxFlushedSeqId--">getMaxFlushedSeqId</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code><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;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMaxStoreSeqId--">getMaxStoreSeqId</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMemStoreDataSize--">getMemStoreDataSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMemStoreFlushSize--">getMemStoreFlushSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMemStoreHeapSize--">getMemStoreHeapSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMemStoreOffHeapSize--">getMemStoreOffHeapSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMetrics--">getMetrics</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMobFileCache--">getMobFileCache</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getMVCC--">getMVCC</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getNextSequenceId-org.apache.hadoop.hbase.wal.WAL-">getNextSequenceId</a></span>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal)</code>
 <div class="block">Method to safely get the next sequence number.</div>
 </td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getNumMutationsWithoutWAL--">getNumMutationsWithoutWAL</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getOldestHfileTs-boolean-">getOldestHfileTs</a></span>(boolean&nbsp;majorCompactionOnly)</code>
 <div class="block">This can be used to determine the last time all files of this region were major compacted.</div>
 </td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getOldestSeqIdOfStore-byte:A-">getOldestSeqIdOfStore</a></span>(byte[]&nbsp;familyName)</code>&nbsp;</td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getOpenAndCloseThreadPool-int-java.lang.String-">getOpenAndCloseThreadPool</a></span>(int&nbsp;maxThreads,
                          <a href="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;threadNamePrefix)</code>&nbsp;</td>
 </tr>
-<tr id="i111" class="rowColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getOpenSeqNum--">getOpenSeqNum</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getPrepareFlushResult--">getPrepareFlushResult</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getReadLockCount--">getReadLockCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getReadPoint--">getReadPoint</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getReadPoint-org.apache.hadoop.hbase.client.IsolationLevel-">getReadPoint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolationLevel)</code>&nbsp;</td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getReadRequestsCount--">getReadRequestsCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code>static org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRegionDir-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.client.RegionInfo-">getRegionDir</a></span>(org.apache.hadoop.fs.Path&nbsp;rootdir,
             <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info)</code>
@@ -1401,7 +1417,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 </div>
 </td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code>static org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRegionDir-org.apache.hadoop.fs.Path-java.lang.String-">getRegionDir</a></span>(org.apache.hadoop.fs.Path&nbsp;tabledir,
             <a href="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)</code>
@@ -1410,57 +1426,57 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 </div>
 </td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i121" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRegionFileSystem--">getRegionFileSystem</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRegionInfo--">getRegionInfo</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRegionServerServices--">getRegionServerServices</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRegionServicesForStores--">getRegionServicesForStores</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i125" class="rowColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRegionWALFileSystem--">getRegionWALFileSystem</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i126" class="altColor">
 <td class="colFirst"><code><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/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getReplicationScope--">getReplicationScope</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRowLock-byte:A-">getRowLock</a></span>(byte[]&nbsp;row)</code>
 <div class="block">Get an exclusive ( write lock ) lock on a given row.</div>
 </td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRowLock-byte:A-boolean-">getRowLock</a></span>(byte[]&nbsp;row,
           boolean&nbsp;readLock)</code>
 <div class="block">Get a row lock for the specified row.</div>
 </td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i129" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getRowLockInternal-byte:A-boolean-org.apache.hadoop.hbase.regionserver.Region.RowLock-">getRowLockInternal</a></span>(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)</code>&nbsp;</td>
 </tr>
-<tr id="i128" class="altColor">
+<tr id="i130" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getScanner-org.apache.hadoop.hbase.client.Scan-">getScanner</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Return an iterator that scans over the HRegion, returning the indicated
  columns and rows specified by the <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a>.</div>
 </td>
 </tr>
-<tr id="i129" class="rowColor">
+<tr id="i131" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-">getScanner</a></span>(<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)</code>
@@ -1468,128 +1484,128 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
  specified by the <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a>.</div>
 </td>
 </tr>
-<tr id="i130" class="altColor">
+<tr id="i132" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-long-long-">getScanner</a></span>(<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)</code>&nbsp;</td>
 </tr>
-<tr id="i131" class="rowColor">
+<tr id="i133" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getSmallestReadPoint--">getSmallestReadPoint</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i132" class="altColor">
+<tr id="i134" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getSplitPolicy--">getSplitPolicy</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i133" class="rowColor">
+<tr id="i135" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getStore-byte:A-">getStore</a></span>(byte[]&nbsp;column)</code>
 <div class="block">Return the Store for the given family</div>
 </td>
 </tr>
-<tr id="i134" class="altColor">
+<tr id="i136" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getStore-org.apache.hadoop.hbase.Cell-">getStore</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
 <div class="block">Return HStore instance.</div>
 </td>
 </tr>
-<tr id="i135" class="rowColor">
+<tr id="i137" 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="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;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getStoreFileList-byte:A:A-">getStoreFileList</a></span>(byte[][]&nbsp;columns)</code>&nbsp;</td>
 </tr>
-<tr id="i136" class="altColor">
+<tr id="i138" class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getStoreFileOpenAndCloseThreadPool-java.lang.String-">getStoreFileOpenAndCloseThreadPool</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;threadNamePrefix)</code>&nbsp;</td>
 </tr>
-<tr id="i137" class="rowColor">
+<tr id="i139" class="rowColor">
 <td class="colFirst"><code>private <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;org.apache.hadoop.fs.Path&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getStoreFiles--">getStoreFiles</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i138" class="altColor">
+<tr id="i140" class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getStoreOpenAndCloseThreadPool-java.lang.String-">getStoreOpenAndCloseThreadPool</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;threadNamePrefix)</code>&nbsp;</td>
 </tr>
-<tr id="i139" class="rowColor">
+<tr id="i141" 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/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getStores--">getStores</a></span>()</code>
 <div class="block">Return the list of Stores managed by this region</div>
 </td>
 </tr>
-<tr id="i140" class="altColor">
+<tr id="i142" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getTableDescriptor--">getTableDescriptor</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i141" class="rowColor">
+<tr id="i143" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getWAL--">getWAL</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i142" class="altColor">
+<tr id="i144" class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.fs.FileSystem</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getWalFileSystem--">getWalFileSystem</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i143" class="rowColor">
+<tr id="i145" class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getWALRegionDir--">getWALRegionDir</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i144" class="altColor">
+<tr id="i146" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#getWriteRequestsCount--">getWriteRequestsCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i145" class="rowColor">
+<tr id="i147" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i146" class="altColor">
+<tr id="i148" class="altColor">
 <td class="colFirst"><code>private static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#hasMultipleColumnFamilies-java.util.Collection-">hasMultipleColumnFamilies</a></span>(<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)</code>
 <div class="block">Determines whether multiple column families are present
  Precondition: familyPaths is not null</div>
 </td>
 </tr>
-<tr id="i147" class="rowColor">
+<tr id="i149" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#hasReferences--">hasReferences</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i148" class="altColor">
+<tr id="i150" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#heapSize--">heapSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i149" class="rowColor">
+<tr id="i151" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#incMemStoreSize-long-long-long-">incMemStoreSize</a></span>(long&nbsp;dataSizeDelta,
                long&nbsp;heapSizeDelta,
                long&nbsp;offHeapSizeDelta)</code>&nbsp;</td>
 </tr>
-<tr id="i150" class="altColor">
+<tr id="i152" 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/HRegion.html#incMemStoreSize-org.apache.hadoop.hbase.regionserver.MemStoreSize-">incMemStoreSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;mss)</code>
 <div class="block">Increase the size of mem store in this region and the size of global mem
  store</div>
 </td>
 </tr>
-<tr id="i151" class="rowColor">
+<tr id="i153" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#increment-org.apache.hadoop.hbase.client.Increment-">increment</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Perform one or more increment operations on a row.</div>
 </td>
 </tr>
-<tr id="i152" class="altColor">
+<tr id="i154" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#increment-org.apache.hadoop.hbase.client.Increment-long-long-">increment</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;mutation,
          long&nbsp;nonceGroup,
          long&nbsp;nonce)</code>&nbsp;</td>
 </tr>
-<tr id="i153" class="rowColor">
+<tr id="i155" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#incrementCompactionsQueuedCount--">incrementCompactionsQueuedCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i154" class="altColor">
+<tr id="i156" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#incrementFlushesQueuedCount--">incrementFlushesQueuedCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i155" class="rowColor">
+<tr id="i157" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#initialize--">initialize</a></span>()</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -1597,45 +1613,45 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 </div>
 </td>
 </tr>
-<tr id="i156" class="altColor">
+<tr id="i158" 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/HRegion.html#initialize-org.apache.hadoop.hbase.util.CancelableProgressable-">initialize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter)</code>
 <div class="block">Initialize this region.</div>
 </td>
 </tr>
-<tr id="i157" class="rowColor">
+<tr id="i159" class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#initializeRegionInternals-org.apache.hadoop.hbase.util.CancelableProgressable-org.apache.hadoop.hbase.monitoring.MonitoredTask-">initializeRegionInternals</a></span>(<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)</code>&nbsp;</td>
 </tr>
-<tr id="i158" class="altColor">
+<tr id="i160" class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#initializeStores-org.apache.hadoop.hbase.util.CancelableProgressable-org.apache.hadoop.hbase.monitoring.MonitoredTask-">initializeStores</a></span>(<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)</code>
 <div class="block">Open all Stores.</div>
 </td>
 </tr>
-<tr id="i159" class="rowColor">
+<tr id="i161" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#initializeWarmup-org.apache.hadoop.hbase.util.CancelableProgressable-">initializeWarmup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter)</code>&nbsp;</td>
 </tr>
-<tr id="i160" class="altColor">
+<tr id="i162" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#instantiateHStore-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">instantiateHStore</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>&nbsp;</td>
 </tr>
-<tr id="i161" class="rowColor">
+<tr id="i163" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#instantiateRegionScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-">instantiateRegionScanner</a></span>(<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)</code>&nbsp;</td>
 </tr>
-<tr id="i162" class="altColor">
+<tr id="i164" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RegionScannerImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#instantiateRegionScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-long-long-">instantiateRegionScanner</a></span>(<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)</code>&nbsp;</td>
 </tr>
-<tr id="i163" class="rowColor">
+<tr id="i165" class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#internalFlushcache-java.util.Collection-org.apache.hadoop.hbase.monitoring.MonitoredTask-boolean-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">internalFlushcache</a></span>(<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/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush,
                   <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
@@ -1644,13 +1660,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <div class="block">Flushing given stores.</div>
 </td>
 </tr>
-<tr id="i164" class="altColor">
+<tr id="i166" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">HRegion.FlushResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#internalFlushcache-org.apache.hadoop.hbase.monitoring.MonitoredTask-">internalFlushcache</a></span>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)</code>
 <div class="block">Flushing all stores.</div>
 </td>
 </tr>
-<tr id="i165" class="rowColor">
+<tr id="i167" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#internalFlushcache-org.apache.hadoop.hbase.wal.WAL-long-java.util.Collection-org.apache.hadoop.hbase.monitoring.MonitoredTask-boolean-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">internalFlushcache</a></span>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                   long&nbsp;myseqid,
@@ -1661,14 +1677,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <div class="block">Flush the memstore.</div>
 </td>
 </tr>
-<tr id="i166" class="altColor">
+<tr id="i168" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.FlushResultImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#internalFlushCacheAndCommit-org.apache.hadoop.hbase.wal.WAL-org.apache.hadoop.hbase.monitoring.MonitoredTask-org.apache.hadoop.hbase.regionserver.HRegion.PrepareFlushResult-java.util.Collection-">internalFlushCacheAndCommit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                            <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
                            <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;prepareResult,
                            <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/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;storesToFlush)</code>&nbsp;</td>
 </tr>
-<tr id="i167" class="rowColor">
+<tr id="i169" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#internalPrepareFlushCache-org.apache.hadoop.hbase.wal.WAL-long-java.util.Collection-org.apache.hadoop.hbase.monitoring.MonitoredTask-boolean-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">internalPrepareFlushCache</a></span>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                          long&nbsp;myseqid,
@@ -1677,86 +1693,86 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
                          boolean&nbsp;writeFlushWalMarker,
                          <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)</code>&nbsp;</td>
 </tr>
-<tr id="i168" class="altColor">
+<tr id="i170" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#isAllFamilies-java.util.Collection-">isAllFamilies</a></span>(<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/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&gt;&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr id="i169" class="rowColor">
+<tr id="i171" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#isAvailable--">isAvailable</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i170" class="altColor">
+<tr id="i172" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#isClosed--">isClosed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i171" class="rowColor">
+<tr id="i173" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#isClosing--">isClosing</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i172" class="altColor">
+<tr id="i174" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#isFlushSize-org.apache.hadoop.hbase.regionserver.MemStoreSize-">isFlushSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;size)</code>&nbsp;</td>
 </tr>
-<tr id="i173" class="rowColor">
+<tr id="i175" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#isLoadingCfsOnDemandDefault--">isLoadingCfsOnDemandDefault</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i174" class="altColor">
+<tr id="i176" class="altColor">
 <td class="colFirst"><code>boo

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.BlockIndexNotLoadedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.BlockIndexNotLoadedException.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.BlockIndexNotLoadedException.html
index 79cb21b..d8d391b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.BlockIndexNotLoadedException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.BlockIndexNotLoadedException.html
@@ -378,1508 +378,1510 @@
 <span class="sourceLineNo">370</span><a name="line.370"></a>
 <span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
 <span class="sourceLineNo">372</span>  public void returnBlock(HFileBlock block) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    BlockCache blockCache = this.cacheConf.getBlockCache();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (blockCache != null &amp;&amp; block != null) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      BlockCacheKey cacheKey = new BlockCacheKey(this.getFileContext().getHFileName(),<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          block.getOffset(), this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      blockCache.returnBlock(cacheKey, block);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   *         first KeyValue.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (dataBlockIndexReader == null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      throw new BlockIndexNotLoadedException();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   *<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return the first row key, or null if the file is empty.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // We have to copy the row part to form the row key alone<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  /**<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   *<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return the last row key, or null if the file is empty.<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  @Override<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    // We have to copy the row part to form the row key alone<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    return getLastKey().map(CellUtil::cloneRow);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  /** @return number of KV entries in this HFile */<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public long getEntries() {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    return trailer.getEntryCount();<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>  /** @return comparator */<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  @Override<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public CellComparator getComparator() {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    return comparator;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  /** @return compression algorithm */<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return compressAlgo;<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>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  @Override<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public long indexSize() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            : 0);<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>  @Override<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public String getName() {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return name;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  @Override<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return dataBlockIndexReader;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  @Override<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public FixedFileTrailer getTrailer() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return trailer;<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>  @Override<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public boolean isPrimaryReplicaReader() {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    return primaryReplicaReader;<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>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * is invoked on a scanner that is not seeked.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  @SuppressWarnings("serial")<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    public NotSeekedException() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      super("Not seeked to a key/value");<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>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    private ByteBuff blockBuffer;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    protected final boolean cacheBlocks;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    protected final boolean pread;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    protected final boolean isCompaction;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    private int currKeyLen;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    private int currValueLen;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    private int currMemstoreTSLen;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    private long currMemstoreTS;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Updated but never read?<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    protected final HFile.Reader reader;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    private int currTagsLen;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // buffer backed keyonlyKV<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.503"></a>
-<span class="sourceLineNo">504</span>     * current data block is the last data block.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>     *<a name="line.505"></a>
-<span class="sourceLineNo">506</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>     */<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    protected Cell nextIndexedKey;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    // Current block being used<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    protected HFileBlock curBlock;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Previous blocks that were used in the course of the read<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        final boolean pread, final boolean isCompaction) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.reader = reader;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      this.cacheBlocks = cacheBlocks;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.pread = pread;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      this.isCompaction = isCompaction;<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>    void updateCurrBlockRef(HFileBlock block) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        return;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        prevBlocks.add(this.curBlock);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      this.curBlock = block;<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>    void reset() {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>        this.prevBlocks.add(this.curBlock);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      }<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      this.curBlock = null;<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>    private void returnBlockToCache(HFileBlock block) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (LOG.isTraceEnabled()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.trace("Returning the block : " + block);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.reader.returnBlock(block);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    private void returnBlocks(boolean returnAll) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      this.prevBlocks.clear();<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        returnBlockToCache(this.curBlock);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        this.curBlock = null;<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>    @Override<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    public boolean isSeeked(){<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return blockBuffer != null;<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>    @Override<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    public String toString() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (!isSeeked())<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        throw new NotSeekedException();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>    @Override<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    public HFile.Reader getReader() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      return reader;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    private int getKVBufSize() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      if (currTagsLen &gt; 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      return kvBufSize;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    @Override<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    public void close() {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      if (!pread) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        reader.unbufferStream();<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      this.returnBlocks(true);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // HFile block's buffer so as to position to the next cell.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private int getCurCellSerializedSize() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.602"></a>
-<span class="sourceLineNo">603</span>          + currMemstoreTSLen;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      }<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return curCellSize;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    protected void readKeyValueLen() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      // byte buffer array a byte at a time.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      // earlier way is better by doing mark and reset?<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      // But ensure that you read long instead of two ints<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      // Read top half as an int of key length and bottom int as value length<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      checkKeyValueLen();<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        // Tags length is a short.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        checkTagsLen();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      readMvccVersion(p);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>    private final void checkTagsLen() {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      if (checkLen(this.currTagsLen)) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.638"></a>
-<span class="sourceLineNo">639</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.639"></a>
-<span class="sourceLineNo">640</span>            this.blockBuffer.limit() +<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    /**<a name="line.645"></a>
-<span class="sourceLineNo">646</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>     * @param offsetFromPos<a name="line.647"></a>
-<span class="sourceLineNo">648</span>     */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      // See if we even need to decode mvcc.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        currMemstoreTS = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        currMemstoreTSLen = 1;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>        return;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      _readMvccVersion(offsetFromPos);<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>    /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>     * Actually do the mvcc read. Does no checks.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>     * @param offsetFromPos<a name="line.662"></a>
-<span class="sourceLineNo">663</span>     */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      // Also the method is kept small so can be inlined.<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      if (len == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        this.currMemstoreTS = firstByte;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      } else {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        int remaining = len -1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>        long i = 0;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        offsetFromPos++;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          i = i &lt;&lt; 16;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          i = i | (s &amp; 0xFFFF);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          i = i &lt;&lt; 8;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>          i = i | (b &amp; 0xFF);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      }<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      this.currMemstoreTSLen = len;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    /**<a name="line.699"></a>
-<span class="sourceLineNo">700</span>     * Within a loaded block, seek looking for the last key that is smaller than<a name="line.700"></a>
-<span class="sourceLineNo">701</span>     * (or equal to?) the key we are interested in.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>     * A note on the seekBefore: if you have seekBefore = true, AND the first<a name="line.702"></a>
-<span class="sourceLineNo">703</span>     * key in the block = key, then you'll get thrown exceptions. The caller has<a name="line.703"></a>
-<span class="sourceLineNo">704</span>     * to check for that case and load the previous block as appropriate.<a name="line.704"></a>
-<span class="sourceLineNo">705</span>     * @param key<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     *          the key to find<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * @param seekBefore<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     *          find the key before the given key in case of exact match.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>     * @return 0 in case of an exact key match, 1 in case of an inexact match,<a name="line.709"></a>
-<span class="sourceLineNo">710</span>     *         -2 in case of an inexact match and furthermore, the input key<a name="line.710"></a>
-<span class="sourceLineNo">711</span>     *         less than the first key of current block(e.g. using a faked index<a name="line.711"></a>
-<span class="sourceLineNo">712</span>     *         key)<a name="line.712"></a>
-<span class="sourceLineNo">713</span>     */<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    protected int blockSeek(Cell key, boolean seekBefore) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      int klen, vlen, tlen = 0;<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      int lastKeyValueSize = -1;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      int offsetFromPos;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      do {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        offsetFromPos = 0;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        // Better to ensure that we use the BB Utils here<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        long ll = blockBuffer.getLongAfterPosition(offsetFromPos);<a name="line.721"></a>
-<span class="sourceLineNo">722</span>        klen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        vlen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        if (checkKeyLen(klen) || checkLen(vlen)) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>          throw new IllegalStateException("Invalid klen " + klen + " or vlen "<a name="line.725"></a>
-<span class="sourceLineNo">726</span>              + vlen + ". Block offset: "<a name="line.726"></a>
-<span class="sourceLineNo">727</span>              + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.727"></a>
-<span class="sourceLineNo">728</span>              + blockBuffer.position() + " (without header).");<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        }<a name="line.729"></a>
-<span class="sourceLineNo">730</span>        offsetFromPos += Bytes.SIZEOF_LONG;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        blockBuffer.asSubByteBuffer(blockBuffer.position() + offsetFromPos, klen, pair);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>        bufBackedKeyOnlyKv.setKey(pair.getFirst(), pair.getSecond(), klen);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>        int comp =<a name="line.733"></a>
-<span class="sourceLineNo">734</span>            PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), key, bufBackedKeyOnlyKv);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>        offsetFromPos += klen + vlen;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        if (this.reader.getFileContext().isIncludesTags()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>          // Read short as unsigned, high byte first<a name="line.737"></a>
-<span class="sourceLineNo">738</span>          tlen = ((blockBuffer.getByteAfterPosition(offsetFromPos) &amp; 0xff) &lt;&lt; 8)<a name="line.738"></a>
-<span class="sourceLineNo">739</span>              ^ (blockBuffer.getByteAfterPosition(offsetFromPos + 1) &amp; 0xff);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>          if (checkLen(tlen)) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            throw new IllegalStateException("Invalid tlen " + tlen + ". Block offset: "<a name="line.741"></a>
-<span class="sourceLineNo">742</span>                + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.742"></a>
-<span class="sourceLineNo">743</span>                + blockBuffer.position() + " (without header).");<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          }<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          // add the two bytes read for the tags.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          offsetFromPos += tlen + (Bytes.SIZEOF_SHORT);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        if (this.reader.shouldIncludeMemStoreTS()) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>          // Directly read the mvcc based on current position<a name="line.749"></a>
-<span class="sourceLineNo">750</span>          readMvccVersion(offsetFromPos);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>        }<a name="line.751"></a>
-<span class="sourceLineNo">752</span>        if (comp == 0) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>          if (seekBefore) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>            if (lastKeyValueSize &lt; 0) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>              throw new IllegalStateException("blockSeek with seekBefore "<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  + "at the first key of the block: key=" + CellUtil.getCellKeyAsString(key)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                  + ", blockOffset=" + curBlock.getOffset() + ", onDiskSize="<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                  + curBlock.getOnDiskSizeWithHeader());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            readKeyValueLen();<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            return 1; // non exact match.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>          }<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          currKeyLen = klen;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          currValueLen = vlen;<a name="line.765"></a>
-<span class="sourceLineNo">766</span>          currTagsLen = tlen;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>          return 0; // indicate exact match<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        } else if (comp &lt; 0) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          if (lastKeyValueSize &gt; 0) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          readKeyValueLen();<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          if (lastKeyValueSize == -1 &amp;&amp; blockBuffer.position() == 0) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>            return HConstants.INDEX_KEY_MAGIC;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          }<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          return 1;<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
-<span class="sourceLineNo">778</span>        // The size of this key/value tuple, including key/value length fields.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        lastKeyValueSize = klen + vlen + currMemstoreTSLen + KEY_VALUE_LEN_SIZE;<a name="line.779"></a>
-<span class="sourceLineNo">780</span>        // include tag length also if tags included with KV<a name="line.780"></a>
-<span class="sourceLineNo">781</span>        if (reader.getFileContext().isIncludesTags()) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>          lastKeyValueSize += tlen + Bytes.SIZEOF_SHORT;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        blockBuffer.skip(lastKeyValueSize);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      } while (blockBuffer.hasRemaining());<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>      // Seek to the last key we successfully read. This will happen if this is<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      // the last key/value pair in the file, in which case the following call<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      // to next() has to return false.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      blockBuffer.moveBack(lastKeyValueSize);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      readKeyValueLen();<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      return 1; // didn't exactly find it.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    }<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    @Override<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    public Cell getNextIndexedKey() {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      return nextIndexedKey;<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>    @Override<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    public int seekTo(Cell key) throws IOException {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      return seekTo(key, true);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    @Override<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    public int reseekTo(Cell key) throws IOException {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      int compared;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (isSeeked()) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        compared = compareKey(reader.getComparator(), key);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        if (compared &lt; 1) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span>          // If the required key is less than or equal to current key, then<a name="line.811"></a>
-<span class="sourceLineNo">812</span>          // don't do anything.<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          return compared;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } else {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          // The comparison with no_next_index_key has to be checked<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          if (this.nextIndexedKey != null &amp;&amp;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>              (this.nextIndexedKey == KeyValueScanner.NO_NEXT_INDEXED_KEY || PrivateCellUtil<a name="line.817"></a>
-<span class="sourceLineNo">818</span>                  .compareKeyIgnoresMvcc(reader.getComparator(), key, nextIndexedKey) &lt; 0)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            // The reader shall continue to scan the current data block instead<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            // of querying the<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            // block index as long as it knows the target key is strictly<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            // smaller than<a name="line.822"></a>
-<span class="sourceLineNo">823</span>            // the next indexed key or the current data block is the last data<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // block.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            return loadBlockAndSeekToKey(this.curBlock, nextIndexedKey, false, key,<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                false);<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      // Don't rewind on a reseek operation, because reseek implies that we are<a name="line.831"></a>
-<span class="sourceLineNo">832</span>      // always going forward in the file.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      return seekTo(key, false);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    }<a name="line.834"></a>
-<span class="sourceLineNo">835</span><a name="line.835"></a>
-<span class="sourceLineNo">836</span>    /**<a name="line.836"></a>
-<span class="sourceLineNo">837</span>     * An internal API function. Seek to the given key, optionally rewinding to<a name="line.837"></a>
-<span class="sourceLineNo">838</span>     * the first key of the block before doing the seek.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>     *<a name="line.839"></a>
-<span class="sourceLineNo">840</span>     * @param key - a cell representing the key that we need to fetch<a name="line.840"></a>
-<span class="sourceLineNo">841</span>     * @param rewind whether to rewind to the first key of the block before<a name="line.841"></a>
-<span class="sourceLineNo">842</span>     *        doing the seek. If this is false, we are assuming we never go<a name="line.842"></a>
-<span class="sourceLineNo">843</span>     *        back, otherwise the result is undefined.<a name="line.843"></a>
-<span class="sourceLineNo">844</span>     * @return -1 if the key is earlier than the first key of the file,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>     *         0 if we are at the given key, 1 if we are past the given key<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     *         -2 if the key is earlier than the first key of the file while<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     *         using a faked index key<a name="line.847"></a>
-<span class="sourceLineNo">848</span>     * @throws IOException<a name="line.848"></a>
-<span class="sourceLineNo">849</span>     */<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    public int seekTo(Cell key, boolean rewind) throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      HFileBlockIndex.BlockIndexReader indexReader = reader.getDataBlockIndexReader();<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      BlockWithScanInfo blockWithScanInfo = indexReader.loadDataBlockWithScanInfo(key, curBlock,<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          cacheBlocks, pread, isCompaction, getEffectiveDataBlockEncoding());<a name="line.853"></a>
-<span class="sourceLineNo">854</span>      if (blockWithScanInfo == null || blockWithScanInfo.getHFileBlock() == null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>        // This happens if the key e.g. falls before the beginning of the<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        // file.<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        return -1;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      return loadBlockAndSeekToKey(blockWithScanInfo.getHFileBlock(),<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          blockWithScanInfo.getNextIndexedKey(), rewind, key, false);<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
-<span class="sourceLineNo">862</span><a name="line.862"></a>
-<span class="sourceLineNo">863</span>    @Override<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    public boolean seekBefore(Cell key) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      HFileBlock seekToBlock = reader.getDataBlockIndexReader().seekToDataBlock(key, curBlock,<a name="line.865"></a>
-<span class="sourceLineNo">866</span>          cacheBlocks, pread, isCompaction, reader.getEffectiveEncodingInCache(isCompaction));<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (seekToBlock == null) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        return false;<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      Cell firstKey = getFirstKeyCellInBlock(seekToBlock);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      if (PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), firstKey, key) &gt;= 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        long previousBlockOffset = seekToBlock.getPrevBlockOffset();<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        // The key we are interested in<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        if (previousBlockOffset == -1) {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          // we have a 'problem', the key we want is the first of the file.<a name="line.875"></a>
-<span class="sourceLineNo">876</span>          return false;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // The first key in the current block 'seekToBlock' is greater than the given<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        // seekBefore key. We will go ahead by reading the next block that satisfies the<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        // given key. Return the current block before reading the next one.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>        reader.returnBlock(seekToBlock);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        // It is important that we compute and pass onDiskSize to the block<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        // reader so that it does not have to read the header separately to<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        // figure out the size.  Currently, we do not have a way to do this<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        // correctly in the general case however.<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        // TODO: See https://issues.apache.org/jira/browse/HBASE-14576<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        int prevBlockSize = -1;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        seekToBlock = reader.readBlock(previousBlockOffset,<a name="line.889"></a>
-<span class="sourceLineNo">890</span>            prevBlockSize, cacheBlocks,<a name="line.890"></a>
-<span class="sourceLineNo">891</span>            pread, isCompaction, true, BlockType.DATA, getEffectiveDataBlockEncoding());<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        // TODO shortcut: seek forward in this block to the last key of the<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        // block.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      loadBlockAndSeekToKey(seekToBlock, firstKey, true, key, true);<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      return true;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>    /**<a name="line.899"></a>
-<span class="sourceLineNo">900</span>     * Scans blocks in the "scanned" section of the {@link HFile} until the next<a name="line.900"></a>
-<span class="sourceLineNo">901</span>     * data block is found.<a name="line.901"></a>
-<span class="sourceLineNo">902</span>     *<a name="line.902"></a>
-<span class="sourceLineNo">903</span>     * @return the next block, or null if there are no more data blocks<a name="line.903"></a>
-<span class="sourceLineNo">904</span>     * @throws IOException<a name="line.904"></a>
-<span class="sourceLineNo">905</span>     */<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.906"></a>
-<span class="sourceLineNo">907</span>        justification="Yeah, unnecessary null check; could do w/ clean up")<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    protected HFileBlock readNextDataBlock() throws IOException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>      long lastDataBlockOffset = reader.getTrailer().getLastDataBlockOffset();<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (curBlock == null)<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        return null;<a name="line.911"></a>
-<span class="sourceLineNo">912</span><a name="line.912"></a>
-<span class="sourceLineNo">913</span>      HFileBlock block = this.curBlock;<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>      do {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        if (block.getOffset() &gt;= lastDataBlockOffset) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>          return null;<a name="line.917"></a>
-<span class="sourceLineNo">918</span>        }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>        if (block.getOffset() &lt; 0) {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>          throw new IOException("Invalid block file offset: " + block);<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
-<span class="sourceLineNo">923</span><a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // We are reading the next block without block type validation, because<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        // it might turn out to be a non-data block.<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        block = reader.readBlock(block.getOffset() + block.getOnDiskSizeWithHeader(),<a name="line.926"></a>
-<span class="sourceLineNo">927</span>            block.getNextBlockOnDiskSize(), cacheBlocks, pread,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>            isCompaction, true, null, getEffectiveDataBlockEncoding());<a name="line.928"></a>
-<span class="sourceLineNo">929</span>        if (block != null &amp;&amp; !block.getBlockType().isData()) { // Findbugs: NP_NULL_ON_SOME_PATH<a name="line.929"></a>
-<span class="sourceLineNo">930</span>          // Whatever block we read we will be returning it unless<a name="line.930"></a>
-<span class="sourceLineNo">931</span>          // it is a datablock. Just in case the blocks are non data blocks<a name="line.931"></a>
-<span class="sourceLineNo">932</span>          reader.returnBlock(block);<a name="line.932"></a>
-<span class="sourceLineNo">933</span>        }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      } while (!block.getBlockType().isData());<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>      return block;<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">373</span>    if (block != null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      this.cacheConf.getBlockCache().ifPresent(blockCache -&gt; {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        BlockCacheKey cacheKey =<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            new BlockCacheKey(this.getFileContext().getHFileName(), block.getOffset(),<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        blockCache.returnBlock(cacheKey, block);<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>  }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   *         first KeyValue.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    if (dataBlockIndexReader == null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      throw new BlockIndexNotLoadedException();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   *<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * @return the first row key, or null if the file is empty.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    // We have to copy the row part to form the row key alone<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>  /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   *<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @return the last row key, or null if the file is empty.<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // We have to copy the row part to form the row key alone<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    return getLastKey().map(CellUtil::cloneRow);<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>  /** @return number of KV entries in this HFile */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  public long getEntries() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    return trailer.getEntryCount();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  /** @return comparator */<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  public CellComparator getComparator() {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return comparator;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /** @return compression algorithm */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  @Override<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    return compressAlgo;<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>  /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public long indexSize() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.446"></a>
+<span class="sourceLineNo">447</span>            : 0);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>  @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>  public String getName() {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    return name;<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>  @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    return dataBlockIndexReader;<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>  @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>  public FixedFileTrailer getTrailer() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    return trailer;<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>  @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  public boolean isPrimaryReplicaReader() {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    return primaryReplicaReader;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * is invoked on a scanner that is not seeked.<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  @SuppressWarnings("serial")<a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    public NotSeekedException() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      super("Not seeked to a key/value");<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><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    private ByteBuff blockBuffer;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    protected final boolean cacheBlocks;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    protected final boolean pread;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    protected final boolean isCompaction;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    private int currKeyLen;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    private int currValueLen;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    private int currMemstoreTSLen;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    private long currMemstoreTS;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Updated but never read?<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    protected final HFile.Reader reader;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    private int currTagsLen;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // buffer backed keyonlyKV<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<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>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.506"></a>
+<span class="sourceLineNo">507</span>     * current data block is the last data block.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>     *<a name="line.508"></a>
+<span class="sourceLineNo">509</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.509"></a>
+<span class="sourceLineNo">510</span>     */<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    protected Cell nextIndexedKey;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // Current block being used<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    protected HFileBlock curBlock;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // Previous blocks that were used in the course of the read<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        final boolean pread, final boolean isCompaction) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      this.reader = reader;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      this.cacheBlocks = cacheBlocks;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      this.pread = pread;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>      this.isCompaction = isCompaction;<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>    void updateCurrBlockRef(HFileBlock block) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        return;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        prevBlocks.add(this.curBlock);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      this.curBlock = block;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>    void reset() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        this.prevBlocks.add(this.curBlock);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      this.curBlock = null;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private void returnBlockToCache(HFileBlock block) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      if (LOG.isTraceEnabled()) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        LOG.trace("Returning the block : " + block);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      this.reader.returnBlock(block);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    private void returnBlocks(boolean returnAll) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      this.prevBlocks.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        returnBlockToCache(this.curBlock);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        this.curBlock = null;<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>    @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    public boolean isSeeked(){<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return blockBuffer != null;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>    @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    public String toString() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      if (!isSeeked())<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        throw new NotSeekedException();<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>    @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    public HFile.Reader getReader() {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      return reader;<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>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    private int getKVBufSize() {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      if (currTagsLen &gt; 0) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      return kvBufSize;<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>    @Override<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    public void close() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      if (!pread) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        reader.unbufferStream();<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.returnBlocks(true);<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>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    // HFile block's buffer so as to position to the next cell.<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    private int getCurCellSerializedSize() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.605"></a>
+<span class="sourceLineNo">606</span>          + currMemstoreTSLen;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      return curCellSize;<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>    protected void readKeyValueLen() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.616"></a>
+<span class="sourceLineNo">617</span>      // byte buffer array a byte at a time.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      // earlier way is better by doing mark and reset?<a name="line.621"></a>
+<span class="sourceLineNo">622</span>      // But ensure that you read long instead of two ints<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      // Read top half as an int of key length and bottom int as value length<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>      checkKeyValueLen();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        // Tags length is a short.<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        checkTagsLen();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      readMvccVersion(p);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    private final void checkTagsLen() {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      if (checkLen(this.currTagsLen)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.641"></a>
+<span class="sourceLineNo">642</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.642"></a>
+<span class="sourceLineNo">643</span>            this.blockBuffer.limit() +<a name="line.643"></a>
+<span class="sourceLineNo">644</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>    /**<a name="line.648"></a>
+<span class="sourceLineNo">649</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.649"></a>
+<span class="sourceLineNo">650</span>     * @param offsetFromPos<a name="line.650"></a>
+<span class="sourceLineNo">651</span>     */<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      // See if we even need to decode mvcc.<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        currMemstoreTS = 0;<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        currMemstoreTSLen = 1;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        return;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      _readMvccVersion(offsetFromPos);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>    /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>     * Actually do the mvcc read. Does no checks.<a name="line.664"></a>
+<span class="sourceLineNo">665</span>     * @param offsetFromPos<a name="line.665"></a>
+<span class="sourceLineNo">666</span>     */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      // Also the method is kept small so can be inlined.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      if (len == 1) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        this.currMemstoreTS = firstByte;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      } else {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        int remaining = len -1;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        long i = 0;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        offsetFromPos++;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>          i = i &lt;&lt; 16;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>          i = i | (s &amp; 0xFFFF);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>          i = i &lt;&lt; 8;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>          i = i | (b &amp; 0xFF);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      this.currMemstoreTSLen = len;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>    /**<a name="line.702"></a>
+<

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html
index d9d5ea9..78176fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/BlockCacheKey.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -489,7 +489,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/HeapSize.html"
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
deleted file mode 100644
index a81d07b..0000000
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
+++ /dev/null
@@ -1,372 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>CacheConfig.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CacheConfig.ExternalBlockCaches (Apache HBase 3.0.0-SNAPSHOT API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":9,"i1":9};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static 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>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/CacheConfig.ExternalBlockCaches.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" target="_top">Frames</a></li>
-<li><a href="CacheConfig.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.io.hfile</div>
-<h2 title="Enum CacheConfig.ExternalBlockCaches" class="title">Enum CacheConfig.ExternalBlockCaches</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>&gt;</li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.io.hfile.CacheConfig.ExternalBlockCaches</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd><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>, <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/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>&gt;</dd>
-</dl>
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dd>
-</dl>
-<hr>
-<br>
-<pre>private static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.151">CacheConfig.ExternalBlockCaches</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>&gt;</pre>
-<div class="block">Enum of all built in external block caches.
- This is used for config.</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="enum.constant.summary">
-<!--   -->
-</a>
-<h3>Enum Constant Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
-<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Enum Constant and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#memcached">memcached</a></span></code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>(package private) <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;? extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#clazz">clazz</a></span></code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#valueOf-java.lang.String-">valueOf</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;name)</code>
-<div class="block">Returns the enum constant of this type with the specified name.</div>
-</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#values--">values</a></span>()</code>
-<div class="block">Returns an array containing the constants of this enum type, in
-the order they are declared.</div>
-</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;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">Enum</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/
 8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<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></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ ENUM CONSTANT DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="enum.constant.detail">
-<!--   -->
-</a>
-<h3>Enum Constant Detail</h3>
-<a name="memcached">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>memcached</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.152">memcached</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ FIELD DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.detail">
-<!--   -->
-</a>
-<h3>Field Detail</h3>
-<a name="clazz">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>clazz</h4>
-<pre><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;? extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.154">clazz</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="values--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.151">values</a>()</pre>
-<div class="block">Returns an array containing the constants of this enum type, in
-the order they are declared.  This method may be used to iterate
-over the constants as follows:
-<pre>
-for (CacheConfig.ExternalBlockCaches c : CacheConfig.ExternalBlockCaches.values())
-&nbsp;   System.out.println(c);
-</pre></div>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>an array containing the constants of this enum type, in the order they are declared</dd>
-</dl>
-</li>
-</ul>
-<a name="valueOf-java.lang.String-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.151">valueOf</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;name)</pre>
-<div class="block">Returns the enum constant of this type with the specified name.
-The string must match <i>exactly</i> an identifier used to declare an
-enum constant in this type.  (Extraneous whitespace characters are 
-not permitted.)</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>name</code> - the name of the enum constant to be returned.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the enum constant with the specified name</dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><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></code> - if this enum type has no constant with the specified name</dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/CacheConfig.ExternalBlockCaches.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" target="_top">Frames</a></li>
-<li><a href="CacheConfig.ExternalBlockCaches.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>


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

Posted by gi...@apache.org.
Published site at c448604ceb987d113913f0583452b2abce04db0d.


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

Branch: refs/heads/asf-site
Commit: 4f8b842476c373ebcbaf9c035d0aae678dac780f
Parents: d0f540a
Author: jenkins <bu...@apache.org>
Authored: Tue Dec 18 14:56:11 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Dec 18 14:56:11 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 book.html                                       |     2 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 26622 ++++++++---------
 checkstyle.rss                                  |    62 +-
 coc.html                                        |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/allclasses-frame.html                |     4 +-
 devapidocs/allclasses-noframe.html              |     4 +-
 devapidocs/constant-values.html                 |   188 +-
 devapidocs/index-all.html                       |   234 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../apache/hadoop/hbase/class-use/Server.html   |    11 +-
 .../hadoop/hbase/class-use/ServerName.html      |     2 +-
 .../class-use/ColumnFamilyDescriptor.html       |    27 +-
 .../hadoop/hbase/client/package-tree.html       |    24 +-
 .../hadoop/hbase/coprocessor/package-tree.html  |     2 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |     6 +-
 .../apache/hadoop/hbase/io/Reference.Range.html |     4 +-
 .../hadoop/hbase/io/hfile/BlockCache.html       |     4 +-
 .../BlockCacheFactory.ExternalBlockCaches.html  |   372 +
 .../hbase/io/hfile/BlockCacheFactory.html       |   564 +
 .../hadoop/hbase/io/hfile/BlockCacheKey.html    |     4 +-
 .../hfile/CacheConfig.ExternalBlockCaches.html  |   372 -
 .../hadoop/hbase/io/hfile/CacheConfig.html      |   695 +-
 .../hadoop/hbase/io/hfile/CachedBlock.html      |     4 +-
 .../CombinedBlockCache.CombinedCacheStats.html  |   170 +-
 .../hbase/io/hfile/CombinedBlockCache.html      |    41 +-
 .../hfile/HFileBlockIndex.BlockIndexChunk.html  |    46 +-
 .../hfile/HFileBlockIndex.BlockIndexWriter.html |    28 +-
 .../hadoop/hbase/io/hfile/HFileBlockIndex.html  |     4 +-
 .../hfile/HFileReaderImpl.EncodedScanner.html   |    40 +-
 .../hfile/HFileReaderImpl.HFileScannerImpl.html |   126 +-
 .../HFileReaderImpl.NotSeekedException.html     |     4 +-
 .../hadoop/hbase/io/hfile/HFileReaderImpl.html  |    92 +-
 .../hadoop/hbase/io/hfile/HFileWriterImpl.html  |    28 +-
 .../io/hfile/InclusiveCombinedBlockCache.html   |     2 +-
 .../io/hfile/bucket/class-use/BucketCache.html  |     4 +-
 .../hbase/io/hfile/class-use/BlockCache.html    |   266 +-
 .../BlockCacheFactory.ExternalBlockCaches.html  |   177 +
 .../io/hfile/class-use/BlockCacheFactory.html   |   125 +
 .../CacheConfig.ExternalBlockCaches.html        |   177 -
 .../hbase/io/hfile/class-use/CacheConfig.html   |    73 +-
 .../hbase/io/hfile/class-use/CacheStats.html    |    12 +-
 .../hbase/io/hfile/class-use/LruBlockCache.html |    12 +-
 .../io/hfile/class-use/ResizableBlockCache.html |    13 +-
 .../hadoop/hbase/io/hfile/package-frame.html    |     3 +-
 .../hadoop/hbase/io/hfile/package-summary.html  |   130 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     7 +-
 .../hadoop/hbase/io/hfile/package-use.html      |    28 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../org/apache/hadoop/hbase/master/HMaster.html |     4 +-
 .../master/HMasterCommandLine.LocalHMaster.html |     4 +-
 .../hbase/master/RegionServerTracker.html       |     6 +-
 .../ServerManager.FlushedSequenceIdFlusher.html |     6 +-
 .../hadoop/hbase/master/ServerManager.html      |    62 +-
 .../master/assignment/AssignmentManager.html    |    72 +-
 .../assignment/MergeTableRegionsProcedure.html  |    28 +-
 .../hbase/master/assignment/RegionStates.html   |    14 +-
 .../hbase/master/assignment/ServerState.html    |     2 +-
 .../master/assignment/ServerStateNode.html      |     2 +-
 ...tTableRegionProcedure.StoreFileSplitter.html |    12 +-
 .../assignment/SplitTableRegionProcedure.html   |    26 +-
 .../assignment/class-use/ServerStateNode.html   |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     6 +-
 .../master/procedure/ServerCrashProcedure.html  |    69 +-
 .../procedure/class-use/MasterProcedureEnv.html |     7 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../hadoop/hbase/mob/ExpiredMobFileCleaner.html |     4 +-
 .../apache/hadoop/hbase/mob/MobCacheConfig.html |   372 -
 .../apache/hadoop/hbase/mob/MobConstants.html   |     4 +-
 .../hbase/mob/MobFileCache.EvictionThread.html  |     8 +-
 .../apache/hadoop/hbase/mob/MobFileCache.html   |    64 +-
 .../hbase/mob/class-use/MobCacheConfig.html     |   195 -
 .../hadoop/hbase/mob/class-use/MobFile.html     |     4 +-
 .../hbase/mob/class-use/MobFileCache.html       |    93 +-
 .../apache/hadoop/hbase/mob/package-frame.html  |     1 -
 .../hadoop/hbase/mob/package-summary.html       |    18 +-
 .../apache/hadoop/hbase/mob/package-tree.html   |     5 -
 .../apache/hadoop/hbase/mob/package-use.html    |    16 +-
 .../hadoop/hbase/monitoring/package-tree.html   |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    16 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     4 +-
 .../hadoop/hbase/quotas/package-tree.html       |     6 +-
 .../hadoop/hbase/regionserver/HMobStore.html    |   168 +-
 .../HRegion.BatchOperation.Visitor.html         |     4 +-
 .../regionserver/HRegion.BatchOperation.html    |    78 +-
 .../regionserver/HRegion.BulkLoadListener.html  |     8 +-
 .../HRegion.FlushResult.Result.html             |    14 +-
 .../hbase/regionserver/HRegion.FlushResult.html |     8 +-
 .../regionserver/HRegion.FlushResultImpl.html   |    24 +-
 .../HRegion.MutationBatchOperation.html         |    44 +-
 .../HRegion.ObservedExceptionsInBatch.html      |    22 +-
 .../HRegion.PrepareFlushResult.html             |    26 +-
 .../regionserver/HRegion.RegionScannerImpl.html |    90 +-
 .../HRegion.ReplayBatchOperation.html           |    32 +-
 .../regionserver/HRegion.RowLockContext.html    |    28 +-
 .../hbase/regionserver/HRegion.RowLockImpl.html |    16 +-
 .../hbase/regionserver/HRegion.WriteState.html  |    26 +-
 .../hadoop/hbase/regionserver/HRegion.html      |  1342 +-
 .../HRegionServer.CompactionChecker.html        |    14 +-
 .../HRegionServer.MovedRegionInfo.html          |    16 +-
 .../HRegionServer.MovedRegionsCleaner.html      |    16 +-
 .../HRegionServer.PeriodicMemStoreFlusher.html  |    14 +-
 ...RegionServer.SystemExitWhenAbortTimeout.html |     6 +-
 .../hbase/regionserver/HRegionServer.html       |   795 +-
 .../hbase/regionserver/HeapMemoryManager.html   |   102 +-
 ...Impl.RegionServerMetricsWrapperRunnable.html |    16 +-
 .../MetricsRegionServerWrapperImpl.html         |   402 +-
 .../regionserver/RSRpcServices.LogDelegate.html |     4 +-
 ...SRpcServices.RegionScannerCloseCallBack.html |     8 +-
 .../RSRpcServices.RegionScannerHolder.html      |    24 +-
 ...pcServices.RegionScannerShippedCallBack.html |    12 +-
 ...RpcServices.RegionScannersCloseCallBack.html |    10 +-
 .../RSRpcServices.ScannerListener.html          |     8 +-
 .../hbase/regionserver/RSRpcServices.html       |   268 +-
 ...ionServerServices.PostOpenDeployContext.html |    12 +-
 ...erServices.RegionStateTransitionContext.html |    20 +-
 .../regionserver/RegionServerServices.html      |   150 +-
 .../regionserver/class-use/FlushRequester.html  |    18 +-
 .../class-use/HeapMemoryManager.html            |     9 +-
 .../class-use/RegionServerAccounting.html       |    18 +-
 .../hadoop/hbase/regionserver/package-tree.html |    16 +-
 .../regionserver/querymatcher/package-tree.html |     2 +-
 .../hbase/regionserver/wal/package-tree.html    |     2 +-
 .../hadoop/hbase/replication/package-tree.html  |     2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |     2 +-
 .../hbase/security/access/package-tree.html     |     6 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../regionserver/BlockCacheTmpl.ImplData.html   |    69 +-
 .../tmpl/regionserver/BlockCacheTmpl.Intf.html  |     4 +-
 .../hbase/tmpl/regionserver/BlockCacheTmpl.html |    52 +-
 .../tmpl/regionserver/BlockCacheTmplImpl.html   |    53 +-
 .../BlockCacheViewTmpl.ImplData.html            |    85 +-
 .../regionserver/BlockCacheViewTmpl.Intf.html   |     4 +-
 .../tmpl/regionserver/BlockCacheViewTmpl.html   |    52 +-
 .../regionserver/BlockCacheViewTmplImpl.html    |    25 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |    50 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |     4 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    38 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    18 +-
 .../util/IdReadWriteLock.ReferenceType.html     |     4 +-
 .../apache/hadoop/hbase/util/package-tree.html  |     8 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 devapidocs/overview-tree.html                   |     9 +-
 .../org/apache/hadoop/hbase/Version.html        |     4 +-
 .../BlockCacheFactory.ExternalBlockCaches.html  |   298 +
 .../hbase/io/hfile/BlockCacheFactory.html       |   298 +
 .../hfile/CacheConfig.ExternalBlockCaches.html  |   756 -
 .../hadoop/hbase/io/hfile/CacheConfig.html      |   997 +-
 .../CombinedBlockCache.CombinedCacheStats.html  |   472 +-
 .../hbase/io/hfile/CombinedBlockCache.html      |   472 +-
 .../hfile/HFileBlockIndex.BlockIndexChunk.html  |  1147 +-
 .../hfile/HFileBlockIndex.BlockIndexReader.html |  1147 +-
 .../hfile/HFileBlockIndex.BlockIndexWriter.html |  1147 +-
 ...BlockIndex.ByteArrayKeyBlockIndexReader.html |  1147 +-
 ...BlockIndex.CellBasedKeyBlockIndexReader.html |  1147 +-
 .../hadoop/hbase/io/hfile/HFileBlockIndex.html  |  1147 +-
 ...ReaderImpl.BlockIndexNotLoadedException.html |  2992 +-
 .../hfile/HFileReaderImpl.EncodedScanner.html   |  2992 +-
 .../hfile/HFileReaderImpl.HFileScannerImpl.html |  2992 +-
 .../HFileReaderImpl.NotSeekedException.html     |  2992 +-
 .../hadoop/hbase/io/hfile/HFileReaderImpl.html  |  2992 +-
 .../hadoop/hbase/io/hfile/HFileWriterImpl.html  |   589 +-
 .../io/hfile/bucket/BucketAllocator.Bucket.html |    12 +-
 .../bucket/BucketAllocator.BucketSizeInfo.html  |    12 +-
 .../bucket/BucketAllocator.IndexStatistics.html |    12 +-
 .../hbase/io/hfile/bucket/BucketAllocator.html  |    12 +-
 .../hbase/master/RegionServerTracker.html       |   135 +-
 .../ServerManager.FlushedSequenceIdFlusher.html |  1159 +-
 .../hadoop/hbase/master/ServerManager.html      |  1159 +-
 ...signmentManager.RegionInTransitionChore.html |  1068 +-
 ...ssignmentManager.RegionInTransitionStat.html |  1068 +-
 .../master/assignment/AssignmentManager.html    |  1068 +-
 .../assignment/MergeTableRegionsProcedure.html  |   327 +-
 .../RegionStates.RegionFailedOpen.html          |   131 +-
 ...RegionStates.RegionStateStampComparator.html |   131 +-
 .../hbase/master/assignment/RegionStates.html   |   131 +-
 .../hbase/master/assignment/ServerState.html    |     2 +-
 .../master/assignment/ServerStateNode.html      |     2 +-
 ...tTableRegionProcedure.StoreFileSplitter.html |   451 +-
 .../assignment/SplitTableRegionProcedure.html   |   451 +-
 .../master/procedure/ServerCrashProcedure.html  |   110 +-
 .../apache/hadoop/hbase/mob/MobCacheConfig.html |   136 -
 .../hbase/mob/MobFileCache.EvictionThread.html  |   593 +-
 .../apache/hadoop/hbase/mob/MobFileCache.html   |   593 +-
 .../hadoop/hbase/regionserver/HMobStore.html    |   722 +-
 .../HRegion.BatchOperation.Visitor.html         | 16868 +++++------
 .../regionserver/HRegion.BatchOperation.html    | 16868 +++++------
 .../regionserver/HRegion.BulkLoadListener.html  | 16868 +++++------
 .../HRegion.FlushResult.Result.html             | 16868 +++++------
 .../hbase/regionserver/HRegion.FlushResult.html | 16868 +++++------
 .../regionserver/HRegion.FlushResultImpl.html   | 16868 +++++------
 .../HRegion.MutationBatchOperation.html         | 16868 +++++------
 .../HRegion.ObservedExceptionsInBatch.html      | 16868 +++++------
 .../HRegion.PrepareFlushResult.html             | 16868 +++++------
 .../regionserver/HRegion.RegionScannerImpl.html | 16868 +++++------
 .../HRegion.ReplayBatchOperation.html           | 16868 +++++------
 .../regionserver/HRegion.RowLockContext.html    | 16868 +++++------
 .../hbase/regionserver/HRegion.RowLockImpl.html | 16868 +++++------
 .../hbase/regionserver/HRegion.WriteState.html  | 16868 +++++------
 .../hadoop/hbase/regionserver/HRegion.html      | 16868 +++++------
 .../HRegionServer.CompactionChecker.html        |  7535 ++---
 .../HRegionServer.MovedRegionInfo.html          |  7535 ++---
 .../HRegionServer.MovedRegionsCleaner.html      |  7535 ++---
 .../HRegionServer.PeriodicMemStoreFlusher.html  |  7535 ++---
 ...RegionServer.SystemExitWhenAbortTimeout.html |  7535 ++---
 .../hbase/regionserver/HRegionServer.html       |  7535 ++---
 .../regionserver/HStore.StoreFlusherImpl.html   |     2 +-
 .../hadoop/hbase/regionserver/HStore.html       |     2 +-
 ...eapMemoryManager.HeapMemoryTuneObserver.html |   196 +-
 .../HeapMemoryManager.HeapMemoryTunerChore.html |   196 +-
 .../HeapMemoryManager.TunerContext.html         |   196 +-
 .../HeapMemoryManager.TunerResult.html          |   196 +-
 .../hbase/regionserver/HeapMemoryManager.html   |   196 +-
 ...Impl.RegionServerMetricsWrapperRunnable.html |  1865 +-
 .../MetricsRegionServerWrapperImpl.html         |  1865 +-
 .../regionserver/RSRpcServices.LogDelegate.html |  7358 ++---
 ...SRpcServices.RegionScannerCloseCallBack.html |  7358 ++---
 .../RSRpcServices.RegionScannerHolder.html      |  7358 ++---
 ...pcServices.RegionScannerShippedCallBack.html |  7358 ++---
 ...RpcServices.RegionScannersCloseCallBack.html |  7358 ++---
 .../RSRpcServices.ScannerListener.html          |  7358 ++---
 .../hbase/regionserver/RSRpcServices.html       |  7358 ++---
 ...ionServerServices.PostOpenDeployContext.html |   489 +-
 ...erServices.RegionStateTransitionContext.html |   489 +-
 .../regionserver/RegionServerServices.html      |   489 +-
 .../regionserver/BlockCacheTmpl.ImplData.html   |   273 +-
 .../tmpl/regionserver/BlockCacheTmpl.Intf.html  |   273 +-
 .../hbase/tmpl/regionserver/BlockCacheTmpl.html |   273 +-
 .../tmpl/regionserver/BlockCacheTmplImpl.html   |   861 +-
 .../BlockCacheViewTmpl.ImplData.html            |   319 +-
 .../regionserver/BlockCacheViewTmpl.Intf.html   |   319 +-
 .../tmpl/regionserver/BlockCacheViewTmpl.html   |   319 +-
 .../regionserver/BlockCacheViewTmplImpl.html    |   196 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |   426 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |   426 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |   426 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |   486 +-
 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 +-
 testapidocs/index-all.html                      |    12 +
 .../hadoop/hbase/HBaseTestingUtility.html       |   910 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |  8417 +++---
 testdevapidocs/index-all.html                   |    68 +-
 .../org/apache/hadoop/hbase/HBaseTestCase.html  |     2 +-
 ...lity.PortAllocator.AvailablePortChecker.html |     4 +-
 .../HBaseTestingUtility.PortAllocator.html      |    20 +-
 .../HBaseTestingUtility.SeenRowTracker.html     |    20 +-
 .../hadoop/hbase/HBaseTestingUtility.html       |  1000 +-
 .../hadoop/hbase/IntegrationTestingUtility.html |     2 +-
 ...aseCluster.MiniHBaseClusterRegionServer.html |     4 +-
 .../hadoop/hbase/MockRegionServerServices.html  |   266 +-
 ...entOperationTimeout.DelayedRegionServer.html |     4 +-
 ...cing.BlockCompactionsInCompletionRegion.html |     2 +-
 ...tIOFencing.BlockCompactionsInPrepRegion.html |     2 +-
 .../TestIOFencing.CompactionBlockerRegion.html  |     2 +-
 .../hbase/TestLocalHBaseCluster.MyHMaster.html  |     4 +-
 .../TestLocalHBaseCluster.MyHRegionServer.html  |     4 +-
 ...ovedRegionsCleaner.TestMockRegionServer.html |     4 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hadoop/hbase/class-use/HBaseTestCase.html   |     8 +-
 .../hbase/class-use/HBaseTestingUtility.html    |    15 +-
 ...rRPCTimeout.RegionServerWithScanTimeout.html |     4 +-
 .../hadoop/hbase/client/TestFromClientSide.html |    54 +-
 ...stFromClientSideScanExcpetion.MyHRegion.html |     2 +-
 ...taCache.RegionServerWithFakeRpcServices.html |     4 +-
 ...ook.CompactionCompletionNotifyingRegion.html |     2 +-
 ...FilesEndpoint.HRegionForRefreshHFilesEP.html |     2 +-
 .../hbase/io/encoding/TestEncodedSeekers.html   |    44 +-
 .../hbase/io/hfile/TestBlockCacheReporting.html |    46 +-
 .../hfile/TestCacheConfig.DataCacheEntry.html   |    26 +-
 .../io/hfile/TestCacheConfig.Deserializer.html  |    14 +-
 .../hfile/TestCacheConfig.IndexCacheEntry.html  |     8 +-
 .../hfile/TestCacheConfig.MetaCacheEntry.html   |     6 +-
 .../hadoop/hbase/io/hfile/TestCacheConfig.html  |    67 +-
 .../TestCacheOnWrite.CacheOnWriteType.html      |    22 +-
 .../hadoop/hbase/io/hfile/TestCacheOnWrite.html |    50 +-
 .../io/hfile/TestForceCacheImportantBlocks.html |     4 +-
 .../apache/hadoop/hbase/io/hfile/TestHFile.html |    52 +-
 .../hfile/TestHFileBlock.BlockReaderThread.html |    16 +-
 .../hadoop/hbase/io/hfile/TestHFileBlock.html   |    82 +-
 .../hbase/io/hfile/TestHFileBlockIndex.html     |    14 +-
 .../hfile/TestLazyDataBlockDecompression.html   |     8 +-
 .../hadoop/hbase/io/hfile/TestPrefetch.html     |    69 +-
 .../io/hfile/TestScannerFromBucketCache.html    |   109 +-
 .../io/hfile/TestScannerSelectionUsingTTL.html  |    36 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     2 +-
 .../MockRegionServer.RegionNameAndIndex.html    |    12 +-
 .../hadoop/hbase/master/MockRegionServer.html   |   362 +-
 .../TestCloseAnOpeningRegion.MockHMaster.html   |     4 +-
 .../master/TestGetReplicationLoad.MyMaster.html |     4 +-
 .../master/TestMasterMetrics.MyMaster.html      |     4 +-
 .../TestMasterMetrics.MyRegionServer.html       |     4 +-
 .../hbase/master/TestMasterNotCarryTable.html   |    17 +-
 .../TestMetaShutdownHandler.MyRegionServer.html |     4 +-
 .../hadoop/hbase/master/TestRestartCluster.html |    44 +-
 .../TestShutdownBackupMaster.MockHMaster.html   |     4 +-
 ...dToMultipleRegionServers.HMasterForTest.html |     4 +-
 ...tReportOnlineRegionsRace.HMasterForTest.html |     4 +-
 ...TransitionFromDeadServer.HMasterForTest.html |     4 +-
 ...gionStateTransitionRetry.HMasterForTest.html |     4 +-
 .../procedure/TestServerCrashProcedure.html     |    66 +-
 .../TestServerCrashProcedureWithReplicas.html   |     2 +-
 ...PeerWorkerWhenRestarting.HMasterForTest.html |     4 +-
 .../hadoop/hbase/mob/TestMobFileCache.html      |   101 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     8 +-
 .../hadoop/hbase/procedure/package-tree.html    |     8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     4 +-
 .../hadoop/hbase/quotas/TestQuotaThrottle.html  |    70 +-
 .../hbase/regionserver/OOMERegionServer.html    |     4 +-
 .../TestAtomicOperation.AtomicOperation.html    |    14 +-
 .../TestAtomicOperation.CheckAndPutThread.html  |     8 +-
 .../TestAtomicOperation.Incrementer.html        |    12 +-
 ...micOperation.MockHRegion.WrappedRowLock.html |     8 +-
 .../TestAtomicOperation.MockHRegion.html        |     8 +-
 .../TestAtomicOperation.PutThread.html          |     8 +-
 .../TestAtomicOperation.TestStep.html           |    16 +-
 .../hbase/regionserver/TestAtomicOperation.html |    64 +-
 .../hbase/regionserver/TestBlocksRead.html      |   133 +-
 .../hbase/regionserver/TestBlocksScanned.html   |   118 +-
 ...stCacheOnWriteInSchema.CacheOnWriteType.html |    20 +-
 .../regionserver/TestCacheOnWriteInSchema.html  |    42 +-
 .../regionserver/TestClearRegionBlockCache.html |     6 +-
 ...onInDeadRegionServer.IgnoreYouAreDeadRS.html |     4 +-
 .../regionserver/TestCompoundBloomFilter.html   |    46 +-
 .../hbase/regionserver/TestHMobStore.html       |   207 +-
 .../TestHRegion.HRegionForTesting.html          |     2 +-
 .../TestHRegion.HRegionWithSeqId.html           |     2 +-
 .../hbase/regionserver/TestHStoreFile.html      |    72 +-
 .../regionserver/TestMobStoreCompaction.html    |   108 +-
 .../regionserver/TestMultiColumnScanner.html    |    52 +-
 ...penSeqNumUnexpectedIncrease.MockHRegion.html |     2 +-
 ...Initializing.RegisterAndDieRegionServer.html |     4 +-
 .../hbase/regionserver/TestRSStatusServlet.html |    32 +-
 .../hbase/regionserver/TestRecoveredEdits.html  |    65 +-
 ...egionMergeTransactionOnCluster.MyMaster.html |     4 +-
 ...tRegionServerAbort.ErrorThrowingHRegion.html |     2 +-
 ...egionServerReportForDuty.MyRegionServer.html |     4 +-
 ...verReportForDuty.NeverInitializedMaster.html |     4 +-
 ...annerHeartbeatMessages.HeartbeatHRegion.html |     2 +-
 ...eartbeatMessages.HeartbeatHRegionServer.html |     4 +-
 ...stShutdownWhileWALBroken.MyRegionServer.html |     4 +-
 .../TestSplitTransactionOnCluster.MyMaster.html |     4 +-
 .../hadoop/hbase/regionserver/package-tree.html |     8 +-
 ...stReplicationProcedureRetry.MockHMaster.html |     4 +-
 ...icationSource.ShutdownDelayRegionServer.html |     4 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     2 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 testdevapidocs/overview-tree.html               |     2 +-
 ...lity.PortAllocator.AvailablePortChecker.html |  8417 +++---
 .../HBaseTestingUtility.PortAllocator.html      |  8417 +++---
 .../HBaseTestingUtility.SeenRowTracker.html     |  8417 +++---
 .../hadoop/hbase/HBaseTestingUtility.html       |  8417 +++---
 .../hadoop/hbase/MockRegionServerServices.html  |   673 +-
 ...oShippedBlocks.CompactorInternalScanner.html |     4 +-
 ...toShippedBlocks.CompactorRegionObserver.html |     4 +-
 ...ferencesIntoShippedBlocks.ScannerThread.html |     4 +-
 ...estAvoidCellReferencesIntoShippedBlocks.html |     4 +-
 ...ionFromClient.CustomInnerRegionObserver.html |    20 +-
 ...Client.CustomInnerRegionObserverWrapper.html |    20 +-
 ...stBlockEvictionFromClient.CustomScanner.html |    20 +-
 .../TestBlockEvictionFromClient.GetThread.html  |    20 +-
 ...tBlockEvictionFromClient.MultiGetThread.html |    20 +-
 .../TestBlockEvictionFromClient.ScanThread.html |    20 +-
 .../client/TestBlockEvictionFromClient.html     |    20 +-
 .../hadoop/hbase/client/TestFromClientSide.html |  2931 +-
 .../hbase/io/encoding/TestEncodedSeekers.html   |   274 +-
 .../hbase/io/hfile/TestBlockCacheReporting.html |   275 +-
 .../hfile/TestCacheConfig.DataCacheEntry.html   |   687 +-
 .../io/hfile/TestCacheConfig.Deserializer.html  |   687 +-
 .../hfile/TestCacheConfig.IndexCacheEntry.html  |   687 +-
 .../hfile/TestCacheConfig.MetaCacheEntry.html   |   687 +-
 .../hadoop/hbase/io/hfile/TestCacheConfig.html  |   687 +-
 .../TestCacheOnWrite.CacheOnWriteType.html      |   394 +-
 .../hadoop/hbase/io/hfile/TestCacheOnWrite.html |   394 +-
 .../io/hfile/TestForceCacheImportantBlocks.html |   104 +-
 .../apache/hadoop/hbase/io/hfile/TestHFile.html |  1051 +-
 .../hfile/TestHFileBlock.BlockReaderThread.html |  1703 +-
 .../hadoop/hbase/io/hfile/TestHFileBlock.html   |  1703 +-
 .../TestHFileBlockIndex.BlockReaderWrapper.html |   502 +-
 .../hbase/io/hfile/TestHFileBlockIndex.html     |   502 +-
 .../hfile/TestLazyDataBlockDecompression.html   |   308 +-
 .../hadoop/hbase/io/hfile/TestPrefetch.html     |   326 +-
 .../io/hfile/TestScannerFromBucketCache.html    |   590 +-
 .../TestScannerSelectionUsingKeyRange.html      |    29 +-
 .../io/hfile/TestScannerSelectionUsingTTL.html  |   227 +-
 .../MockRegionServer.RegionNameAndIndex.html    |  1377 +-
 .../hadoop/hbase/master/MockRegionServer.html   |  1377 +-
 .../hbase/master/TestMasterNotCarryTable.html   |    16 +-
 .../hadoop/hbase/master/TestRestartCluster.html |   483 +-
 .../procedure/TestServerCrashProcedure.html     |   340 +-
 .../hadoop/hbase/mob/TestMobFileCache.html      |   346 +-
 .../hadoop/hbase/quotas/TestQuotaThrottle.html  |   239 +-
 .../DataBlockEncodingTool.Manipulation.html     |    13 +-
 .../regionserver/DataBlockEncodingTool.html     |    13 +-
 .../EncodedSeekPerformanceTest.html             |     2 +-
 .../TestAtomicOperation.AtomicOperation.html    |  1398 +-
 .../TestAtomicOperation.CheckAndPutThread.html  |  1398 +-
 .../TestAtomicOperation.Incrementer.html        |  1398 +-
 ...micOperation.MockHRegion.WrappedRowLock.html |  1398 +-
 .../TestAtomicOperation.MockHRegion.html        |  1398 +-
 .../TestAtomicOperation.PutThread.html          |  1398 +-
 .../TestAtomicOperation.TestStep.html           |  1398 +-
 .../hbase/regionserver/TestAtomicOperation.html |  1398 +-
 .../hbase/regionserver/TestBlocksRead.html      |   816 +-
 .../hbase/regionserver/TestBlocksScanned.html   |   228 +-
 ...stCacheOnWriteInSchema.CacheOnWriteType.html |   286 +-
 .../regionserver/TestCacheOnWriteInSchema.html  |   286 +-
 .../hbase/regionserver/TestCleanupMetaWAL.html  |    31 +-
 .../regionserver/TestClearRegionBlockCache.html |   110 +-
 .../regionserver/TestCompoundBloomFilter.html   |   550 +-
 .../hbase/regionserver/TestHMobStore.html       |  1044 +-
 .../hbase/regionserver/TestHStoreFile.html      |  1770 +-
 .../regionserver/TestMobStoreCompaction.html    |   846 +-
 .../regionserver/TestMultiColumnScanner.html    |   529 +-
 .../hbase/regionserver/TestRSStatusServlet.html |   251 +-
 .../hbase/regionserver/TestRecoveredEdits.html  |   388 +-
 .../regionserver/TestRowPrefixBloomFilter.html  |     2 +-
 ...BulkLoadManager.MyExceptionToAvoidRetry.html |     2 +-
 .../regionserver/TestSecureBulkLoadManager.html |     2 +-
 447 files changed, 258728 insertions(+), 258597 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 489a2b1..da6bdeb 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -611,7 +611,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-12-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-12-18</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 5edfe76..61a72b1 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:20181215143220+00'00')
-/CreationDate (D:20181215144907+00'00')
+/ModDate (D:20181218143412+00'00')
+/CreationDate (D:20181218145148+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index eb3d342..afdb9f1 100644
--- a/book.html
+++ b/book.html
@@ -41371,7 +41371,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-12-15 14:32:20 UTC
+Last updated 2018-12-18 14:34:12 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 5a2090e..55eea1f 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="20181215" />
+    <meta name="Date-Revision-yyyymmdd" content="20181218" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -316,7 +316,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-12-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-12-18</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/4f8b8424/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
index 79cb21b..d8d391b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.HFileScannerImpl.html
@@ -378,1508 +378,1510 @@
 <span class="sourceLineNo">370</span><a name="line.370"></a>
 <span class="sourceLineNo">371</span>  @Override<a name="line.371"></a>
 <span class="sourceLineNo">372</span>  public void returnBlock(HFileBlock block) {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    BlockCache blockCache = this.cacheConf.getBlockCache();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (blockCache != null &amp;&amp; block != null) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      BlockCacheKey cacheKey = new BlockCacheKey(this.getFileContext().getHFileName(),<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          block.getOffset(), this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      blockCache.returnBlock(cacheKey, block);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   *         first KeyValue.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    if (dataBlockIndexReader == null) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      throw new BlockIndexNotLoadedException();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   *<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return the first row key, or null if the file is empty.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  @Override<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // We have to copy the row part to form the row key alone<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  /**<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   *<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return the last row key, or null if the file is empty.<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  @Override<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    // We have to copy the row part to form the row key alone<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    return getLastKey().map(CellUtil::cloneRow);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  /** @return number of KV entries in this HFile */<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public long getEntries() {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    return trailer.getEntryCount();<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>  /** @return comparator */<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  @Override<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  public CellComparator getComparator() {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    return comparator;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  /** @return compression algorithm */<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    return compressAlgo;<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>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  @Override<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public long indexSize() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>            : 0);<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>  @Override<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  public String getName() {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    return name;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  @Override<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    return dataBlockIndexReader;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>  @Override<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public FixedFileTrailer getTrailer() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    return trailer;<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>  @Override<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public boolean isPrimaryReplicaReader() {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    return primaryReplicaReader;<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>  @Override<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * is invoked on a scanner that is not seeked.<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  @SuppressWarnings("serial")<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    public NotSeekedException() {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      super("Not seeked to a key/value");<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>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    private ByteBuff blockBuffer;<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    protected final boolean cacheBlocks;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    protected final boolean pread;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    protected final boolean isCompaction;<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    private int currKeyLen;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    private int currValueLen;<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    private int currMemstoreTSLen;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    private long currMemstoreTS;<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    // Updated but never read?<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    protected final HFile.Reader reader;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    private int currTagsLen;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    // buffer backed keyonlyKV<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>    /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.502"></a>
-<span class="sourceLineNo">503</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.503"></a>
-<span class="sourceLineNo">504</span>     * current data block is the last data block.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>     *<a name="line.505"></a>
-<span class="sourceLineNo">506</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>     */<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    protected Cell nextIndexedKey;<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    // Current block being used<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    protected HFileBlock curBlock;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Previous blocks that were used in the course of the read<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        final boolean pread, final boolean isCompaction) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      this.reader = reader;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      this.cacheBlocks = cacheBlocks;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.pread = pread;<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      this.isCompaction = isCompaction;<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    }<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>    void updateCurrBlockRef(HFileBlock block) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        return;<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      }<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        prevBlocks.add(this.curBlock);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      this.curBlock = block;<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>    void reset() {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>        this.prevBlocks.add(this.curBlock);<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      }<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      this.curBlock = null;<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>    private void returnBlockToCache(HFileBlock block) {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (LOG.isTraceEnabled()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.trace("Returning the block : " + block);<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      this.reader.returnBlock(block);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span><a name="line.548"></a>
-<span class="sourceLineNo">549</span>    private void returnBlocks(boolean returnAll) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      }<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      this.prevBlocks.clear();<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        returnBlockToCache(this.curBlock);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        this.curBlock = null;<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>    @Override<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    public boolean isSeeked(){<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return blockBuffer != null;<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>    @Override<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    public String toString() {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      if (!isSeeked())<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        throw new NotSeekedException();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>    @Override<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    public HFile.Reader getReader() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      return reader;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    private int getKVBufSize() {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      if (currTagsLen &gt; 0) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      return kvBufSize;<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>    @Override<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    public void close() {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      if (!pread) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        reader.unbufferStream();<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      this.returnBlocks(true);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
-<span class="sourceLineNo">598</span><a name="line.598"></a>
-<span class="sourceLineNo">599</span>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    // HFile block's buffer so as to position to the next cell.<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private int getCurCellSerializedSize() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.602"></a>
-<span class="sourceLineNo">603</span>          + currMemstoreTSLen;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      }<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return curCellSize;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    protected void readKeyValueLen() {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      // byte buffer array a byte at a time.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      // earlier way is better by doing mark and reset?<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      // But ensure that you read long instead of two ints<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      // Read top half as an int of key length and bottom int as value length<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      checkKeyValueLen();<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        // Tags length is a short.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        checkTagsLen();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      readMvccVersion(p);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
-<span class="sourceLineNo">635</span><a name="line.635"></a>
-<span class="sourceLineNo">636</span>    private final void checkTagsLen() {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      if (checkLen(this.currTagsLen)) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.638"></a>
-<span class="sourceLineNo">639</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.639"></a>
-<span class="sourceLineNo">640</span>            this.blockBuffer.limit() +<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    }<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    /**<a name="line.645"></a>
-<span class="sourceLineNo">646</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>     * @param offsetFromPos<a name="line.647"></a>
-<span class="sourceLineNo">648</span>     */<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      // See if we even need to decode mvcc.<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        currMemstoreTS = 0;<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        currMemstoreTSLen = 1;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>        return;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      _readMvccVersion(offsetFromPos);<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span><a name="line.659"></a>
-<span class="sourceLineNo">660</span>    /**<a name="line.660"></a>
-<span class="sourceLineNo">661</span>     * Actually do the mvcc read. Does no checks.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>     * @param offsetFromPos<a name="line.662"></a>
-<span class="sourceLineNo">663</span>     */<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      // Also the method is kept small so can be inlined.<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      if (len == 1) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        this.currMemstoreTS = firstByte;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      } else {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>        int remaining = len -1;<a name="line.673"></a>
-<span class="sourceLineNo">674</span>        long i = 0;<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        offsetFromPos++;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.679"></a>
-<span class="sourceLineNo">680</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          i = i &lt;&lt; 16;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          i = i | (s &amp; 0xFFFF);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          i = i &lt;&lt; 8;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>          i = i | (b &amp; 0xFF);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        }<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      }<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      this.currMemstoreTSLen = len;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    /**<a name="line.699"></a>
-<span class="sourceLineNo">700</span>     * Within a loaded block, seek looking for the last key that is smaller than<a name="line.700"></a>
-<span class="sourceLineNo">701</span>     * (or equal to?) the key we are interested in.<a name="line.701"></a>
-<span class="sourceLineNo">702</span>     * A note on the seekBefore: if you have seekBefore = true, AND the first<a name="line.702"></a>
-<span class="sourceLineNo">703</span>     * key in the block = key, then you'll get thrown exceptions. The caller has<a name="line.703"></a>
-<span class="sourceLineNo">704</span>     * to check for that case and load the previous block as appropriate.<a name="line.704"></a>
-<span class="sourceLineNo">705</span>     * @param key<a name="line.705"></a>
-<span class="sourceLineNo">706</span>     *          the key to find<a name="line.706"></a>
-<span class="sourceLineNo">707</span>     * @param seekBefore<a name="line.707"></a>
-<span class="sourceLineNo">708</span>     *          find the key before the given key in case of exact match.<a name="line.708"></a>
-<span class="sourceLineNo">709</span>     * @return 0 in case of an exact key match, 1 in case of an inexact match,<a name="line.709"></a>
-<span class="sourceLineNo">710</span>     *         -2 in case of an inexact match and furthermore, the input key<a name="line.710"></a>
-<span class="sourceLineNo">711</span>     *         less than the first key of current block(e.g. using a faked index<a name="line.711"></a>
-<span class="sourceLineNo">712</span>     *         key)<a name="line.712"></a>
-<span class="sourceLineNo">713</span>     */<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    protected int blockSeek(Cell key, boolean seekBefore) {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>      int klen, vlen, tlen = 0;<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      int lastKeyValueSize = -1;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      int offsetFromPos;<a name="line.717"></a>
-<span class="sourceLineNo">718</span>      do {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>        offsetFromPos = 0;<a name="line.719"></a>
-<span class="sourceLineNo">720</span>        // Better to ensure that we use the BB Utils here<a name="line.720"></a>
-<span class="sourceLineNo">721</span>        long ll = blockBuffer.getLongAfterPosition(offsetFromPos);<a name="line.721"></a>
-<span class="sourceLineNo">722</span>        klen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>        vlen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.723"></a>
-<span class="sourceLineNo">724</span>        if (checkKeyLen(klen) || checkLen(vlen)) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>          throw new IllegalStateException("Invalid klen " + klen + " or vlen "<a name="line.725"></a>
-<span class="sourceLineNo">726</span>              + vlen + ". Block offset: "<a name="line.726"></a>
-<span class="sourceLineNo">727</span>              + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.727"></a>
-<span class="sourceLineNo">728</span>              + blockBuffer.position() + " (without header).");<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        }<a name="line.729"></a>
-<span class="sourceLineNo">730</span>        offsetFromPos += Bytes.SIZEOF_LONG;<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        blockBuffer.asSubByteBuffer(blockBuffer.position() + offsetFromPos, klen, pair);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>        bufBackedKeyOnlyKv.setKey(pair.getFirst(), pair.getSecond(), klen);<a name="line.732"></a>
-<span class="sourceLineNo">733</span>        int comp =<a name="line.733"></a>
-<span class="sourceLineNo">734</span>            PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), key, bufBackedKeyOnlyKv);<a name="line.734"></a>
-<span class="sourceLineNo">735</span>        offsetFromPos += klen + vlen;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>        if (this.reader.getFileContext().isIncludesTags()) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>          // Read short as unsigned, high byte first<a name="line.737"></a>
-<span class="sourceLineNo">738</span>          tlen = ((blockBuffer.getByteAfterPosition(offsetFromPos) &amp; 0xff) &lt;&lt; 8)<a name="line.738"></a>
-<span class="sourceLineNo">739</span>              ^ (blockBuffer.getByteAfterPosition(offsetFromPos + 1) &amp; 0xff);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>          if (checkLen(tlen)) {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>            throw new IllegalStateException("Invalid tlen " + tlen + ". Block offset: "<a name="line.741"></a>
-<span class="sourceLineNo">742</span>                + curBlock.getOffset() + ", block length: " + blockBuffer.limit() + ", position: "<a name="line.742"></a>
-<span class="sourceLineNo">743</span>                + blockBuffer.position() + " (without header).");<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          }<a name="line.744"></a>
-<span class="sourceLineNo">745</span>          // add the two bytes read for the tags.<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          offsetFromPos += tlen + (Bytes.SIZEOF_SHORT);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        }<a name="line.747"></a>
-<span class="sourceLineNo">748</span>        if (this.reader.shouldIncludeMemStoreTS()) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>          // Directly read the mvcc based on current position<a name="line.749"></a>
-<span class="sourceLineNo">750</span>          readMvccVersion(offsetFromPos);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>        }<a name="line.751"></a>
-<span class="sourceLineNo">752</span>        if (comp == 0) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>          if (seekBefore) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span>            if (lastKeyValueSize &lt; 0) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>              throw new IllegalStateException("blockSeek with seekBefore "<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  + "at the first key of the block: key=" + CellUtil.getCellKeyAsString(key)<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                  + ", blockOffset=" + curBlock.getOffset() + ", onDiskSize="<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                  + curBlock.getOnDiskSizeWithHeader());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            readKeyValueLen();<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            return 1; // non exact match.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>          }<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          currKeyLen = klen;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          currValueLen = vlen;<a name="line.765"></a>
-<span class="sourceLineNo">766</span>          currTagsLen = tlen;<a name="line.766"></a>
-<span class="sourceLineNo">767</span>          return 0; // indicate exact match<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        } else if (comp &lt; 0) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          if (lastKeyValueSize &gt; 0) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>            blockBuffer.moveBack(lastKeyValueSize);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          readKeyValueLen();<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          if (lastKeyValueSize == -1 &amp;&amp; blockBuffer.position() == 0) {<a name="line.773"></a>
-<span class="sourceLineNo">774</span>            return HConstants.INDEX_KEY_MAGIC;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          }<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          return 1;<a name="line.776"></a>
-<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
-<span class="sourceLineNo">778</span>        // The size of this key/value tuple, including key/value length fields.<a name="line.778"></a>
-<span class="sourceLineNo">779</span>        lastKeyValueSize = klen + vlen + currMemstoreTSLen + KEY_VALUE_LEN_SIZE;<a name="line.779"></a>
-<span class="sourceLineNo">780</span>        // include tag length also if tags included with KV<a name="line.780"></a>
-<span class="sourceLineNo">781</span>        if (reader.getFileContext().isIncludesTags()) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>          lastKeyValueSize += tlen + Bytes.SIZEOF_SHORT;<a name="line.782"></a>
-<span class="sourceLineNo">783</span>        }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>        blockBuffer.skip(lastKeyValueSize);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      } while (blockBuffer.hasRemaining());<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>      // Seek to the last key we successfully read. This will happen if this is<a name="line.787"></a>
-<span class="sourceLineNo">788</span>      // the last key/value pair in the file, in which case the following call<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      // to next() has to return false.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      blockBuffer.moveBack(lastKeyValueSize);<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      readKeyValueLen();<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      return 1; // didn't exactly find it.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    }<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    @Override<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    public Cell getNextIndexedKey() {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      return nextIndexedKey;<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>    @Override<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    public int seekTo(Cell key) throws IOException {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      return seekTo(key, true);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span>    @Override<a name="line.805"></a>
-<span class="sourceLineNo">806</span>    public int reseekTo(Cell key) throws IOException {<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      int compared;<a name="line.807"></a>
-<span class="sourceLineNo">808</span>      if (isSeeked()) {<a name="line.808"></a>
-<span class="sourceLineNo">809</span>        compared = compareKey(reader.getComparator(), key);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>        if (compared &lt; 1) {<a name="line.810"></a>
-<span class="sourceLineNo">811</span>          // If the required key is less than or equal to current key, then<a name="line.811"></a>
-<span class="sourceLineNo">812</span>          // don't do anything.<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          return compared;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>        } else {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>          // The comparison with no_next_index_key has to be checked<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          if (this.nextIndexedKey != null &amp;&amp;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>              (this.nextIndexedKey == KeyValueScanner.NO_NEXT_INDEXED_KEY || PrivateCellUtil<a name="line.817"></a>
-<span class="sourceLineNo">818</span>                  .compareKeyIgnoresMvcc(reader.getComparator(), key, nextIndexedKey) &lt; 0)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            // The reader shall continue to scan the current data block instead<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            // of querying the<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            // block index as long as it knows the target key is strictly<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            // smaller than<a name="line.822"></a>
-<span class="sourceLineNo">823</span>            // the next indexed key or the current data block is the last data<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // block.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            return loadBlockAndSeekToKey(this.curBlock, nextIndexedKey, false, key,<a name="line.825"></a>
-<span class="sourceLineNo">826</span>                false);<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      }<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      // Don't rewind on a reseek operation, because reseek implies that we are<a name="line.831"></a>
-<span class="sourceLineNo">832</span>      // always going forward in the file.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      return seekTo(key, false);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    }<a name="line.834"></a>
-<span class="sourceLineNo">835</span><a name="line.835"></a>
-<span class="sourceLineNo">836</span>    /**<a name="line.836"></a>
-<span class="sourceLineNo">837</span>     * An internal API function. Seek to the given key, optionally rewinding to<a name="line.837"></a>
-<span class="sourceLineNo">838</span>     * the first key of the block before doing the seek.<a name="line.838"></a>
-<span class="sourceLineNo">839</span>     *<a name="line.839"></a>
-<span class="sourceLineNo">840</span>     * @param key - a cell representing the key that we need to fetch<a name="line.840"></a>
-<span class="sourceLineNo">841</span>     * @param rewind whether to rewind to the first key of the block before<a name="line.841"></a>
-<span class="sourceLineNo">842</span>     *        doing the seek. If this is false, we are assuming we never go<a name="line.842"></a>
-<span class="sourceLineNo">843</span>     *        back, otherwise the result is undefined.<a name="line.843"></a>
-<span class="sourceLineNo">844</span>     * @return -1 if the key is earlier than the first key of the file,<a name="line.844"></a>
-<span class="sourceLineNo">845</span>     *         0 if we are at the given key, 1 if we are past the given key<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     *         -2 if the key is earlier than the first key of the file while<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     *         using a faked index key<a name="line.847"></a>
-<span class="sourceLineNo">848</span>     * @throws IOException<a name="line.848"></a>
-<span class="sourceLineNo">849</span>     */<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    public int seekTo(Cell key, boolean rewind) throws IOException {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      HFileBlockIndex.BlockIndexReader indexReader = reader.getDataBlockIndexReader();<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      BlockWithScanInfo blockWithScanInfo = indexReader.loadDataBlockWithScanInfo(key, curBlock,<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          cacheBlocks, pread, isCompaction, getEffectiveDataBlockEncoding());<a name="line.853"></a>
-<span class="sourceLineNo">854</span>      if (blockWithScanInfo == null || blockWithScanInfo.getHFileBlock() == null) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>        // This happens if the key e.g. falls before the beginning of the<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        // file.<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        return -1;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      return loadBlockAndSeekToKey(blockWithScanInfo.getHFileBlock(),<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          blockWithScanInfo.getNextIndexedKey(), rewind, key, false);<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
-<span class="sourceLineNo">862</span><a name="line.862"></a>
-<span class="sourceLineNo">863</span>    @Override<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    public boolean seekBefore(Cell key) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>      HFileBlock seekToBlock = reader.getDataBlockIndexReader().seekToDataBlock(key, curBlock,<a name="line.865"></a>
-<span class="sourceLineNo">866</span>          cacheBlocks, pread, isCompaction, reader.getEffectiveEncodingInCache(isCompaction));<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (seekToBlock == null) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        return false;<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      Cell firstKey = getFirstKeyCellInBlock(seekToBlock);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      if (PrivateCellUtil.compareKeyIgnoresMvcc(reader.getComparator(), firstKey, key) &gt;= 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        long previousBlockOffset = seekToBlock.getPrevBlockOffset();<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        // The key we are interested in<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        if (previousBlockOffset == -1) {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>          // we have a 'problem', the key we want is the first of the file.<a name="line.875"></a>
-<span class="sourceLineNo">876</span>          return false;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // The first key in the current block 'seekToBlock' is greater than the given<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        // seekBefore key. We will go ahead by reading the next block that satisfies the<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        // given key. Return the current block before reading the next one.<a name="line.881"></a>
-<span class="sourceLineNo">882</span>        reader.returnBlock(seekToBlock);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        // It is important that we compute and pass onDiskSize to the block<a name="line.883"></a>
-<span class="sourceLineNo">884</span>        // reader so that it does not have to read the header separately to<a name="line.884"></a>
-<span class="sourceLineNo">885</span>        // figure out the size.  Currently, we do not have a way to do this<a name="line.885"></a>
-<span class="sourceLineNo">886</span>        // correctly in the general case however.<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        // TODO: See https://issues.apache.org/jira/browse/HBASE-14576<a name="line.887"></a>
-<span class="sourceLineNo">888</span>        int prevBlockSize = -1;<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        seekToBlock = reader.readBlock(previousBlockOffset,<a name="line.889"></a>
-<span class="sourceLineNo">890</span>            prevBlockSize, cacheBlocks,<a name="line.890"></a>
-<span class="sourceLineNo">891</span>            pread, isCompaction, true, BlockType.DATA, getEffectiveDataBlockEncoding());<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        // TODO shortcut: seek forward in this block to the last key of the<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        // block.<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>      loadBlockAndSeekToKey(seekToBlock, firstKey, true, key, true);<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      return true;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>    /**<a name="line.899"></a>
-<span class="sourceLineNo">900</span>     * Scans blocks in the "scanned" section of the {@link HFile} until the next<a name="line.900"></a>
-<span class="sourceLineNo">901</span>     * data block is found.<a name="line.901"></a>
-<span class="sourceLineNo">902</span>     *<a name="line.902"></a>
-<span class="sourceLineNo">903</span>     * @return the next block, or null if there are no more data blocks<a name="line.903"></a>
-<span class="sourceLineNo">904</span>     * @throws IOException<a name="line.904"></a>
-<span class="sourceLineNo">905</span>     */<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NP_NULL_ON_SOME_PATH",<a name="line.906"></a>
-<span class="sourceLineNo">907</span>        justification="Yeah, unnecessary null check; could do w/ clean up")<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    protected HFileBlock readNextDataBlock() throws IOException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>      long lastDataBlockOffset = reader.getTrailer().getLastDataBlockOffset();<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (curBlock == null)<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        return null;<a name="line.911"></a>
-<span class="sourceLineNo">912</span><a name="line.912"></a>
-<span class="sourceLineNo">913</span>      HFileBlock block = this.curBlock;<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>      do {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>        if (block.getOffset() &gt;= lastDataBlockOffset) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>          return null;<a name="line.917"></a>
-<span class="sourceLineNo">918</span>        }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>        if (block.getOffset() &lt; 0) {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>          throw new IOException("Invalid block file offset: " + block);<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        }<a name="line.922"></a>
-<span class="sourceLineNo">923</span><a name="line.923"></a>
-<span class="sourceLineNo">924</span>        // We are reading the next block without block type validation, because<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        // it might turn out to be a non-data block.<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        block = reader.readBlock(block.getOffset() + block.getOnDiskSizeWithHeader(),<a name="line.926"></a>
-<span class="sourceLineNo">927</span>            block.getNextBlockOnDiskSize(), cacheBlocks, pread,<a name="line.927"></a>
-<span class="sourceLineNo">928</span>            isCompaction, true, null, getEffectiveDataBlockEncoding());<a name="line.928"></a>
-<span class="sourceLineNo">929</span>        if (block != null &amp;&amp; !block.getBlockType().isData()) { // Findbugs: NP_NULL_ON_SOME_PATH<a name="line.929"></a>
-<span class="sourceLineNo">930</span>          // Whatever block we read we will be returning it unless<a name="line.930"></a>
-<span class="sourceLineNo">931</span>          // it is a datablock. Just in case the blocks are non data blocks<a name="line.931"></a>
-<span class="sourceLineNo">932</span>          reader.returnBlock(block);<a name="line.932"></a>
-<span class="sourceLineNo">933</span>        }<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      } while (!block.getBlockType().isData());<a name="line.934"></a>
-<span class="sourceLineNo">935</span><a name="line.935"></a>
-<span class="sourceLineNo">936</span>      return block;<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">373</span>    if (block != null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      this.cacheConf.getBlockCache().ifPresent(blockCache -&gt; {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        BlockCacheKey cacheKey =<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            new BlockCacheKey(this.getFileContext().getHFileName(), block.getOffset(),<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                this.isPrimaryReplicaReader(), block.getBlockType());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        blockCache.returnBlock(cacheKey, block);<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>  }<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>   * @return the first key in the file. May be null if file has no entries. Note<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   *         that this is not the first row key, but rather the byte form of the<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   *         first KeyValue.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  public Optional&lt;Cell&gt; getFirstKey() {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    if (dataBlockIndexReader == null) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      throw new BlockIndexNotLoadedException();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return dataBlockIndexReader.isEmpty() ? Optional.empty()<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        : Optional.of(dataBlockIndexReader.getRootBlockKey(0));<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>   * TODO left from {@link HFile} version 1: move this to StoreFile after Ryan's<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * patch goes in to eliminate {@link KeyValue} here.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   *<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * @return the first row key, or null if the file is empty.<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   */<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  @Override<a name="line.403"></a>
+<span class="sourceLineNo">404</span>  public Optional&lt;byte[]&gt; getFirstRowKey() {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    // We have to copy the row part to form the row key alone<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    return getFirstKey().map(CellUtil::cloneRow);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>  /**<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * TODO left from {@link HFile} version 1: move this to StoreFile after<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * Ryan's patch goes in to eliminate {@link KeyValue} here.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   *<a name="line.412"></a>
+<span class="sourceLineNo">413</span>   * @return the last row key, or null if the file is empty.<a name="line.413"></a>
+<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  public Optional&lt;byte[]&gt; getLastRowKey() {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    // We have to copy the row part to form the row key alone<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    return getLastKey().map(CellUtil::cloneRow);<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>  /** @return number of KV entries in this HFile */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  @Override<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  public long getEntries() {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    return trailer.getEntryCount();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  /** @return comparator */<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  @Override<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  public CellComparator getComparator() {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return comparator;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /** @return compression algorithm */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  @Override<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public Compression.Algorithm getCompressionAlgorithm() {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    return compressAlgo;<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>  /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return the total heap size of data and meta block indexes in bytes. Does<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   *         not take into account non-root blocks of a multilevel data index.<a name="line.441"></a>
+<span class="sourceLineNo">442</span>   */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  @Override<a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public long indexSize() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return (dataBlockIndexReader != null ? dataBlockIndexReader.heapSize() : 0)<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        + ((metaBlockIndexReader != null) ? metaBlockIndexReader.heapSize()<a name="line.446"></a>
+<span class="sourceLineNo">447</span>            : 0);<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>  @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>  public String getName() {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    return name;<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>  @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public HFileBlockIndex.BlockIndexReader getDataBlockIndexReader() {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    return dataBlockIndexReader;<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>  @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>  public FixedFileTrailer getTrailer() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    return trailer;<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>  @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>  public boolean isPrimaryReplicaReader() {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    return primaryReplicaReader;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>  }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>  @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  public FileInfo loadFileInfo() throws IOException {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    return fileInfo;<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>   * An exception thrown when an operation requiring a scanner to be seeked<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * is invoked on a scanner that is not seeked.<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  @SuppressWarnings("serial")<a name="line.479"></a>
+<span class="sourceLineNo">480</span>  public static class NotSeekedException extends IllegalStateException {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    public NotSeekedException() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      super("Not seeked to a key/value");<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><a name="line.485"></a>
+<span class="sourceLineNo">486</span>  protected static class HFileScannerImpl implements HFileScanner {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    private ByteBuff blockBuffer;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    protected final boolean cacheBlocks;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    protected final boolean pread;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    protected final boolean isCompaction;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    private int currKeyLen;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    private int currValueLen;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    private int currMemstoreTSLen;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>    private long currMemstoreTS;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Updated but never read?<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    protected AtomicInteger blockFetches = new AtomicInteger(0);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    protected final HFile.Reader reader;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    private int currTagsLen;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>    // buffer backed keyonlyKV<a name="line.499"></a>
+<span class="sourceLineNo">500</span>    private ByteBufferKeyOnlyKeyValue bufBackedKeyOnlyKv = new ByteBufferKeyOnlyKeyValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    // A pair for reusing in blockSeek() so that we don't garbage lot of objects<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    final ObjectIntPair&lt;ByteBuffer&gt; pair = new ObjectIntPair&lt;&gt;();<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>     * The next indexed key is to keep track of the indexed key of the next data block.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>     * If the nextIndexedKey is HConstants.NO_NEXT_INDEXED_KEY, it means that the<a name="line.506"></a>
+<span class="sourceLineNo">507</span>     * current data block is the last data block.<a name="line.507"></a>
+<span class="sourceLineNo">508</span>     *<a name="line.508"></a>
+<span class="sourceLineNo">509</span>     * If the nextIndexedKey is null, it means the nextIndexedKey has not been loaded yet.<a name="line.509"></a>
+<span class="sourceLineNo">510</span>     */<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    protected Cell nextIndexedKey;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    // Current block being used<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    protected HFileBlock curBlock;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    // Previous blocks that were used in the course of the read<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    protected final ArrayList&lt;HFileBlock&gt; prevBlocks = new ArrayList&lt;&gt;();<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>    public HFileScannerImpl(final HFile.Reader reader, final boolean cacheBlocks,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        final boolean pread, final boolean isCompaction) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      this.reader = reader;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      this.cacheBlocks = cacheBlocks;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      this.pread = pread;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>      this.isCompaction = isCompaction;<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>    void updateCurrBlockRef(HFileBlock block) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      if (block != null &amp;&amp; this.curBlock != null &amp;&amp;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>          block.getOffset() == this.curBlock.getOffset()) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        return;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        prevBlocks.add(this.curBlock);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      this.curBlock = block;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>    void reset() {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>      // We don't have to keep ref to EXCLUSIVE type of block<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      if (this.curBlock != null &amp;&amp; this.curBlock.usesSharedMemory()) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        this.prevBlocks.add(this.curBlock);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      this.curBlock = null;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private void returnBlockToCache(HFileBlock block) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      if (LOG.isTraceEnabled()) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        LOG.trace("Returning the block : " + block);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      this.reader.returnBlock(block);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    private void returnBlocks(boolean returnAll) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      for (int i = 0; i &lt; this.prevBlocks.size(); i++) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        returnBlockToCache(this.prevBlocks.get(i));<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>      this.prevBlocks.clear();<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (returnAll &amp;&amp; this.curBlock != null) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        returnBlockToCache(this.curBlock);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        this.curBlock = null;<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>    @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    public boolean isSeeked(){<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      return blockBuffer != null;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>    @Override<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    public String toString() {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>      return "HFileScanner for reader " + String.valueOf(getReader());<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>    protected void assertSeeked() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      if (!isSeeked())<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        throw new NotSeekedException();<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>    @Override<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    public HFile.Reader getReader() {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      return reader;<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>    // From non encoded HFiles, we always read back KeyValue or its descendant.(Note: When HFile<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    // block is in DBB, it will be OffheapKV). So all parts of the Cell is in a contiguous<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    // array/buffer. How many bytes we should wrap to make the KV is what this method returns.<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    private int getKVBufSize() {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      int kvBufSize = KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      if (currTagsLen &gt; 0) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>        kvBufSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      return kvBufSize;<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>    @Override<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    public void close() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      if (!pread) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        // For seek + pread stream socket should be closed when the scanner is closed. HBASE-9393<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        reader.unbufferStream();<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.returnBlocks(true);<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>    // Returns the #bytes in HFile for the current cell. Used to skip these many bytes in current<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    // HFile block's buffer so as to position to the next cell.<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    private int getCurCellSerializedSize() {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      int curCellSize =  KEY_VALUE_LEN_SIZE + currKeyLen + currValueLen<a name="line.605"></a>
+<span class="sourceLineNo">606</span>          + currMemstoreTSLen;<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      if (this.reader.getFileContext().isIncludesTags()) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        curCellSize += Bytes.SIZEOF_SHORT + currTagsLen;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      return curCellSize;<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>    protected void readKeyValueLen() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      // This is a hot method. We go out of our way to make this method short so it can be<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      // inlined and is not too big to compile. We also manage position in ByteBuffer ourselves<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      // because it is faster than going via range-checked ByteBuffer methods or going through a<a name="line.616"></a>
+<span class="sourceLineNo">617</span>      // byte buffer array a byte at a time.<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      // Get a long at a time rather than read two individual ints. In micro-benchmarking, even<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      // with the extra bit-fiddling, this is order-of-magnitude faster than getting two ints.<a name="line.619"></a>
+<span class="sourceLineNo">620</span>      // Trying to imitate what was done - need to profile if this is better or<a name="line.620"></a>
+<span class="sourceLineNo">621</span>      // earlier way is better by doing mark and reset?<a name="line.621"></a>
+<span class="sourceLineNo">622</span>      // But ensure that you read long instead of two ints<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      long ll = blockBuffer.getLongAfterPosition(0);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>      // Read top half as an int of key length and bottom int as value length<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      this.currKeyLen = (int)(ll &gt;&gt; Integer.SIZE);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>      this.currValueLen = (int)(Bytes.MASK_FOR_LOWER_INT_IN_LONG ^ ll);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>      checkKeyValueLen();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      // Move position past the key and value lengths and then beyond the key and value<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      int p = (Bytes.SIZEOF_LONG + currKeyLen + currValueLen);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>      if (reader.getFileContext().isIncludesTags()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        // Tags length is a short.<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        this.currTagsLen = blockBuffer.getShortAfterPosition(p);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        checkTagsLen();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        p += (Bytes.SIZEOF_SHORT + currTagsLen);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      readMvccVersion(p);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    private final void checkTagsLen() {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      if (checkLen(this.currTagsLen)) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        throw new IllegalStateException("Invalid currTagsLen " + this.currTagsLen +<a name="line.641"></a>
+<span class="sourceLineNo">642</span>          ". Block offset: " + curBlock.getOffset() + ", block length: " +<a name="line.642"></a>
+<span class="sourceLineNo">643</span>            this.blockBuffer.limit() +<a name="line.643"></a>
+<span class="sourceLineNo">644</span>          ", position: " + this.blockBuffer.position() + " (without header).");<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>    /**<a name="line.648"></a>
+<span class="sourceLineNo">649</span>     * Read mvcc. Does checks to see if we even need to read the mvcc at all.<a name="line.649"></a>
+<span class="sourceLineNo">650</span>     * @param offsetFromPos<a name="line.650"></a>
+<span class="sourceLineNo">651</span>     */<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    protected void readMvccVersion(final int offsetFromPos) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      // See if we even need to decode mvcc.<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      if (!this.reader.shouldIncludeMemStoreTS()) return;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!this.reader.isDecodeMemStoreTS()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        currMemstoreTS = 0;<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        currMemstoreTSLen = 1;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        return;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      _readMvccVersion(offsetFromPos);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>    /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>     * Actually do the mvcc read. Does no checks.<a name="line.664"></a>
+<span class="sourceLineNo">665</span>     * @param offsetFromPos<a name="line.665"></a>
+<span class="sourceLineNo">666</span>     */<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    private void _readMvccVersion(int offsetFromPos) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      // This is Bytes#bytesToVint inlined so can save a few instructions in this hot method; i.e.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      // previous if one-byte vint, we'd redo the vint call to find int size.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      // Also the method is kept small so can be inlined.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      byte firstByte = blockBuffer.getByteAfterPosition(offsetFromPos);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      int len = WritableUtils.decodeVIntSize(firstByte);<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      if (len == 1) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        this.currMemstoreTS = firstByte;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      } else {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        int remaining = len -1;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        long i = 0;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        offsetFromPos++;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>        if (remaining &gt;= Bytes.SIZEOF_INT) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>          // The int read has to be converted to unsigned long so the &amp; op<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          i = (blockBuffer.getIntAfterPosition(offsetFromPos) &amp; 0x00000000ffffffffL);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>          remaining -= Bytes.SIZEOF_INT;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>          offsetFromPos += Bytes.SIZEOF_INT;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        if (remaining &gt;= Bytes.SIZEOF_SHORT) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>          short s = blockBuffer.getShortAfterPosition(offsetFromPos);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>          i = i &lt;&lt; 16;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>          i = i | (s &amp; 0xFFFF);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          remaining -= Bytes.SIZEOF_SHORT;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          offsetFromPos += Bytes.SIZEOF_SHORT;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        for (int idx = 0; idx &lt; remaining; idx++) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>          byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>          i = i &lt;&lt; 8;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>          i = i | (b &amp; 0xFF);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        currMemstoreTS = (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>      this.currMemstoreTSLen = len;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>    /**<a name="line.702"></a>
+<span class="sourceLineNo">703</span>     * Within a loaded b

<TRUNCATED>