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/05/16 18:49:42 UTC

[01/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 71ce3ea4a -> ec5d5242a


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
index 47245bb..0e3d2ab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
@@ -100,203 +100,202 @@
 <span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * @param factory factory that made us, identity used for FS layout. may not be null<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   * @param conf may not be null<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param listeners may be null<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   *                   null<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    if (factory != null) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    this.factory = factory;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    this.conf = conf;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.106"></a>
+<span class="sourceLineNo">095</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   *                   null<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    if (factory != null) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.factory = factory;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.conf = conf;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><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><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  @Override<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public List&lt;WAL&gt; getWALs() {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    return Collections.singletonList(log);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private FSHLog createWAL() throws IOException {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  @Override<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    FSHLog log = this.log;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if (log != null) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      return log;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    synchronized (this) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      log = this.log;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      if (log == null) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        log = createWAL();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        this.log = log;<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>    return log;<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>  @Override<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public void close() throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    FSHLog log = this.log;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (log != null) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      log.close();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<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>  @Override<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  public void shutdown() throws IOException {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    FSHLog log = this.log;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    if (log != null) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      log.shutdown();<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><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static class IOTestWAL extends FSHLog {<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private final boolean doFileRolls;<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    private final boolean initialized;<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    /**<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>     *<a name="line.165"></a>
-<span class="sourceLineNo">166</span>     * You should never have to load an existing log. If there is a log at<a name="line.166"></a>
-<span class="sourceLineNo">167</span>     * startup, it should have already been processed and deleted by the time the<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * WAL object is started up.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param fs filesystem handle<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     * @param rootDir path to where logs and oldlogs<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     * @param logDir dir where wals are stored<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @param archiveDir dir where wals are archived<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     * @param conf configuration to use<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * be registered before we do anything else; e.g. the<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     * Constructor {@link #rollWriter()}.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.178"></a>
-<span class="sourceLineNo">179</span>     *        already exist.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.180"></a>
-<span class="sourceLineNo">181</span>     *        it will be URL encoded before being used.<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     *        If prefix is null, "wal" will be used<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     * @throws IOException<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        final String archiveDir, final Configuration conf,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        throws IOException {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      initialized = true;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>
-<span class="sourceLineNo">200</span>    private Writer noRollsWriter;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // if we are skipping it, just keep returning the same writer.<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      // we don't know yet if we're supposed to generally roll and<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      if (!initialized || doFileRolls) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        LOG.info("creating new writer instance.");<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        try {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>          writer.init(fs, path, conf, false);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.215"></a>
-<span class="sourceLineNo">216</span>              "doesn't support needed stream capabilities.", exception);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        if (!initialized) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          noRollsWriter = writer;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        return writer;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      } else {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        // a race for first assignment.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        return noRollsWriter;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<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>  /**<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    private boolean doAppends;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    private boolean doSyncs;<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 void init(FileSystem fs, Path path, Configuration conf, boolean overwritable)<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        doAppends = doSyncs = true;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        doAppends = doSyncs = false;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      } else {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      super.init(fs, path, conf, overwritable);<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>    protected String getWriterClassName() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return ProtobufLogWriter.class.getSimpleName();<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 void append(Entry entry) throws IOException {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (doAppends) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        super.append(entry);<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><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    public void sync(boolean forceSync) throws IOException {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      if (doSyncs) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        super.sync(forceSync);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public long getNumLogFiles() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return this.log.getNumLogFiles();<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 getLogFileSize() {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    return this.log.getLogFileSize();<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 void addWALActionsListener(WALActionsListener listener) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // TODO Implement WALProvider.addWALActionLister<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>}<a name="line.291"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @Override<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public List&lt;WAL&gt; getWALs() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return Collections.singletonList(log);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private FSHLog createWAL() throws IOException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<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>  @Override<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    FSHLog log = this.log;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (log != null) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      return log;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    synchronized (this) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      log = this.log;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      if (log == null) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        log = createWAL();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        this.log = log;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    return log;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void close() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    FSHLog log = this.log;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (log != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      log.close();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  public void shutdown() throws IOException {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    FSHLog log = this.log;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (log != null) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.shutdown();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<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>  private static class IOTestWAL extends FSHLog {<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    private final boolean doFileRolls;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    private final boolean initialized;<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>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     *<a name="line.164"></a>
+<span class="sourceLineNo">165</span>     * You should never have to load an existing log. If there is a log at<a name="line.165"></a>
+<span class="sourceLineNo">166</span>     * startup, it should have already been processed and deleted by the time the<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * WAL object is started up.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param fs filesystem handle<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     * @param rootDir path to where logs and oldlogs<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     * @param logDir dir where wals are stored<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @param archiveDir dir where wals are archived<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     * @param conf configuration to use<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * be registered before we do anything else; e.g. the<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     * Constructor {@link #rollWriter()}.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     *        already exist.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.179"></a>
+<span class="sourceLineNo">180</span>     *        it will be URL encoded before being used.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     *        If prefix is null, "wal" will be used<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     * @throws IOException<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        final String archiveDir, final Configuration conf,<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      initialized = true;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>    private Writer noRollsWriter;<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // if we are skipping it, just keep returning the same writer.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      // we don't know yet if we're supposed to generally roll and<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (!initialized || doFileRolls) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        LOG.info("creating new writer instance.");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          writer.init(fs, path, conf, false, this.blocksize);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.214"></a>
+<span class="sourceLineNo">215</span>              "doesn't support needed stream capabilities.", exception);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        if (!initialized) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          noRollsWriter = writer;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        return writer;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        // a race for first assignment.<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return noRollsWriter;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  }<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>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    private boolean doAppends;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    private boolean doSyncs;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        long blocksize) throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        doAppends = doSyncs = true;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        doAppends = doSyncs = false;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      super.init(fs, path, conf, overwritable, blocksize);<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>    @Override<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected String getWriterClassName() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      return ProtobufLogWriter.class.getSimpleName();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public void append(Entry entry) throws IOException {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      if (doAppends) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        super.append(entry);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    @Override<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    public void sync(boolean forceSync) throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      if (doSyncs) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        super.sync(forceSync);<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>  }<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 getNumLogFiles() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    return this.log.getNumLogFiles();<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>  @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  public long getLogFileSize() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    return this.log.getLogFileSize();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>  @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  public void addWALActionsListener(WALActionsListener listener) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    // TODO Implement WALProvider.addWALActionLister<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>}<a name="line.290"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html
index 47245bb..0e3d2ab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html
@@ -100,203 +100,202 @@
 <span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * @param factory factory that made us, identity used for FS layout. may not be null<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   * @param conf may not be null<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param listeners may be null<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   *                   null<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    if (factory != null) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    this.factory = factory;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    this.conf = conf;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.106"></a>
+<span class="sourceLineNo">095</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   *                   null<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    if (factory != null) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.factory = factory;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.conf = conf;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><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><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  @Override<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public List&lt;WAL&gt; getWALs() {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    return Collections.singletonList(log);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private FSHLog createWAL() throws IOException {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  @Override<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    FSHLog log = this.log;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if (log != null) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      return log;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    synchronized (this) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      log = this.log;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      if (log == null) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        log = createWAL();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        this.log = log;<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>    return log;<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>  @Override<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public void close() throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    FSHLog log = this.log;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (log != null) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      log.close();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<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>  @Override<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  public void shutdown() throws IOException {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    FSHLog log = this.log;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    if (log != null) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      log.shutdown();<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><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static class IOTestWAL extends FSHLog {<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private final boolean doFileRolls;<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    private final boolean initialized;<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    /**<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>     *<a name="line.165"></a>
-<span class="sourceLineNo">166</span>     * You should never have to load an existing log. If there is a log at<a name="line.166"></a>
-<span class="sourceLineNo">167</span>     * startup, it should have already been processed and deleted by the time the<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * WAL object is started up.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param fs filesystem handle<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     * @param rootDir path to where logs and oldlogs<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     * @param logDir dir where wals are stored<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @param archiveDir dir where wals are archived<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     * @param conf configuration to use<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * be registered before we do anything else; e.g. the<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     * Constructor {@link #rollWriter()}.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.178"></a>
-<span class="sourceLineNo">179</span>     *        already exist.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.180"></a>
-<span class="sourceLineNo">181</span>     *        it will be URL encoded before being used.<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     *        If prefix is null, "wal" will be used<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     * @throws IOException<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        final String archiveDir, final Configuration conf,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        throws IOException {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      initialized = true;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>
-<span class="sourceLineNo">200</span>    private Writer noRollsWriter;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // if we are skipping it, just keep returning the same writer.<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      // we don't know yet if we're supposed to generally roll and<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      if (!initialized || doFileRolls) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        LOG.info("creating new writer instance.");<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        try {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>          writer.init(fs, path, conf, false);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.215"></a>
-<span class="sourceLineNo">216</span>              "doesn't support needed stream capabilities.", exception);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        if (!initialized) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          noRollsWriter = writer;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        return writer;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      } else {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        // a race for first assignment.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        return noRollsWriter;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<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>  /**<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    private boolean doAppends;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    private boolean doSyncs;<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 void init(FileSystem fs, Path path, Configuration conf, boolean overwritable)<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        doAppends = doSyncs = true;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        doAppends = doSyncs = false;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      } else {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      super.init(fs, path, conf, overwritable);<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>    protected String getWriterClassName() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return ProtobufLogWriter.class.getSimpleName();<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 void append(Entry entry) throws IOException {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (doAppends) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        super.append(entry);<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><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    public void sync(boolean forceSync) throws IOException {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      if (doSyncs) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        super.sync(forceSync);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public long getNumLogFiles() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return this.log.getNumLogFiles();<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 getLogFileSize() {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    return this.log.getLogFileSize();<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 void addWALActionsListener(WALActionsListener listener) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // TODO Implement WALProvider.addWALActionLister<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>}<a name="line.291"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @Override<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public List&lt;WAL&gt; getWALs() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return Collections.singletonList(log);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private FSHLog createWAL() throws IOException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<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>  @Override<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    FSHLog log = this.log;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (log != null) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      return log;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    synchronized (this) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      log = this.log;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      if (log == null) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        log = createWAL();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        this.log = log;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    return log;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void close() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    FSHLog log = this.log;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (log != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      log.close();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  public void shutdown() throws IOException {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    FSHLog log = this.log;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (log != null) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.shutdown();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<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>  private static class IOTestWAL extends FSHLog {<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    private final boolean doFileRolls;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    private final boolean initialized;<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>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     *<a name="line.164"></a>
+<span class="sourceLineNo">165</span>     * You should never have to load an existing log. If there is a log at<a name="line.165"></a>
+<span class="sourceLineNo">166</span>     * startup, it should have already been processed and deleted by the time the<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * WAL object is started up.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param fs filesystem handle<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     * @param rootDir path to where logs and oldlogs<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     * @param logDir dir where wals are stored<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @param archiveDir dir where wals are archived<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     * @param conf configuration to use<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * be registered before we do anything else; e.g. the<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     * Constructor {@link #rollWriter()}.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     *        already exist.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.179"></a>
+<span class="sourceLineNo">180</span>     *        it will be URL encoded before being used.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     *        If prefix is null, "wal" will be used<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     * @throws IOException<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        final String archiveDir, final Configuration conf,<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      initialized = true;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>    private Writer noRollsWriter;<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // if we are skipping it, just keep returning the same writer.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      // we don't know yet if we're supposed to generally roll and<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (!initialized || doFileRolls) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        LOG.info("creating new writer instance.");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          writer.init(fs, path, conf, false, this.blocksize);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.214"></a>
+<span class="sourceLineNo">215</span>              "doesn't support needed stream capabilities.", exception);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        if (!initialized) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          noRollsWriter = writer;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        return writer;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        // a race for first assignment.<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return noRollsWriter;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  }<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>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    private boolean doAppends;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    private boolean doSyncs;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        long blocksize) throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        doAppends = doSyncs = true;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        doAppends = doSyncs = false;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      super.init(fs, path, conf, overwritable, blocksize);<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>    @Override<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected String getWriterClassName() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      return ProtobufLogWriter.class.getSimpleName();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public void append(Entry entry) throws IOException {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      if (doAppends) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        super.append(entry);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    @Override<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    public void sync(boolean forceSync) throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      if (doSyncs) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        super.sync(forceSync);<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>  }<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 getNumLogFiles() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    return this.log.getNumLogFiles();<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>  @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  public long getLogFileSize() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    return this.log.getLogFileSize();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>  @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  public void addWALActionsListener(WALActionsListener listener) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    // TODO Implement WALProvider.addWALActionLister<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>}<a name="line.290"></a>
 
 
 


[11/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html b/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
index b727931..05d2c3c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
@@ -71,41 +71,41 @@
 <span class="sourceLineNo">063</span><a name="line.63"></a>
 <span class="sourceLineNo">064</span>  /**<a name="line.64"></a>
 <span class="sourceLineNo">065</span>   * Compare cells.<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @param a<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @param b<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * @param ignoreSequenceid True if we are to compare the key portion only and ignore<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * the sequenceid. Set to false to compare key and consider sequenceid.<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * @return 0 if equal, -1 if a &amp;lt; b, and +1 if a &amp;gt; b.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public final int compare(final Cell a, final Cell b, boolean ignoreSequenceid) {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    int diff = 0;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    if (a instanceof ByteBufferKeyValue &amp;&amp; b instanceof ByteBufferKeyValue) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      diff = compareByteBufferKeyValue((ByteBufferKeyValue)a, (ByteBufferKeyValue)b);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      if (diff != 0) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        return diff;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    } else {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      diff = compareRows(a, b);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      if (diff != 0) {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        return diff;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>      diff = compareWithoutRow(a, b);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      if (diff != 0) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>        return diff;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      }<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>    // Negate following comparisons so later edits show up first mvccVersion: later sorts first<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return ignoreSequenceid? diff: Longs.compare(b.getSequenceId(), a.getSequenceId());<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<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>   * Specialized comparator for the ByteBufferKeyValue type exclusivesly.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * Caches deserialized lengths of rows and families, etc., and reuses them where it can<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * (ByteBufferKeyValue has been changed to be amenable to our providing pre-made lengths, etc.)<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private final int compareByteBufferKeyValue(ByteBufferKeyValue left, ByteBufferKeyValue right) {<a name="line.100"></a>
+<span class="sourceLineNo">066</span>   * @param ignoreSequenceid True if we are to compare the key portion only and ignore<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   *  the sequenceid. Set to false to compare key and consider sequenceid.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * @return 0 if equal, -1 if a &amp;lt; b, and +1 if a &amp;gt; b.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  @Override<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public int compare(final Cell a, final Cell b, boolean ignoreSequenceid) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    int diff = 0;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    if (a instanceof ByteBufferKeyValue &amp;&amp; b instanceof ByteBufferKeyValue) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      diff = compareByteBufferKeyValue((ByteBufferKeyValue)a, (ByteBufferKeyValue)b);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      if (diff != 0) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        return diff;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    } else {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      diff = compareRows(a, b);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      if (diff != 0) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        return diff;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>      diff = compareWithoutRow(a, b);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      if (diff != 0) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        return diff;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    // Negate following comparisons so later edits show up first mvccVersion: later sorts first<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return ignoreSequenceid? diff: Longs.compare(b.getSequenceId(), a.getSequenceId());<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * Specialized comparator for the ByteBufferKeyValue type exclusivesly.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   * Caches deserialized lengths of rows and families, etc., and reuses them where it can<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * (ByteBufferKeyValue has been changed to be amenable to our providing pre-made lengths, etc.)<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private static final int compareByteBufferKeyValue(ByteBufferKeyValue left,<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      ByteBufferKeyValue right) {<a name="line.100"></a>
 <span class="sourceLineNo">101</span>    // Compare Rows. Cache row length.<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    int leftRowLength = left.getRowLength();<a name="line.102"></a>
 <span class="sourceLineNo">103</span>    int rightRowLength = right.getRowLength();<a name="line.103"></a>
@@ -142,40 +142,40 @@
 <span class="sourceLineNo">134</span>    if (rightFamilyLength + rightQualifierLength == 0 &amp;&amp; rightType == Type.Minimum.getCode()) {<a name="line.134"></a>
 <span class="sourceLineNo">135</span>      return -1;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    // Compare families.<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    int leftFamilyPosition = left.getFamilyPosition(leftFamilyLengthPosition);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    int rightFamilyPosition = right.getFamilyPosition(rightFamilyLengthPosition);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    diff = ByteBufferUtils.compareTo(<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        left.getFamilyByteBuffer(), leftFamilyPosition, leftFamilyLength,<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        right.getFamilyByteBuffer(), rightFamilyPosition, rightFamilyLength);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (diff != 0) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return diff;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    // Compare qualifiers<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    diff = ByteBufferUtils.compareTo(left.getQualifierByteBuffer(),<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        left.getQualifierPosition(leftFamilyPosition, leftFamilyLength), leftQualifierLength,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        right.getQualifierByteBuffer(),<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        right.getQualifierPosition(rightFamilyPosition, rightFamilyLength),<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        rightQualifierLength);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    if (diff != 0) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return diff;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    // Timestamps.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    diff = compareTimestamps(left.getTimestamp(leftKeyLength), right.getTimestamp(rightKeyLength));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    if (diff != 0) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      return diff;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    // everything.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    return (0xff &amp; rightType) - (0xff &amp; leftType);<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>  /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * Compares the family and qualifier part of the cell<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @param left the left cell<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @param right the right cell<a name="line.170"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>    // Compare families.<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    int leftFamilyPosition = left.getFamilyPosition(leftFamilyLengthPosition);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    int rightFamilyPosition = right.getFamilyPosition(rightFamilyLengthPosition);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    diff = ByteBufferUtils.compareTo(<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        left.getFamilyByteBuffer(), leftFamilyPosition, leftFamilyLength,<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        right.getFamilyByteBuffer(), rightFamilyPosition, rightFamilyLength);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    if (diff != 0) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      return diff;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // Compare qualifiers<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    diff = ByteBufferUtils.compareTo(left.getQualifierByteBuffer(),<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        left.getQualifierPosition(leftFamilyPosition, leftFamilyLength), leftQualifierLength,<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        right.getQualifierByteBuffer(),<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        right.getQualifierPosition(rightFamilyPosition, rightFamilyLength),<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        rightQualifierLength);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    if (diff != 0) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return diff;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    // Timestamps.<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    diff = compareTimestampsInternal(left.getTimestamp(leftKeyLength),<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        right.getTimestamp(rightKeyLength));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    if (diff != 0) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return diff;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // everything.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    return (0xff &amp; rightType) - (0xff &amp; leftType);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<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>   * Compares the family and qualifier part of the cell<a name="line.170"></a>
 <span class="sourceLineNo">171</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.171"></a>
 <span class="sourceLineNo">172</span>   */<a name="line.172"></a>
 <span class="sourceLineNo">173</span>  public final int compareColumns(final Cell left, final Cell right) {<a name="line.173"></a>
@@ -188,289 +188,279 @@
 <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>   * Compare the families of left and right cell<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @param left<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * @param right<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Override<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public final int compareFamilies(Cell left, Cell right) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.190"></a>
-<span class="sourceLineNo">191</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.191"></a>
-<span class="sourceLineNo">192</span>          ((ByteBufferExtendedCell) right).getFamilyByteBuffer(),<a name="line.192"></a>
-<span class="sourceLineNo">193</span>          ((ByteBufferExtendedCell) right).getFamilyPosition(), right.getFamilyLength());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.196"></a>
-<span class="sourceLineNo">197</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.197"></a>
-<span class="sourceLineNo">198</span>          right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      // see what FindBugs says<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      return ByteBufferUtils.compareTo(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>          left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.206"></a>
-<span class="sourceLineNo">207</span>          ((ByteBufferExtendedCell)right).getFamilyByteBuffer(),<a name="line.207"></a>
-<span class="sourceLineNo">208</span>          ((ByteBufferExtendedCell)right).getFamilyPosition(), right.getFamilyLength());<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    return Bytes.compareTo(left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * Compare the qualifiers part of the left and right cells.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @param left<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * @param right<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  @Override<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  public final int compareQualifiers(Cell left, Cell right) {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      return ByteBufferUtils<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          .compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.224"></a>
-<span class="sourceLineNo">225</span>              ((ByteBufferExtendedCell) left).getQualifierPosition(),<a name="line.225"></a>
-<span class="sourceLineNo">226</span>              left.getQualifierLength(), ((ByteBufferExtendedCell) right).getQualifierByteBuffer(),<a name="line.226"></a>
-<span class="sourceLineNo">227</span>              ((ByteBufferExtendedCell) right).getQualifierPosition(),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>              right.getQualifierLength());<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.231"></a>
-<span class="sourceLineNo">232</span>          ((ByteBufferExtendedCell) left).getQualifierPosition(), left.getQualifierLength(),<a name="line.232"></a>
-<span class="sourceLineNo">233</span>          right.getQualifierArray(), right.getQualifierOffset(), right.getQualifierLength());<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      // see what FindBugs says<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      return ByteBufferUtils.compareTo(left.getQualifierArray(),<a name="line.240"></a>
-<span class="sourceLineNo">241</span>          left.getQualifierOffset(), left.getQualifierLength(),<a name="line.241"></a>
-<span class="sourceLineNo">242</span>          ((ByteBufferExtendedCell)right).getQualifierByteBuffer(),<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          ((ByteBufferExtendedCell)right).getQualifierPosition(), right.getQualifierLength());<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    return Bytes.compareTo(left.getQualifierArray(), left.getQualifierOffset(),<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        left.getQualifierLength(), right.getQualifierArray(), right.getQualifierOffset(),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        right.getQualifierLength());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * Compares the rows of the left and right cell.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * For the hbase:meta case this method is overridden such that it can handle hbase:meta cells.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * The caller should ensure using the appropriate comparator for hbase:meta.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<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 int compareRows(final Cell left, final Cell right) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    return compareRows(left, left.getRowLength(), right, right.getRowLength());<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>  int compareRows(final Cell left, int leftRowLength, final Cell right, int rightRowLength) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    // left and right can be exactly the same at the beginning of a row<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    if (left == right) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      return 0;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.267"></a>
-<span class="sourceLineNo">268</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          ((ByteBufferExtendedCell) right).getRowByteBuffer(),<a name="line.269"></a>
-<span class="sourceLineNo">270</span>          ((ByteBufferExtendedCell) right).getRowPosition(), rightRowLength);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.273"></a>
-<span class="sourceLineNo">274</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          right.getRowArray(), right.getRowOffset(), rightRowLength);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      // see what FindBugs says<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      return ByteBufferUtils.compareTo(left.getRowArray(), left.getRowOffset(), leftRowLength,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          ((ByteBufferExtendedCell)right).getRowByteBuffer(),<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          ((ByteBufferExtendedCell)right).getRowPosition(), rightRowLength);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        right.getRowArray(), right.getRowOffset(), right.getRowLength());<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>  /**<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * stopRow in Scan. This should be used with context where for hbase:meta<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   * cells the {{@link #META_COMPARATOR} should be used<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   *<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * @param left<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   *          the cell to be compared<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * @param right<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   *          the kv serialized byte[] to be compared with<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * @param roffset<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   *          the offset in the byte[]<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * @param rlength<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   *          the length in the byte[]<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   * @return 0 if both cell and the byte[] are equal, 1 if the cell is bigger<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   *         than byte[], -1 otherwise<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 int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          ((ByteBufferExtendedCell) left).getRowPosition(), left.getRowLength(), right,<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          roffset, rlength);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        roffset, rlength);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Override<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public final int compareWithoutRow(final Cell left, final Cell right) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    // If the column is not specified, the "minimum" key type appears the<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    // latest in the sorted order, regardless of the timestamp. This is used<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // for specifying the last key/value in a given row, because there is no<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    // "lexicographically last column" (it would be infinitely long). The<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    // "maximum" key type does not need this behavior.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // Copied from KeyValue. This is bad in that we can't do memcmp w/ special rules like this.<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    int lFamLength = left.getFamilyLength();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    int rFamLength = right.getFamilyLength();<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    int lQualLength = left.getQualifierLength();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    int rQualLength = right.getQualifierLength();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    if (lFamLength + lQualLength == 0<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          &amp;&amp; left.getTypeByte() == Type.Minimum.getCode()) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // left is "bigger", i.e. it appears later in the sorted order<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return 1;<a name="line.332"></a>
+<span class="sourceLineNo">183</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  public final int compareFamilies(Cell left, Cell right) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          ((ByteBufferExtendedCell) right).getFamilyByteBuffer(),<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          ((ByteBufferExtendedCell) right).getFamilyPosition(), right.getFamilyLength());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.195"></a>
+<span class="sourceLineNo">196</span>          right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      // see what FindBugs says<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      return ByteBufferUtils.compareTo(<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          ((ByteBufferExtendedCell)right).getFamilyByteBuffer(),<a name="line.205"></a>
+<span class="sourceLineNo">206</span>          ((ByteBufferExtendedCell)right).getFamilyPosition(), right.getFamilyLength());<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    return Bytes.compareTo(left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<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>  /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * Compare the qualifiers part of the left and right cells.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<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 final int compareQualifiers(Cell left, Cell right) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      return ByteBufferUtils<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          .compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.220"></a>
+<span class="sourceLineNo">221</span>              ((ByteBufferExtendedCell) left).getQualifierPosition(),<a name="line.221"></a>
+<span class="sourceLineNo">222</span>              left.getQualifierLength(), ((ByteBufferExtendedCell) right).getQualifierByteBuffer(),<a name="line.222"></a>
+<span class="sourceLineNo">223</span>              ((ByteBufferExtendedCell) right).getQualifierPosition(),<a name="line.223"></a>
+<span class="sourceLineNo">224</span>              right.getQualifierLength());<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          ((ByteBufferExtendedCell) left).getQualifierPosition(), left.getQualifierLength(),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          right.getQualifierArray(), right.getQualifierOffset(), right.getQualifierLength());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    }<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      // see what FindBugs says<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      return ByteBufferUtils.compareTo(left.getQualifierArray(),<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          left.getQualifierOffset(), left.getQualifierLength(),<a name="line.237"></a>
+<span class="sourceLineNo">238</span>          ((ByteBufferExtendedCell)right).getQualifierByteBuffer(),<a name="line.238"></a>
+<span class="sourceLineNo">239</span>          ((ByteBufferExtendedCell)right).getQualifierPosition(), right.getQualifierLength());<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    return Bytes.compareTo(left.getQualifierArray(), left.getQualifierOffset(),<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        left.getQualifierLength(), right.getQualifierArray(), right.getQualifierOffset(),<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        right.getQualifierLength());<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>   * Compares the rows of the left and right cell.<a name="line.247"></a>
+<span class="sourceLineNo">248</span>   * For the hbase:meta case this method is overridden such that it can handle hbase:meta cells.<a name="line.248"></a>
+<span class="sourceLineNo">249</span>   * The caller should ensure using the appropriate comparator for hbase:meta.<a name="line.249"></a>
+<span class="sourceLineNo">250</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<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 int compareRows(final Cell left, final Cell right) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    return compareRows(left, left.getRowLength(), right, right.getRowLength());<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>  int compareRows(final Cell left, int leftRowLength, final Cell right, int rightRowLength) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // left and right can be exactly the same at the beginning of a row<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    if (left == right) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      return 0;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.263"></a>
+<span class="sourceLineNo">264</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.264"></a>
+<span class="sourceLineNo">265</span>          ((ByteBufferExtendedCell) right).getRowByteBuffer(),<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          ((ByteBufferExtendedCell) right).getRowPosition(), rightRowLength);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          right.getRowArray(), right.getRowOffset(), rightRowLength);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      // see what FindBugs says<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      return ByteBufferUtils.compareTo(left.getRowArray(), left.getRowOffset(), leftRowLength,<a name="line.278"></a>
+<span class="sourceLineNo">279</span>          ((ByteBufferExtendedCell)right).getRowByteBuffer(),<a name="line.279"></a>
+<span class="sourceLineNo">280</span>          ((ByteBufferExtendedCell)right).getRowPosition(), rightRowLength);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        right.getRowArray(), right.getRowOffset(), right.getRowLength());<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>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * stopRow in Scan. This should be used with context where for hbase:meta<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   * cells the {{@link #META_COMPARATOR} should be used<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   *<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   * @param left<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   *          the cell to be compared<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * @param right<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   *          the kv serialized byte[] to be compared with<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * @param roffset<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   *          the offset in the byte[]<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @param rlength<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   *          the length in the byte[]<a name="line.298"></a>
+<span class="sourceLineNo">299</span>   * @return 0 if both cell and the byte[] are equal, 1 if the cell is bigger<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   *         than byte[], -1 otherwise<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 int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.305"></a>
+<span class="sourceLineNo">306</span>          ((ByteBufferExtendedCell) left).getRowPosition(), left.getRowLength(), right,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          roffset, rlength);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        roffset, rlength);<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>  @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>  public final int compareWithoutRow(final Cell left, final Cell right) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    // If the column is not specified, the "minimum" key type appears the<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    // latest in the sorted order, regardless of the timestamp. This is used<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    // for specifying the last key/value in a given row, because there is no<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // "lexicographically last column" (it would be infinitely long). The<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    // "maximum" key type does not need this behavior.<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // Copied from KeyValue. This is bad in that we can't do memcmp w/ special rules like this.<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    int lFamLength = left.getFamilyLength();<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    int rFamLength = right.getFamilyLength();<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    int lQualLength = left.getQualifierLength();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    int rQualLength = right.getQualifierLength();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    if (lFamLength + lQualLength == 0<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          &amp;&amp; left.getTypeByte() == Type.Minimum.getCode()) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      // left is "bigger", i.e. it appears later in the sorted order<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      return 1;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    if (rFamLength + rQualLength == 0<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        &amp;&amp; right.getTypeByte() == Type.Minimum.getCode()) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      return -1;<a name="line.332"></a>
 <span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    if (rFamLength + rQualLength == 0<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        &amp;&amp; right.getTypeByte() == Type.Minimum.getCode()) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      return -1;<a name="line.336"></a>
+<span class="sourceLineNo">334</span>    if (lFamLength != rFamLength) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      // comparing column family is enough.<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      return compareFamilies(left, right);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (lFamLength != rFamLength) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      // comparing column family is enough.<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      return compareFamilies(left, right);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    // Compare cf:qualifier<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    int diff = compareColumns(left, right);<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    if (diff != 0) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return diff;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    diff = compareTimestamps(left, right);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    if (diff != 0) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      return diff;<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>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    // everything.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return (0xff &amp; right.getTypeByte()) - (0xff &amp; left.getTypeByte());<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  /**<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * Compares cell's timestamps in DESCENDING order.<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * The below older timestamps sorting ahead of newer timestamps looks<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * wrong but it is intentional. This way, newer timestamps are first<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * found when we iterate over a memstore and newer versions are the<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * first we trip over when reading from a store file.<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   *         -1 if left's timestamp &amp;gt; right's timestamp<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   *         0 if both timestamps are equal<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  @Override<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public int compareTimestamps(final Cell left, final Cell right) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    return compareTimestamps(left.getTimestamp(), right.getTimestamp());<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  }<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>  /**<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * Compares timestamps in DESCENDING order.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * The below older timestamps sorting ahead of newer timestamps looks<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * wrong but it is intentional. This way, newer timestamps are first<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * found when we iterate over a memstore and newer versions are the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * first we trip over when reading from a store file.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * @return 1 if left timestamp &amp;lt; right timestamp<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   *         -1 if left timestamp &amp;gt; right timestamp<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   *         0 if both timestamps are equal<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   */<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  @Override<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  public int compareTimestamps(final long ltimestamp, final long rtimestamp) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    if (ltimestamp &lt; rtimestamp) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      return 1;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    } else if (ltimestamp &gt; rtimestamp) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      return -1;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    return 0;<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>   * A {@link CellComparatorImpl} for &lt;code&gt;hbase:meta&lt;/code&gt; catalog table<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * {@link KeyValue}s.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  public static class MetaCellComparator extends CellComparatorImpl {<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>    @Override<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    public int compareRows(final Cell left, final Cell right) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          right.getRowArray(), right.getRowOffset(), right.getRowLength());<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    }<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>    @Override<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    public int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          roffset, rlength);<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>    private int compareRows(byte[] left, int loffset, int llength, byte[] right, int roffset,<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        int rlength) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      int leftDelimiter = Bytes.searchDelimiterIndex(left, loffset, llength, HConstants.DELIMITER);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      int rightDelimiter = Bytes<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          .searchDelimiterIndex(right, roffset, rlength, HConstants.DELIMITER);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      // Compare up to the delimiter<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      int lpart = (leftDelimiter &lt; 0 ? llength : leftDelimiter - loffset);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int rpart = (rightDelimiter &lt; 0 ? rlength : rightDelimiter - roffset);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      int result = Bytes.compareTo(left, loffset, lpart, right, roffset, rpart);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      if (result != 0) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        return result;<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      } else {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>          return -1;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          return 1;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          return 0;<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>      // Compare middle bit of the row.<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      // Move past delimiter<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      leftDelimiter++;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      rightDelimiter++;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      int leftFarDelimiter = Bytes.searchDelimiterIndexInReverse(left, leftDelimiter, llength<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          - (leftDelimiter - loffset), HConstants.DELIMITER);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      int rightFarDelimiter = Bytes.searchDelimiterIndexInReverse(right, rightDelimiter, rlength<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          - (rightDelimiter - roffset), HConstants.DELIMITER);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      // Now compare middlesection of row.<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      lpart = (leftFarDelimiter &lt; 0 ? llength + loffset : leftFarDelimiter) - leftDelimiter;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      rpart = (rightFarDelimiter &lt; 0 ? rlength + roffset : rightFarDelimiter) - rightDelimiter;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      result = Bytes.compareTo(left, leftDelimiter, lpart, right, rightDelimiter, rpart);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      if (result != 0) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        return result;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      } else {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          return -1;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          return 1;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          return 0;<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>      // Compare last part of row, the rowid.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      leftFarDelimiter++;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      rightFarDelimiter++;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      result = Bytes.compareTo(left, leftFarDelimiter, llength - (leftFarDelimiter - loffset),<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          right, rightFarDelimiter, rlength - (rightFarDelimiter - roffset));<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return result;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>}<a name="line.465"></a>
+<span class="sourceLineNo">338</span>    // Compare cf:qualifier<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    int diff = compareColumns(left, right);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    if (diff != 0) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      return diff;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    diff = compareTimestamps(left, right);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    if (diff != 0) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      return diff;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    // everything.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    return (0xff &amp; right.getTypeByte()) - (0xff &amp; left.getTypeByte());<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>  @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  public int compareTimestamps(final Cell left, final Cell right) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    return compareTimestampsInternal(left.getTimestamp(), right.getTimestamp());<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  @Override<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  public int compareTimestamps(final long ltimestamp, final long rtimestamp) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    return compareTimestampsInternal(ltimestamp, rtimestamp);<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>  private static final int compareTimestampsInternal(final long ltimestamp, final long rtimestamp) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // Swap the times so sort is newest to oldest, descending.<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    return Long.compare(rtimestamp, ltimestamp);<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>  /**<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   * A {@link CellComparatorImpl} for &lt;code&gt;hbase:meta&lt;/code&gt; catalog table<a name="line.372"></a>
+<span class="sourceLineNo">373</span>   * {@link KeyValue}s.<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public static class MetaCellComparator extends CellComparatorImpl {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    @Override<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    public int compareRows(final Cell left, final Cell right) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>          right.getRowArray(), right.getRowOffset(), right.getRowLength());<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>    @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    public int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>          roffset, rlength);<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>    @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    public int compare(final Cell a, final Cell b, boolean ignoreSequenceid) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      int diff = compareRows(a, b);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      if (diff != 0) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        return diff;<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>      diff = compareWithoutRow(a, b);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      if (diff != 0) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        return diff;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>      // Negate following comparisons so later edits show up first mvccVersion: later sorts first<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      return ignoreSequenceid? diff: Longs.compare(b.getSequenceId(), a.getSequenceId());<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>    private static int compareRows(byte[] left, int loffset, int llength, byte[] right, int roffset,<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        int rlength) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      int leftDelimiter = Bytes.searchDelimiterIndex(left, loffset, llength, HConstants.DELIMITER);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      int rightDelimiter = Bytes<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          .searchDelimiterIndex(right, roffset, rlength, HConstants.DELIMITER);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      // Compare up to the delimiter<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      int lpart = (leftDelimiter &lt; 0 ? llength : leftDelimiter - loffset);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      int rpart = (rightDelimiter &lt; 0 ? rlength : rightDelimiter - roffset);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      int result = Bytes.compareTo(left, loffset, lpart, right, roffset, rpart);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      if (result != 0) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        return result;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      } else {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>          return -1;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          return 1;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          return 0;<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>      // Compare middle bit of the row.<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      // Move past delimiter<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      leftDelimiter++;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      rightDelimiter++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      int leftFarDelimiter = Bytes.searchDelimiterIndexInReverse(left, leftDelimiter, llength<a name="line.428"></a>
+<span class="sourceLineNo">429</span>          - (leftDelimiter - loffset), HConstants.DELIMITER);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      int rightFarDelimiter = Bytes.searchDelimiterIndexInReverse(right, rightDelimiter, rlength<a name="line.430"></a>
+<span class="sourceLineNo">431</span>          - (rightDelimiter - roffset), HConstants.DELIMITER);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      // Now compare middlesection of row.<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      lpart = (leftFarDelimiter &lt; 0 ? llength + loffset : leftFarDelimiter) - leftDelimiter;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      rpart = (rightFarDelimiter &lt; 0 ? rlength + roffset : rightFarDelimiter) - rightDelimiter;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      result = Bytes.compareTo(left, leftDelimiter, lpart, right, rightDelimiter, rpart);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      if (result != 0) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        return result;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      } else {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>          return -1;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>          return 1;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>          return 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>      // Compare last part of row, the rowid.<a name="line.447"></a>
+<span class="sourceLineNo">448</span>      leftFarDelimiter++;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      rightFarDelimiter++;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      result = Bytes.compareTo(left, leftFarDelimiter, llength - (leftFarDelimiter - loffset),<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          right, rightFarDelimiter, rlength - (rightFarDelimiter - roffset));<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      return result;<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>}<a name="line.455"></a>
 
 
 


[14/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
index 9c6d22a..2a0ad48 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
@@ -190,166 +190,172 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <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/wal/AbstractFSWAL.html#blocksize">blocksize</a></span></code>
+<div class="block">Block size to use writing files.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#closed">closed</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <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/wal/AbstractFSWAL.html#conf">conf</a></span></code>
 <div class="block">conf object</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCoprocessorHost</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#coprocessorHost">coprocessorHost</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_TIME_MS">DEFAULT_SLOW_SYNC_TIME_MS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_WAL_SYNC_TIMEOUT_MS">DEFAULT_WAL_SYNC_TIMEOUT_MS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <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/wal/AbstractFSWAL.html#filenum">filenum</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected org.apache.hadoop.fs.FileSystem</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#fs">fs</a></span></code>
 <div class="block">file system instance</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <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/wal/AbstractFSWAL.html#highestSyncedTxid">highestSyncedTxid</a></span></code>
 <div class="block">Updated to the transaction id of the last successful sync call.</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/wal/AbstractFSWAL.html#highestUnsyncedTxid">highestUnsyncedTxid</a></span></code>
 <div class="block">The highest known outstanding unsync'd WALEdit transaction id.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr 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/wal/AbstractFSWAL.html#implClassName">implClassName</a></span></code>
 <div class="block">The class name of the runtime implementation, used as prefix for logging/tracing.</div>
 </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/wal/AbstractFSWAL.html#lastTimeCheckLowReplication">lastTimeCheckLowReplication</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <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/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#listeners">listeners</a></span></code>
 <div class="block">Listeners that are called on WAL events.</div>
 </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/wal/AbstractFSWAL.html#LOG">LOG</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/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;org.apache.hadoop.fs.Path&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#LOG_NAME_COMPARATOR">LOG_NAME_COMPARATOR</a></span></code>
 <div class="block">WAL Comparator; it compares the timestamp (log filenum), present in the log file name.</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/wal/AbstractFSWAL.html#logrollsize">logrollsize</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#maxLogs">maxLogs</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <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/wal/AbstractFSWAL.html#numEntries">numEntries</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected org.apache.hadoop.fs.PathFilter</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ourFiles">ourFiles</a></span></code>
 <div class="block">Matches just those wal files that belong to this wal instance.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr 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/wal/AbstractFSWAL.html#prefixPathStr">prefixPathStr</a></span></code>
 <div class="block">Prefix used when checking for wal membership.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <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></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriterLock">rollWriterLock</a></span></code>
 <div class="block">This lock makes sure only one log roll runs at a time.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SequenceIdAccounting</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sequenceIdAccounting">sequenceIdAccounting</a></span></code>
 <div class="block">Class that does accounting of sequenceids in WAL subsystem.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <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/wal/AbstractFSWAL.html#shutdown">shutdown</a></span></code>&nbsp;</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/wal/AbstractFSWAL.html#slowSyncNs">slowSyncNs</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/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/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#syncFuturesByHandler">syncFuturesByHandler</a></span></code>
 <div class="block">Map of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>SyncFuture</code></a>s keyed by Handler objects.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <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/wal/AbstractFSWAL.html#totalLogSize">totalLogSize</a></span></code>
 <div class="block">The total size of wal</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr 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/wal/AbstractFSWAL.html#walArchiveDir">walArchiveDir</a></span></code>
 <div class="block">dir path where old logs are kept.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <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/wal/AbstractFSWAL.html#walDir">walDir</a></span></code>
 <div class="block">WAL directory, where all WAL files would be placed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentNavigableMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentNavigableMap</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL.WalProps</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFile2Props">walFile2Props</a></span></code>
 <div class="block">Map of WAL log file to properties.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr 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/wal/AbstractFSWAL.html#walFilePrefix">walFilePrefix</a></span></code>
 <div class="block">Prefix of a WAL file, usually the region server name it is hosted on.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr 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/wal/AbstractFSWAL.html#walFileSuffix">walFileSuffix</a></span></code>
 <div class="block">Suffix included on generated wal file names</div>
 </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/wal/AbstractFSWAL.html#walSyncTimeoutNs">walSyncTimeoutNs</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#writer">writer</a></span></code>
 <div class="block">Current log file.</div>
@@ -937,13 +943,23 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.179">logrollsize</a></pre>
 </li>
 </ul>
+<a name="blocksize">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>blocksize</h4>
+<pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.184">blocksize</a></pre>
+<div class="block">Block size to use writing files.</div>
+</li>
+</ul>
 <a name="maxLogs">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>maxLogs</h4>
-<pre>protected final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.185">maxLogs</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.190">maxLogs</a></pre>
 </li>
 </ul>
 <a name="rollWriterLock">
@@ -952,7 +968,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriterLock</h4>
-<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.194">rollWriterLock</a></pre>
+<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.199">rollWriterLock</a></pre>
 <div class="block">This lock makes sure only one log roll runs at a time. Should not be taken while any other lock
  is held. We don't just use synchronized because that results in bogus and tedious findbugs
  warning when it thinks synchronized controls writer thread safety. It is held when we are
@@ -966,7 +982,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>filenum</h4>
-<pre>protected 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/wal/AbstractFSWAL.html#line.197">filenum</a></pre>
+<pre>protected 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/wal/AbstractFSWAL.html#line.202">filenum</a></pre>
 </li>
 </ul>
 <a name="numEntries">
@@ -975,7 +991,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>numEntries</h4>
-<pre>protected 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/wal/AbstractFSWAL.html#line.200">numEntries</a></pre>
+<pre>protected 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/wal/AbstractFSWAL.html#line.205">numEntries</a></pre>
 </li>
 </ul>
 <a name="highestUnsyncedTxid">
@@ -984,7 +1000,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>highestUnsyncedTxid</h4>
-<pre>protected volatile&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.207">highestUnsyncedTxid</a></pre>
+<pre>protected volatile&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.212">highestUnsyncedTxid</a></pre>
 <div class="block">The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass
  WALEdit to background consumer thread, and the transaction id is the sequence number of the
  corresponding entry in queue.</div>
@@ -996,7 +1012,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>highestSyncedTxid</h4>
-<pre>protected 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/wal/AbstractFSWAL.html#line.214">highestSyncedTxid</a></pre>
+<pre>protected 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/wal/AbstractFSWAL.html#line.219">highestSyncedTxid</a></pre>
 <div class="block">Updated to the transaction id of the last successful sync call. This can be less than
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestUnsyncedTxid"><code>highestUnsyncedTxid</code></a> for case where we have an append where a sync has not yet come in
  for it.</div>
@@ -1008,7 +1024,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>totalLogSize</h4>
-<pre>protected 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/wal/AbstractFSWAL.html#line.219">totalLogSize</a></pre>
+<pre>protected 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/wal/AbstractFSWAL.html#line.224">totalLogSize</a></pre>
 <div class="block">The total size of wal</div>
 </li>
 </ul>
@@ -1018,7 +1034,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>writer</h4>
-<pre>volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a> extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.WriterBase.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.WriterBase</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.223">writer</a></pre>
+<pre>volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a> extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.WriterBase.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.WriterBase</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.228">writer</a></pre>
 <div class="block">Current log file.</div>
 </li>
 </ul>
@@ -1028,7 +1044,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>lastTimeCheckLowReplication</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.226">lastTimeCheckLowReplication</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.231">lastTimeCheckLowReplication</a></pre>
 </li>
 </ul>
 <a name="closed">
@@ -1037,7 +1053,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>closed</h4>
-<pre>protected volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.228">closed</a></pre>
+<pre>protected volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.233">closed</a></pre>
 </li>
 </ul>
 <a name="shutdown">
@@ -1046,7 +1062,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>protected 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/wal/AbstractFSWAL.html#line.230">shutdown</a></pre>
+<pre>protected 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/wal/AbstractFSWAL.html#line.235">shutdown</a></pre>
 </li>
 </ul>
 <a name="LOG_NAME_COMPARATOR">
@@ -1055,7 +1071,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG_NAME_COMPARATOR</h4>
-<pre>final&nbsp;<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;org.apache.hadoop.fs.Path&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.235">LOG_NAME_COMPARATOR</a></pre>
+<pre>final&nbsp;<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;org.apache.hadoop.fs.Path&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.240">LOG_NAME_COMPARATOR</a></pre>
 <div class="block">WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws
  an IllegalArgumentException if used to compare paths from different wals.</div>
 </li>
@@ -1066,7 +1082,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>walFile2Props</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentNavigableMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentNavigableMap</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL.WalProps</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.262">walFile2Props</a></pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentNavigableMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentNavigableMap</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL.WalProps</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.267">walFile2Props</a></pre>
 <div class="block">Map of WAL log file to properties. The map is sorted by the log file creation timestamp
  (contained in the log file name).</div>
 </li>
@@ -1077,7 +1093,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>syncFuturesByHandler</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/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.273">syncFuturesByHandler</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/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.278">syncFuturesByHandler</a></pre>
 <div class="block">Map of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>SyncFuture</code></a>s keyed by Handler objects. Used so we reuse SyncFutures.
  <p>
  TODO: Reuse FSWALEntry's rather than create them anew each time as we do SyncFutures here.
@@ -1092,7 +1108,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>implClassName</h4>
-<pre>protected 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/wal/AbstractFSWAL.html#line.282">implClassName</a></pre>
+<pre>protected 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/wal/AbstractFSWAL.html#line.287">implClassName</a></pre>
 <div class="block">The class name of the runtime implementation, used as prefix for logging/tracing.
  <p>
  Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,
@@ -1114,7 +1130,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AbstractFSWAL</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.332">AbstractFSWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.337">AbstractFSWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                         org.apache.hadoop.fs.Path&nbsp;rootDir,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logDir,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;archiveDir,
@@ -1146,7 +1162,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilenum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.284">getFilenum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.289">getFilenum</a>()</pre>
 </li>
 </ul>
 <a name="getFileNumFromFileName-org.apache.hadoop.fs.Path-">
@@ -1155,7 +1171,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileNumFromFileName</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.294">getFileNumFromFileName</a>(org.apache.hadoop.fs.Path&nbsp;fileName)</pre>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.299">getFileNumFromFileName</a>(org.apache.hadoop.fs.Path&nbsp;fileName)</pre>
 <div class="block">A log file has a creation timestamp (in ms) in its file name (<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum"><code>filenum</code></a>. This helper
  method returns the creation timestamp from a given log file. It extracts the timestamp assuming
  the filename is created with the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#computeFilename-long-"><code>computeFilename(long filenum)</code></a> method.</div>
@@ -1171,7 +1187,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>calculateMaxLogFiles</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.306">calculateMaxLogFiles</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.311">calculateMaxLogFiles</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                  long&nbsp;logRollSize)</pre>
 </li>
 </ul>
@@ -1181,7 +1197,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getPreallocatedEventCount</h4>
-<pre>protected final&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.312">getPreallocatedEventCount</a>()</pre>
+<pre>protected final&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.317">getPreallocatedEventCount</a>()</pre>
 </li>
 </ul>
 <a name="registerWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">
@@ -1190,7 +1206,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>registerWALActionsListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.434">registerWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.438">registerWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#registerWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">WAL</a></code></span></div>
 <div class="block">Registers WALActionsListener</div>
 <dl>
@@ -1205,7 +1221,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterWALActionsListener</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.439">unregisterWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.443">unregisterWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#unregisterWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">WAL</a></code></span></div>
 <div class="block">Unregisters WALActionsListener</div>
 <dl>
@@ -1220,7 +1236,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCoprocessorHost</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.444">getCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCoprocessorHost</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.448">getCoprocessorHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#getCoprocessorHost--">getCoprocessorHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></code></dd>
@@ -1235,7 +1251,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>startCacheFlush</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.449">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.453">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
                             <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;byte[]&gt;&nbsp;families)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#startCacheFlush-byte:A-java.util.Set-">WAL</a></code></span></div>
 <div class="block">WAL keeps track of the sequence numbers that are as yet not flushed im memstores
@@ -1267,7 +1283,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>startCacheFlush</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.454">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.458">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;familyToSeq)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1281,7 +1297,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>completeCacheFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.459">completeCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.463">completeCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#completeCacheFlush-byte:A-">WAL</a></code></span></div>
 <div class="block">Complete the cache flush.</div>
 <dl>
@@ -1301,7 +1317,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>abortCacheFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.464">abortCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.468">abortCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#abortCacheFlush-byte:A-">WAL</a></code></span></div>
 <div class="block">Abort a cache flush. Call if the flush fails. Note that the only recovery
  for an aborted flush currently is a restart of the regionserver so the
@@ -1320,7 +1336,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getEarliestMemStoreSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.469">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.473">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#getEarliestMemStoreSeqNum-byte:A-">WAL</a></code></span></div>
 <div class="block">Gets the earliest unflushed sequence id in the memstore for the region.</div>
 <dl>
@@ -1339,7 +1355,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getEarliestMemStoreSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.475">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.479">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName,
                                       byte[]&nbsp;familyName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#getEarliestMemStoreSeqNum-byte:A-byte:A-">WAL</a></code></span></div>
 <div class="block">Gets the earliest unflushed sequence id in the memstore for the store.</div>
@@ -1360,7 +1376,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriter</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.488">rollWriter</a>()
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.492">rollWriter</a>()
                     throws <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FailedLogCloseException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FailedLogCloseException</a>,
                            <a href="https://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/wal/WAL.html#rollWriter--">WAL</a></code></span></div>
@@ -1388,7 +1404,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>computeFilename</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.497">computeFilename</a>(long&nbsp;filenum)</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.501">computeFilename</a>(long&nbsp;filenum)</pre>
 <div class="block">This is a convenience method that computes a new filename with a given file-number.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1404,7 +1420,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentFileName</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.510">getCurrentFileName</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.514">getCurrentFileName</a>()</pre>
 <div class="block">This is a convenience method that computes a new filename with a given using the current WAL
  file-number</div>
 <dl>
@@ -1419,7 +1435,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getNewPath</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.517">getNewPath</a>()
+<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.521">getNewPath</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">retrieve the next path to use for writing. Increments the internal filenum.</div>
 <dl>
@@ -1434,7 +1450,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getOldPath</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.528">getOldPath</a>()</pre>
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.532">getOldPath</a>()</pre>
 </li>
 </ul>
 <a name="tellListenersAboutPreLogRoll-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-">
@@ -1443,7 +1459,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>tellListenersAboutPreLogRoll</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.541">tellListenersAboutPreLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.545">tellListenersAboutPreLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                           org.apache.hadoop.fs.Path&nbsp;newPath)
                                    throws <a href="https://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">Tell listeners about pre log roll.</div>
@@ -1459,7 +1475,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>tellListenersAboutPostLogRoll</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.555">tellListenersAboutPostLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.559">tellListenersAboutPostLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                            org.apache.hadoop.fs.Path&nbsp;newPath)
                                     throws <a href="https://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">Tell listeners about post log roll.</div>
@@ -1475,7 +1491,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumRolledLogFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.568">getNumRolledLogFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.572">getNumRolledLogFiles</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of rolled log files</dd>
@@ -1488,7 +1504,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLogFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.574">getNumLogFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.578">getNumLogFiles</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of log files in use</dd>
@@ -1501,7 +1517,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>findRegionsToForceFlush</h4>
-<pre>byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.585">findRegionsToForceFlush</a>()
+<pre>byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.589">findRegionsToForceFlush</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">If the number of un-archived WAL files is greater than maximum allowed, check the first
  (oldest) WAL file, and returns those regions which should be flushed so that it can be
@@ -1520,7 +1536,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanOldLogs</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.610">cleanOldLogs</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.614">cleanOldLogs</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">Archive old logs. A WAL is eligible for archiving if all its WALEdits have been flushed.</div>
 <dl>
@@ -1535,7 +1551,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALArchivePath</h4>
-<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.640">getWALArchivePath</a>(org.apache.hadoop.fs.Path&nbsp;archiveDir,
+<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.644">getWALArchivePath</a>(org.apache.hadoop.fs.Path&nbsp;archiveDir,
                                                           org.apache.hadoop.fs.Path&nbsp;p)</pre>
 </li>
 </ul>
@@ -1545,7 +1561,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>archiveLogFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.644">archiveLogFile</a>(org.apache.hadoop.fs.Path&nbsp;p)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.648">archiveLogFile</a>(org.apache.hadoop.fs.Path&nbsp;p)
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1559,7 +1575,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>logRollAndSetupWalProps</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.664">logRollAndSetupWalProps</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.668">logRollAndSetupWalProps</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                              org.apache.hadoop.fs.Path&nbsp;newPath,
                                              long&nbsp;oldFileLen)</pre>
 </li>
@@ -1572,7 +1588,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>replaceWriter</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.700">replaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.704">replaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                         org.apache.hadoop.fs.Path&nbsp;newPath,
                                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;nextWriter)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1607,7 +1623,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>blockOnSync</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.707">blockOnSync</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture)
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.711">blockOnSync</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture)
                           throws <a href="https://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>
@@ -1621,7 +1637,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>ensureIOException</h4>
-<pre>private static&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/wal/AbstractFSWAL.html#line.731">ensureIOException</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;t)</pre>
+<pre>private static&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/wal/AbstractFSWAL.html#line.735">ensureIOException</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;t)</pre>
 </li>
 </ul>
 <a name="convertInterruptedExceptionToIOException-java.lang.InterruptedException-">
@@ -1630,7 +1646,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>convertInterruptedExceptionToIOException</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/wal/AbstractFSWAL.html#line.735">convertInterruptedExceptionToIOException</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>&nbsp;ie)</pre>
+<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/wal/AbstractFSWAL.html#line.739">convertInterruptedExceptionToIOException</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>&nbsp;ie)</pre>
 </li>
 </ul>
 <a name="rollWriter-boolean-">
@@ -1639,7 +1655,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriter</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.743">rollWriter</a>(boolean&nbsp;force)
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.747">rollWriter</a>(boolean&nbsp;force)
                     throws <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FailedLogCloseException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FailedLogCloseException</a>,
                            <a href="https://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/wal/WAL.html#rollWriter-boolean-">WAL</a></code></span></div>
@@ -1670,7 +1686,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.788">getLogFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.792">getLogFileSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the size of log files in use</dd>
@@ -1683,7 +1699,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>requestLogRoll</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.793">requestLogRoll</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.797">requestLogRoll</a>()</pre>
 </li>
 </ul>
 <a name="getFiles--">
@@ -1692,7 +1708,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFiles</h4>
-<pre>org.apache.hadoop.fs.FileStatus[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.802">getFiles</a>()
+<pre>org.apache.hadoop.fs.FileStatus[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.806">getFiles</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">Get the backing files associated with this WAL.</div>
 <dl>
@@ -1709,7 +1725,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.807">shutdown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.811">shutdown</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/wal/WAL.html#shutdown--">WAL</a></code></span></div>
 <div class="block">Stop accepting new writes. If we have unsynced writes still in buffer, sync them.
@@ -1728,7 +1744,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.827">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.831">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>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#close--">WAL</a></code></span></div>
 <div class="block">Caller no longer needs any edits from this WAL. Implementers are free to reclaim
@@ -1752,7 +1768,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>updateStore</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.865">updateStore</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.869">updateStore</a>(byte[]&nbsp;encodedRegionName,
                         byte[]&nbsp;familyName,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;sequenceid,
                         boolean&nbsp;onlyIfGreater)</pre>
@@ -1775,7 +1791,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getSyncFuture</h4>
-<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.870">getSyncFuture</a>(long&nbsp;sequence)</pre>
+<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.874">getSyncFuture</a>(long&nbsp;sequence)</pre>
 </li>
 </ul>
 <a name="requestLogRoll-boolean-">
@@ -1784,7 +1800,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>requestLogRoll</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.876">requestLogRoll</a>(boolean&nbsp;tooFewReplicas)</pre>
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.880">requestLogRoll</a>(boolean&nbsp;tooFewReplicas)</pre>
 </li>
 </ul>
 <a name="getUnflushedEntriesCount--">
@@ -1793,7 +1809,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getUnflushedEntriesCount</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.884">getUnflushedEntriesCount</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.888">getUnflushedEntriesCount</a>()</pre>
 </li>
 </ul>
 <a name="isUnflushedEntries--">
@@ -1802,7 +1818,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>isUnflushedEntries</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.890">isUnflushedEntries</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.894">isUnflushedEntries</a>()</pre>
 </li>
 </ul>
 <a name="atHeadOfRingBufferEventHandlerAppend--">
@@ -1811,7 +1827,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>atHeadOfRingBufferEventHandlerAppend</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.898">atHeadOfRingBufferEventHandlerAppend</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.902">atHeadOfRingBufferEventHandlerAppend</a>()</pre>
 <div class="block">Exposed for testing only. Use to tricks like halt the ring buffer appending.</div>
 </li>
 </ul>
@@ -1823,7 +1839,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.902">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.906">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
                                <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)
                         throws <a href="https://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>
@@ -1838,7 +1854,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>postAppend</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.935">postAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;e,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.939">postAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;e,
                         long&nbsp;elapsedTime)
                  throws <a href="https://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>
@@ -1853,7 +1869,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>postSync</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.948">postSync</a>(long&nbsp;timeInNanos,
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.952">postSync</a>(long&nbsp;timeInNanos,
                               int&nbsp;handlerSyncs)</pre>
 </li>
 </ul>
@@ -1863,7 +1879,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>stampSequenceIdAndPublishToRingBuffer</h4>
-<pre>protected final&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.962">stampSequenceIdAndPublishToRingBuffer</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
+<pre>protected final&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.966">stampSequenceIdAndPublishToRingBuffer</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                                            <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;key,
                                                            <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
                                                            boolean&nbsp;inMemstore,
@@ -1881,7 +1897,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <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/wal/AbstractFSWAL.html#line.985">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/wal/AbstractFSWAL.html#line.989">toString</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#toString--">WAL</a></code></span></div>
 <div class="block">Human readable identifying information about the state of this WAL.
  Implementors are encouraged to include information appropriate for debugging.
@@ -1901,7 +1917,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFileSizeIfBeingWritten</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.996">getLogFileSizeIfBeingWritten</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1000">getLogFileSizeIfBeingWritten</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
 <div class="block">if the given <code>path</code> is being written currently, then return its length.
  <p>
  This is used by replication to prevent replicating unacked log entries. See
@@ -1918,7 +1934,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1024">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1028">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
                             <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;key,
                             <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
                             boolean&nbsp;inMemstore)
@@ -1960,7 +1976,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doAppend</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1027">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1031">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
                                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)
                           throws <a href="https://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>
@@ -1975,7 +1991,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriterInstance</h4>
-<pre>protected abstract&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1029">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>protected abstract&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1033">createWriterInstance</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>,
                                           <a href="../../../../../../org/apache/hadoop/hbase/util/CommonFSUtils.StreamLacksCapabilityException.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils.StreamLacksCapabilityException</a></pre>
 <dl>
@@ -1993,7 +2009,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doReplaceWriter</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1032">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1036">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                         org.apache.hadoop.fs.Path&nbsp;newPath,
                                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;nextWriter)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2009,7 +2025,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doShutdown</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1035">doShutdown</a>()
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1039">doShutdown</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>
@@ -2023,7 +2039,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doCheckLogLowReplication</h4>
-<pre>protected abstract&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1037">doCheckLogLowReplication</a>()</pre>
+<pre>protected abstract&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1041">doCheckLogLowReplication</a>()</pre>
 </li>
 </ul>
 <a name="checkLogLowReplication-long-">
@@ -2032,7 +2048,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>checkLogLowReplication</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1039">checkLogLowReplication</a>(long&nbsp;checkInterval)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1043">checkLogLowReplication</a>(long&nbsp;checkInterval)</pre>
 </li>
 </ul>
 <a name="getPipeline--">
@@ -2041,7 +2057,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getPipeline</h4>
-<pre>abstract&nbsp;org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1062">getPipeline</a>()</pre>
+<pre>abstract&nbsp;org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1066">getPipeline</a>()</pre>
 <div class="block">This method gets the pipeline for the current WAL.</div>
 </li>
 </ul>
@@ -2051,7 +2067,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogReplication</h4>
-<pre>abstract&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1068">getLogReplication</a>()</pre>
+<pre>abstract&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1072">getLogReplication</a>()</pre>
 <div class="block">This method gets the datanode replication count for the current WAL.</div>
 </li>
 </ul>
@@ -2061,7 +2077,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1070">split</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1074">split</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                           org.apache.hadoop.fs.Path&nbsp;p)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2076,7 +2092,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>usage</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1088">usage</a>()</pre>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1092">usage</a>()</pre>
 </li>
 </ul>
 <a name="main-java.lang.String:A-">
@@ -2085,7 +2101,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1103">main</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;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1107">main</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;args)
                  throws <a href="https://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">Pass one or more log file names and it will either dump out a text version on
  <code>stdout</code> or split the specified log files.</div>


[09/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
index a8963da..6d367c6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
@@ -369,85 +369,86 @@
 <span class="sourceLineNo">361</span>  protected void deleteBulkLoadDirectory() throws IOException {<a name="line.361"></a>
 <span class="sourceLineNo">362</span>    // delete original bulk load directory on method exit<a name="line.362"></a>
 <span class="sourceLineNo">363</span>    Path path = getBulkOutputDir();<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    boolean result = fs.delete(path, true);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    if (!result) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      LOG.warn("Could not delete " + path);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  protected void convertWALsToHFiles() throws IOException {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    // get incremental backup file list and prepare parameters for DistCp<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    List&lt;String&gt; incrBackupFileList = backupInfo.getIncrBackupFileList();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    // Get list of tables in incremental backup set<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    Set&lt;TableName&gt; tableSet = backupManager.getIncrementalBackupTableSet();<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    // filter missing files out (they have been copied by previous backups)<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    incrBackupFileList = filterMissingFiles(incrBackupFileList);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;String&gt; tableList = new ArrayList&lt;String&gt;();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    for (TableName table : tableSet) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      // Check if table exists<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      if (tableExists(table, conn)) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        tableList.add(table.getNameAsString());<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      } else {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        LOG.warn("Table " + table + " does not exists. Skipping in WAL converter");<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    walToHFiles(incrBackupFileList, tableList);<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  protected boolean tableExists(TableName table, Connection conn) throws IOException {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    try (Admin admin = conn.getAdmin()) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      return admin.tableExists(table);<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><a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected void walToHFiles(List&lt;String&gt; dirPaths, List&lt;String&gt; tableList) throws IOException {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    Tool player = new WALPlayer();<a name="line.397"></a>
-<span class="sourceLineNo">398</span><a name="line.398"></a>
-<span class="sourceLineNo">399</span>    // Player reads all files in arbitrary directory structure and creates<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // a Map task for each file. We use ';' as separator<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    // because WAL file names contains ','<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    String dirs = StringUtils.join(dirPaths, ';');<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    String jobname = "Incremental_Backup-" + backupId ;<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span>    Path bulkOutputPath = getBulkOutputDir();<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    conf.set(WALPlayer.BULK_OUTPUT_CONF_KEY, bulkOutputPath.toString());<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    conf.set(WALPlayer.INPUT_FILES_SEPARATOR_KEY, ";");<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    conf.setBoolean(WALPlayer.MULTI_TABLES_SUPPORT, true);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    conf.set(JOB_NAME_CONF_KEY, jobname);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    String[] playerArgs = { dirs, StringUtils.join(tableList, ",") };<a name="line.410"></a>
-<span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    try {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      player.setConf(conf);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      int result = player.run(playerArgs);<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      if(result != 0) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        throw new IOException("WAL Player failed");<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      conf.unset(WALPlayer.INPUT_FILES_SEPARATOR_KEY);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      conf.unset(JOB_NAME_CONF_KEY);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    } catch (IOException e) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      throw e;<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    } catch (Exception ee) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      throw new IOException("Can not convert from directory " + dirs<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          + " (check Hadoop, HBase and WALPlayer M/R job logs) ", ee);<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><a name="line.427"></a>
-<span class="sourceLineNo">428</span>  protected Path getBulkOutputDirForTable(TableName table) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    Path tablePath = getBulkOutputDir();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    tablePath = new Path(tablePath, table.getNamespaceAsString());<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    tablePath = new Path(tablePath, table.getQualifierAsString());<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    return new Path(tablePath, "data");<a name="line.432"></a>
-<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  protected Path getBulkOutputDir() {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    String backupId = backupInfo.getBackupId();<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    Path path = new Path(backupInfo.getBackupRootDir());<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    path = new Path(path, ".tmp");<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    path = new Path(path, backupId);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    return path;<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>}<a name="line.442"></a>
+<span class="sourceLineNo">364</span>    FileSystem fs = FileSystem.get(path.toUri(), conf);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    boolean result = fs.delete(path, true);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    if (!result) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      LOG.warn("Could not delete " + path);<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>  protected void convertWALsToHFiles() throws IOException {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    // get incremental backup file list and prepare parameters for DistCp<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    List&lt;String&gt; incrBackupFileList = backupInfo.getIncrBackupFileList();<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    // Get list of tables in incremental backup set<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Set&lt;TableName&gt; tableSet = backupManager.getIncrementalBackupTableSet();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    // filter missing files out (they have been copied by previous backups)<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    incrBackupFileList = filterMissingFiles(incrBackupFileList);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    List&lt;String&gt; tableList = new ArrayList&lt;String&gt;();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    for (TableName table : tableSet) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      // Check if table exists<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      if (tableExists(table, conn)) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        tableList.add(table.getNameAsString());<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      } else {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        LOG.warn("Table " + table + " does not exists. Skipping in WAL converter");<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>    walToHFiles(incrBackupFileList, tableList);<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  protected boolean tableExists(TableName table, Connection conn) throws IOException {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    try (Admin admin = conn.getAdmin()) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      return admin.tableExists(table);<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>  protected void walToHFiles(List&lt;String&gt; dirPaths, List&lt;String&gt; tableList) throws IOException {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    Tool player = new WALPlayer();<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>    // Player reads all files in arbitrary directory structure and creates<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    // a Map task for each file. We use ';' as separator<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    // because WAL file names contains ','<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    String dirs = StringUtils.join(dirPaths, ';');<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    String jobname = "Incremental_Backup-" + backupId ;<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    Path bulkOutputPath = getBulkOutputDir();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    conf.set(WALPlayer.BULK_OUTPUT_CONF_KEY, bulkOutputPath.toString());<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    conf.set(WALPlayer.INPUT_FILES_SEPARATOR_KEY, ";");<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    conf.setBoolean(WALPlayer.MULTI_TABLES_SUPPORT, true);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    conf.set(JOB_NAME_CONF_KEY, jobname);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    String[] playerArgs = { dirs, StringUtils.join(tableList, ",") };<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>    try {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      player.setConf(conf);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      int result = player.run(playerArgs);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      if(result != 0) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        throw new IOException("WAL Player failed");<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      conf.unset(WALPlayer.INPUT_FILES_SEPARATOR_KEY);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      conf.unset(JOB_NAME_CONF_KEY);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    } catch (IOException e) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      throw e;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    } catch (Exception ee) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      throw new IOException("Can not convert from directory " + dirs<a name="line.424"></a>
+<span class="sourceLineNo">425</span>          + " (check Hadoop, HBase and WALPlayer M/R job logs) ", ee);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>  protected Path getBulkOutputDirForTable(TableName table) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    Path tablePath = getBulkOutputDir();<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    tablePath = new Path(tablePath, table.getNamespaceAsString());<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    tablePath = new Path(tablePath, table.getQualifierAsString());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    return new Path(tablePath, "data");<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>  protected Path getBulkOutputDir() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    String backupId = backupInfo.getBackupId();<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    Path path = new Path(backupInfo.getBackupRootDir());<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    path = new Path(path, ".tmp");<a name="line.439"></a>
+<span class="sourceLineNo">440</span>    path = new Path(path, backupId);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    return path;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
+<span class="sourceLineNo">443</span>}<a name="line.443"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html b/devapidocs/src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html
index 8dc15f2..5a87bc3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html
@@ -571,196 +571,197 @@
 <span class="sourceLineNo">563</span>  private static List&lt;BackupInfo&gt; getHistory(Configuration conf, Path backupRootPath)<a name="line.563"></a>
 <span class="sourceLineNo">564</span>      throws IOException {<a name="line.564"></a>
 <span class="sourceLineNo">565</span>    // Get all (n) history from backup root destination<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    FileSystem fs = FileSystem.get(conf);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listLocatedStatus(backupRootPath);<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>    List&lt;BackupInfo&gt; infos = new ArrayList&lt;&gt;();<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    while (it.hasNext()) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>      LocatedFileStatus lfs = it.next();<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>      if (!lfs.isDirectory()) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>        continue;<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>      String backupId = lfs.getPath().getName();<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      try {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        BackupInfo info = loadBackupInfo(backupRootPath, backupId, fs);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        infos.add(info);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      } catch (IOException e) {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        LOG.error("Can not load backup info from: " + lfs.getPath(), e);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      }<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
-<span class="sourceLineNo">585</span>    // Sort<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    Collections.sort(infos, new Comparator&lt;BackupInfo&gt;() {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      @Override<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      public int compare(BackupInfo o1, BackupInfo o2) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        long ts1 = getTimestamp(o1.getBackupId());<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        long ts2 = getTimestamp(o2.getBackupId());<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>        if (ts1 == ts2) {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>          return 0;<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
-<span class="sourceLineNo">595</span><a name="line.595"></a>
-<span class="sourceLineNo">596</span>        return ts1 &lt; ts2 ? 1 : -1;<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>      private long getTimestamp(String backupId) {<a name="line.599"></a>
-<span class="sourceLineNo">600</span>        String[] split = backupId.split("_");<a name="line.600"></a>
-<span class="sourceLineNo">601</span>        return Long.parseLong(split[1]);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      }<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    });<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    return infos;<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  public static List&lt;BackupInfo&gt; getHistory(Configuration conf, int n, Path backupRootPath,<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      BackupInfo.Filter... filters) throws IOException {<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    List&lt;BackupInfo&gt; infos = getHistory(conf, backupRootPath);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    List&lt;BackupInfo&gt; ret = new ArrayList&lt;&gt;();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    for (BackupInfo info : infos) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      if (ret.size() == n) {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        break;<a name="line.613"></a>
-<span class="sourceLineNo">614</span>      }<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      boolean passed = true;<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      for (int i = 0; i &lt; filters.length; i++) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        if (!filters[i].apply(info)) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>          passed = false;<a name="line.618"></a>
-<span class="sourceLineNo">619</span>          break;<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>      if (passed) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        ret.add(info);<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>    return ret;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>  public static BackupInfo loadBackupInfo(Path backupRootPath, String backupId, FileSystem fs)<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      throws IOException {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    Path backupPath = new Path(backupRootPath, backupId);<a name="line.631"></a>
-<span class="sourceLineNo">632</span><a name="line.632"></a>
-<span class="sourceLineNo">633</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(backupPath, true);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    while (it.hasNext()) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      LocatedFileStatus lfs = it.next();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      if (lfs.getPath().getName().equals(BackupManifest.MANIFEST_FILE_NAME)) {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>        // Load BackupManifest<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        BackupManifest manifest = new BackupManifest(fs, lfs.getPath().getParent());<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        BackupInfo info = manifest.toBackupInfo();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        return info;<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      }<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    return null;<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>  /**<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   * Create restore request.<a name="line.647"></a>
-<span class="sourceLineNo">648</span>   * @param backupRootDir backup root dir<a name="line.648"></a>
-<span class="sourceLineNo">649</span>   * @param backupId backup id<a name="line.649"></a>
-<span class="sourceLineNo">650</span>   * @param check check only<a name="line.650"></a>
-<span class="sourceLineNo">651</span>   * @param fromTables table list from<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * @param toTables table list to<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   * @param isOverwrite overwrite data<a name="line.653"></a>
-<span class="sourceLineNo">654</span>   * @return request obkect<a name="line.654"></a>
-<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  public static RestoreRequest createRestoreRequest(String backupRootDir, String backupId,<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      boolean check, TableName[] fromTables, TableName[] toTables, boolean isOverwrite) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    RestoreRequest.Builder builder = new RestoreRequest.Builder();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    RestoreRequest request =<a name="line.659"></a>
-<span class="sourceLineNo">660</span>        builder.withBackupRootDir(backupRootDir).withBackupId(backupId).withCheck(check)<a name="line.660"></a>
-<span class="sourceLineNo">661</span>            .withFromTables(fromTables).withToTables(toTables).withOvewrite(isOverwrite).build();<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    return request;<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  public static boolean validate(HashMap&lt;TableName, BackupManifest&gt; backupManifestMap,<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      Configuration conf) throws IOException {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    boolean isValid = true;<a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
-<span class="sourceLineNo">669</span>    for (Entry&lt;TableName, BackupManifest&gt; manifestEntry : backupManifestMap.entrySet()) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      TableName table = manifestEntry.getKey();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      TreeSet&lt;BackupImage&gt; imageSet = new TreeSet&lt;&gt;();<a name="line.671"></a>
-<span class="sourceLineNo">672</span><a name="line.672"></a>
-<span class="sourceLineNo">673</span>      ArrayList&lt;BackupImage&gt; depList = manifestEntry.getValue().getDependentListByTable(table);<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      if (depList != null &amp;&amp; !depList.isEmpty()) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        imageSet.addAll(depList);<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      }<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>      LOG.info("Dependent image(s) from old to new:");<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      for (BackupImage image : imageSet) {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>        String imageDir =<a name="line.680"></a>
-<span class="sourceLineNo">681</span>            HBackupFileSystem.getTableBackupDir(image.getRootDir(), image.getBackupId(), table);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        if (!BackupUtils.checkPathExist(imageDir, conf)) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>          LOG.error("ERROR: backup image does not exist: " + imageDir);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          isValid = false;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          break;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>        LOG.info("Backup image: " + image.getBackupId() + " for '" + table + "' is available");<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>    return isValid;<a name="line.690"></a>
-<span class="sourceLineNo">691</span>  }<a name="line.691"></a>
-<span class="sourceLineNo">692</span><a name="line.692"></a>
-<span class="sourceLineNo">693</span>  public static Path getBulkOutputDir(String tableName, Configuration conf, boolean deleteOnExit)<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      throws IOException {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    FileSystem fs = FileSystem.get(conf);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    String tmp = conf.get(HConstants.TEMPORARY_FS_DIRECTORY_KEY,<a name="line.696"></a>
-<span class="sourceLineNo">697</span>            HConstants.DEFAULT_TEMPORARY_HDFS_DIRECTORY);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    Path path =<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        new Path(tmp + Path.SEPARATOR + "bulk_output-" + tableName + "-"<a name="line.699"></a>
-<span class="sourceLineNo">700</span>            + EnvironmentEdgeManager.currentTime());<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    if (deleteOnExit) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>      fs.deleteOnExit(path);<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return path;<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>  public static Path getBulkOutputDir(String tableName, Configuration conf) throws IOException {<a name="line.707"></a>
-<span class="sourceLineNo">708</span>    return getBulkOutputDir(tableName, conf, true);<a name="line.708"></a>
-<span class="sourceLineNo">709</span>  }<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>  public static String getFileNameCompatibleString(TableName table) {<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    return table.getNamespaceAsString() + "-" + table.getQualifierAsString();<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>  public static boolean failed(int result) {<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return result != 0;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  public static boolean succeeded(int result) {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    return result == 0;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  }<a name="line.721"></a>
-<span class="sourceLineNo">722</span><a name="line.722"></a>
-<span class="sourceLineNo">723</span>  public static LoadIncrementalHFiles createLoader(Configuration config) throws IOException {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>    // set configuration for restore:<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // LoadIncrementalHFile needs more time<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    // &lt;name&gt;hbase.rpc.timeout&lt;/name&gt; &lt;value&gt;600000&lt;/value&gt;<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    // calculates<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    Configuration conf = new Configuration(config);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, MILLISEC_IN_HOUR);<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>    // By default, it is 32 and loader will fail if # of files in any region exceed this<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    // limit. Bad for snapshot restore.<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    conf.setInt(LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY, Integer.MAX_VALUE);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    conf.set(LoadIncrementalHFiles.IGNORE_UNMATCHED_CF_CONF_KEY, "yes");<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    LoadIncrementalHFiles loader;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    try {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>      loader = new LoadIncrementalHFiles(conf);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    } catch (Exception e) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      throw new IOException(e);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return loader;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  public static String findMostRecentBackupId(String[] backupIds) {<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    long recentTimestamp = Long.MIN_VALUE;<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    for (String backupId : backupIds) {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      long ts = Long.parseLong(backupId.split("_")[1]);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>      if (ts &gt; recentTimestamp) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>        recentTimestamp = ts;<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>    return BackupRestoreConstants.BACKUPID_PREFIX + recentTimestamp;<a name="line.752"></a>
-<span class="sourceLineNo">753</span>  }<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>}<a name="line.755"></a>
+<span class="sourceLineNo">566</span><a name="line.566"></a>
+<span class="sourceLineNo">567</span>    FileSystem fs = FileSystem.get(backupRootPath.toUri(), conf);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listLocatedStatus(backupRootPath);<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>    List&lt;BackupInfo&gt; infos = new ArrayList&lt;&gt;();<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    while (it.hasNext()) {<a name="line.571"></a>
+<span class="sourceLineNo">572</span>      LocatedFileStatus lfs = it.next();<a name="line.572"></a>
+<span class="sourceLineNo">573</span><a name="line.573"></a>
+<span class="sourceLineNo">574</span>      if (!lfs.isDirectory()) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        continue;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      }<a name="line.576"></a>
+<span class="sourceLineNo">577</span><a name="line.577"></a>
+<span class="sourceLineNo">578</span>      String backupId = lfs.getPath().getName();<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      try {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        BackupInfo info = loadBackupInfo(backupRootPath, backupId, fs);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        infos.add(info);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      } catch (IOException e) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        LOG.error("Can not load backup info from: " + lfs.getPath(), e);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      }<a name="line.584"></a>
+<span class="sourceLineNo">585</span>    }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    // Sort<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    Collections.sort(infos, new Comparator&lt;BackupInfo&gt;() {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      @Override<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      public int compare(BackupInfo o1, BackupInfo o2) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        long ts1 = getTimestamp(o1.getBackupId());<a name="line.590"></a>
+<span class="sourceLineNo">591</span>        long ts2 = getTimestamp(o2.getBackupId());<a name="line.591"></a>
+<span class="sourceLineNo">592</span><a name="line.592"></a>
+<span class="sourceLineNo">593</span>        if (ts1 == ts2) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          return 0;<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        return ts1 &lt; ts2 ? 1 : -1;<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>      private long getTimestamp(String backupId) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        String[] split = backupId.split("_");<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        return Long.parseLong(split[1]);<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      }<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    });<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    return infos;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>  }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>  public static List&lt;BackupInfo&gt; getHistory(Configuration conf, int n, Path backupRootPath,<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      BackupInfo.Filter... filters) throws IOException {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    List&lt;BackupInfo&gt; infos = getHistory(conf, backupRootPath);<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    List&lt;BackupInfo&gt; ret = new ArrayList&lt;&gt;();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    for (BackupInfo info : infos) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>      if (ret.size() == n) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        break;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      boolean passed = true;<a name="line.616"></a>
+<span class="sourceLineNo">617</span>      for (int i = 0; i &lt; filters.length; i++) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        if (!filters[i].apply(info)) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>          passed = false;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>          break;<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>      if (passed) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>        ret.add(info);<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      }<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    return ret;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>  public static BackupInfo loadBackupInfo(Path backupRootPath, String backupId, FileSystem fs)<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      throws IOException {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    Path backupPath = new Path(backupRootPath, backupId);<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>    RemoteIterator&lt;LocatedFileStatus&gt; it = fs.listFiles(backupPath, true);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    while (it.hasNext()) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      LocatedFileStatus lfs = it.next();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>      if (lfs.getPath().getName().equals(BackupManifest.MANIFEST_FILE_NAME)) {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>        // Load BackupManifest<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        BackupManifest manifest = new BackupManifest(fs, lfs.getPath().getParent());<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        BackupInfo info = manifest.toBackupInfo();<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        return info;<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>    return null;<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>   * Create restore request.<a name="line.648"></a>
+<span class="sourceLineNo">649</span>   * @param backupRootDir backup root dir<a name="line.649"></a>
+<span class="sourceLineNo">650</span>   * @param backupId backup id<a name="line.650"></a>
+<span class="sourceLineNo">651</span>   * @param check check only<a name="line.651"></a>
+<span class="sourceLineNo">652</span>   * @param fromTables table list from<a name="line.652"></a>
+<span class="sourceLineNo">653</span>   * @param toTables table list to<a name="line.653"></a>
+<span class="sourceLineNo">654</span>   * @param isOverwrite overwrite data<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   * @return request obkect<a name="line.655"></a>
+<span class="sourceLineNo">656</span>   */<a name="line.656"></a>
+<span class="sourceLineNo">657</span>  public static RestoreRequest createRestoreRequest(String backupRootDir, String backupId,<a name="line.657"></a>
+<span class="sourceLineNo">658</span>      boolean check, TableName[] fromTables, TableName[] toTables, boolean isOverwrite) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>    RestoreRequest.Builder builder = new RestoreRequest.Builder();<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    RestoreRequest request =<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        builder.withBackupRootDir(backupRootDir).withBackupId(backupId).withCheck(check)<a name="line.661"></a>
+<span class="sourceLineNo">662</span>            .withFromTables(fromTables).withToTables(toTables).withOvewrite(isOverwrite).build();<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    return request;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>  }<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>  public static boolean validate(HashMap&lt;TableName, BackupManifest&gt; backupManifestMap,<a name="line.666"></a>
+<span class="sourceLineNo">667</span>      Configuration conf) throws IOException {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    boolean isValid = true;<a name="line.668"></a>
+<span class="sourceLineNo">669</span><a name="line.669"></a>
+<span class="sourceLineNo">670</span>    for (Entry&lt;TableName, BackupManifest&gt; manifestEntry : backupManifestMap.entrySet()) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>      TableName table = manifestEntry.getKey();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>      TreeSet&lt;BackupImage&gt; imageSet = new TreeSet&lt;&gt;();<a name="line.672"></a>
+<span class="sourceLineNo">673</span><a name="line.673"></a>
+<span class="sourceLineNo">674</span>      ArrayList&lt;BackupImage&gt; depList = manifestEntry.getValue().getDependentListByTable(table);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      if (depList != null &amp;&amp; !depList.isEmpty()) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        imageSet.addAll(depList);<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>      LOG.info("Dependent image(s) from old to new:");<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      for (BackupImage image : imageSet) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>        String imageDir =<a name="line.681"></a>
+<span class="sourceLineNo">682</span>            HBackupFileSystem.getTableBackupDir(image.getRootDir(), image.getBackupId(), table);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        if (!BackupUtils.checkPathExist(imageDir, conf)) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>          LOG.error("ERROR: backup image does not exist: " + imageDir);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>          isValid = false;<a name="line.685"></a>
+<span class="sourceLineNo">686</span>          break;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        }<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        LOG.info("Backup image: " + image.getBackupId() + " for '" + table + "' is available");<a name="line.688"></a>
+<span class="sourceLineNo">689</span>      }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>    return isValid;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>  }<a name="line.692"></a>
+<span class="sourceLineNo">693</span><a name="line.693"></a>
+<span class="sourceLineNo">694</span>  public static Path getBulkOutputDir(String tableName, Configuration conf, boolean deleteOnExit)<a name="line.694"></a>
+<span class="sourceLineNo">695</span>      throws IOException {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    FileSystem fs = FileSystem.get(conf);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    String tmp = conf.get(HConstants.TEMPORARY_FS_DIRECTORY_KEY,<a name="line.697"></a>
+<span class="sourceLineNo">698</span>            HConstants.DEFAULT_TEMPORARY_HDFS_DIRECTORY);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    Path path =<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        new Path(tmp + Path.SEPARATOR + "bulk_output-" + tableName + "-"<a name="line.700"></a>
+<span class="sourceLineNo">701</span>            + EnvironmentEdgeManager.currentTime());<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    if (deleteOnExit) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>      fs.deleteOnExit(path);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    return path;<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>  public static Path getBulkOutputDir(String tableName, Configuration conf) throws IOException {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return getBulkOutputDir(tableName, conf, true);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>  public static String getFileNameCompatibleString(TableName table) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    return table.getNamespaceAsString() + "-" + table.getQualifierAsString();<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>  public static boolean failed(int result) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    return result != 0;<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>  public static boolean succeeded(int result) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>    return result == 0;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>  }<a name="line.722"></a>
+<span class="sourceLineNo">723</span><a name="line.723"></a>
+<span class="sourceLineNo">724</span>  public static LoadIncrementalHFiles createLoader(Configuration config) throws IOException {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>    // set configuration for restore:<a name="line.725"></a>
+<span class="sourceLineNo">726</span>    // LoadIncrementalHFile needs more time<a name="line.726"></a>
+<span class="sourceLineNo">727</span>    // &lt;name&gt;hbase.rpc.timeout&lt;/name&gt; &lt;value&gt;600000&lt;/value&gt;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>    // calculates<a name="line.728"></a>
+<span class="sourceLineNo">729</span>    Configuration conf = new Configuration(config);<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    conf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY, MILLISEC_IN_HOUR);<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>    // By default, it is 32 and loader will fail if # of files in any region exceed this<a name="line.732"></a>
+<span class="sourceLineNo">733</span>    // limit. Bad for snapshot restore.<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    conf.setInt(LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY, Integer.MAX_VALUE);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    conf.set(LoadIncrementalHFiles.IGNORE_UNMATCHED_CF_CONF_KEY, "yes");<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    LoadIncrementalHFiles loader;<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    try {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>      loader = new LoadIncrementalHFiles(conf);<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    } catch (Exception e) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>      throw new IOException(e);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    return loader;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>  }<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>  public static String findMostRecentBackupId(String[] backupIds) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    long recentTimestamp = Long.MIN_VALUE;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    for (String backupId : backupIds) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      long ts = Long.parseLong(backupId.split("_")[1]);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>      if (ts &gt; recentTimestamp) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        recentTimestamp = ts;<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>    return BackupRestoreConstants.BACKUPID_PREFIX + recentTimestamp;<a name="line.753"></a>
+<span class="sourceLineNo">754</span>  }<a name="line.754"></a>
+<span class="sourceLineNo">755</span><a name="line.755"></a>
+<span class="sourceLineNo">756</span>}<a name="line.756"></a>
 
 
 


[02/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html
index 47245bb..0e3d2ab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html
@@ -100,203 +100,202 @@
 <span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * @param factory factory that made us, identity used for FS layout. may not be null<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   * @param conf may not be null<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param listeners may be null<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   *                   null<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    if (factory != null) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    this.factory = factory;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    this.conf = conf;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.106"></a>
+<span class="sourceLineNo">095</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   *                   null<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    if (factory != null) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.factory = factory;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.conf = conf;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><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><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  @Override<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public List&lt;WAL&gt; getWALs() {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    return Collections.singletonList(log);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private FSHLog createWAL() throws IOException {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  @Override<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    FSHLog log = this.log;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if (log != null) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      return log;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    synchronized (this) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      log = this.log;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      if (log == null) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        log = createWAL();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        this.log = log;<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>    return log;<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>  @Override<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public void close() throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    FSHLog log = this.log;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (log != null) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      log.close();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<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>  @Override<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  public void shutdown() throws IOException {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    FSHLog log = this.log;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    if (log != null) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      log.shutdown();<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><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static class IOTestWAL extends FSHLog {<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private final boolean doFileRolls;<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    private final boolean initialized;<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    /**<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>     *<a name="line.165"></a>
-<span class="sourceLineNo">166</span>     * You should never have to load an existing log. If there is a log at<a name="line.166"></a>
-<span class="sourceLineNo">167</span>     * startup, it should have already been processed and deleted by the time the<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * WAL object is started up.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param fs filesystem handle<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     * @param rootDir path to where logs and oldlogs<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     * @param logDir dir where wals are stored<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @param archiveDir dir where wals are archived<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     * @param conf configuration to use<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * be registered before we do anything else; e.g. the<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     * Constructor {@link #rollWriter()}.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.178"></a>
-<span class="sourceLineNo">179</span>     *        already exist.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.180"></a>
-<span class="sourceLineNo">181</span>     *        it will be URL encoded before being used.<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     *        If prefix is null, "wal" will be used<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     * @throws IOException<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        final String archiveDir, final Configuration conf,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        throws IOException {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      initialized = true;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>
-<span class="sourceLineNo">200</span>    private Writer noRollsWriter;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // if we are skipping it, just keep returning the same writer.<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      // we don't know yet if we're supposed to generally roll and<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      if (!initialized || doFileRolls) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        LOG.info("creating new writer instance.");<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        try {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>          writer.init(fs, path, conf, false);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.215"></a>
-<span class="sourceLineNo">216</span>              "doesn't support needed stream capabilities.", exception);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        if (!initialized) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          noRollsWriter = writer;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        return writer;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      } else {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        // a race for first assignment.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        return noRollsWriter;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<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>  /**<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    private boolean doAppends;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    private boolean doSyncs;<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 void init(FileSystem fs, Path path, Configuration conf, boolean overwritable)<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        doAppends = doSyncs = true;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        doAppends = doSyncs = false;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      } else {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      super.init(fs, path, conf, overwritable);<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>    protected String getWriterClassName() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return ProtobufLogWriter.class.getSimpleName();<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 void append(Entry entry) throws IOException {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (doAppends) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        super.append(entry);<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><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    public void sync(boolean forceSync) throws IOException {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      if (doSyncs) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        super.sync(forceSync);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public long getNumLogFiles() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return this.log.getNumLogFiles();<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 getLogFileSize() {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    return this.log.getLogFileSize();<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 void addWALActionsListener(WALActionsListener listener) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // TODO Implement WALProvider.addWALActionLister<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>}<a name="line.291"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @Override<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public List&lt;WAL&gt; getWALs() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return Collections.singletonList(log);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private FSHLog createWAL() throws IOException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<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>  @Override<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    FSHLog log = this.log;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (log != null) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      return log;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    synchronized (this) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      log = this.log;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      if (log == null) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        log = createWAL();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        this.log = log;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    return log;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void close() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    FSHLog log = this.log;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (log != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      log.close();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  public void shutdown() throws IOException {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    FSHLog log = this.log;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (log != null) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.shutdown();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<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>  private static class IOTestWAL extends FSHLog {<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    private final boolean doFileRolls;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    private final boolean initialized;<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>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     *<a name="line.164"></a>
+<span class="sourceLineNo">165</span>     * You should never have to load an existing log. If there is a log at<a name="line.165"></a>
+<span class="sourceLineNo">166</span>     * startup, it should have already been processed and deleted by the time the<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * WAL object is started up.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param fs filesystem handle<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     * @param rootDir path to where logs and oldlogs<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     * @param logDir dir where wals are stored<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @param archiveDir dir where wals are archived<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     * @param conf configuration to use<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * be registered before we do anything else; e.g. the<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     * Constructor {@link #rollWriter()}.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     *        already exist.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.179"></a>
+<span class="sourceLineNo">180</span>     *        it will be URL encoded before being used.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     *        If prefix is null, "wal" will be used<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     * @throws IOException<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        final String archiveDir, final Configuration conf,<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      initialized = true;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>    private Writer noRollsWriter;<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // if we are skipping it, just keep returning the same writer.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      // we don't know yet if we're supposed to generally roll and<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (!initialized || doFileRolls) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        LOG.info("creating new writer instance.");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          writer.init(fs, path, conf, false, this.blocksize);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.214"></a>
+<span class="sourceLineNo">215</span>              "doesn't support needed stream capabilities.", exception);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        if (!initialized) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          noRollsWriter = writer;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        return writer;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        // a race for first assignment.<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return noRollsWriter;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  }<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>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    private boolean doAppends;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    private boolean doSyncs;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        long blocksize) throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        doAppends = doSyncs = true;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        doAppends = doSyncs = false;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      super.init(fs, path, conf, overwritable, blocksize);<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>    @Override<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected String getWriterClassName() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      return ProtobufLogWriter.class.getSimpleName();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public void append(Entry entry) throws IOException {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      if (doAppends) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        super.append(entry);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    @Override<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    public void sync(boolean forceSync) throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      if (doSyncs) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        super.sync(forceSync);<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>  }<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 getNumLogFiles() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    return this.log.getNumLogFiles();<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>  @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  public long getLogFileSize() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    return this.log.getLogFileSize();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>  @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  public void addWALActionsListener(WALActionsListener listener) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    // TODO Implement WALProvider.addWALActionLister<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>}<a name="line.290"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
index 47245bb..0e3d2ab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
@@ -100,203 +100,202 @@
 <span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
 <span class="sourceLineNo">093</span>   * @param factory factory that made us, identity used for FS layout. may not be null<a name="line.93"></a>
 <span class="sourceLineNo">094</span>   * @param conf may not be null<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param listeners may be null<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   *                   null<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    if (factory != null) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    this.factory = factory;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    this.conf = conf;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.106"></a>
+<span class="sourceLineNo">095</span>   * @param providerId differentiate between providers from one facotry, used for FS layout. may be<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   *                   null<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public void init(WALFactory factory, Configuration conf, String providerId) throws IOException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    if (factory != null) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      throw new IllegalStateException("WALProvider.init should only be called once.");<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    this.factory = factory;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.conf = conf;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    this.providerId = providerId != null ? providerId : DEFAULT_PROVIDER_ID;<a name="line.105"></a>
+<span class="sourceLineNo">106</span><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><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  @Override<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public List&lt;WAL&gt; getWALs() {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    return Collections.singletonList(log);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  private FSHLog createWAL() throws IOException {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  @Override<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    FSHLog log = this.log;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if (log != null) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      return log;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    synchronized (this) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      log = this.log;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      if (log == null) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        log = createWAL();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        this.log = log;<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>    return log;<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>  @Override<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public void close() throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    FSHLog log = this.log;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (log != null) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      log.close();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<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>  @Override<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  public void shutdown() throws IOException {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    FSHLog log = this.log;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    if (log != null) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      log.shutdown();<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><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static class IOTestWAL extends FSHLog {<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private final boolean doFileRolls;<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    private final boolean initialized;<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    /**<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>     *<a name="line.165"></a>
-<span class="sourceLineNo">166</span>     * You should never have to load an existing log. If there is a log at<a name="line.166"></a>
-<span class="sourceLineNo">167</span>     * startup, it should have already been processed and deleted by the time the<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * WAL object is started up.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param fs filesystem handle<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     * @param rootDir path to where logs and oldlogs<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     * @param logDir dir where wals are stored<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @param archiveDir dir where wals are archived<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     * @param conf configuration to use<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * be registered before we do anything else; e.g. the<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     * Constructor {@link #rollWriter()}.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.178"></a>
-<span class="sourceLineNo">179</span>     *        already exist.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.180"></a>
-<span class="sourceLineNo">181</span>     *        it will be URL encoded before being used.<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     *        If prefix is null, "wal" will be used<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     * @throws IOException<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        final String archiveDir, final Configuration conf,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        throws IOException {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      initialized = true;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>
-<span class="sourceLineNo">200</span>    private Writer noRollsWriter;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // if we are skipping it, just keep returning the same writer.<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      // we don't know yet if we're supposed to generally roll and<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      if (!initialized || doFileRolls) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        LOG.info("creating new writer instance.");<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        try {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>          writer.init(fs, path, conf, false);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.215"></a>
-<span class="sourceLineNo">216</span>              "doesn't support needed stream capabilities.", exception);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        if (!initialized) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          noRollsWriter = writer;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        return writer;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      } else {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        // a race for first assignment.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        return noRollsWriter;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<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>  /**<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    private boolean doAppends;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    private boolean doSyncs;<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 void init(FileSystem fs, Path path, Configuration conf, boolean overwritable)<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        doAppends = doSyncs = true;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        doAppends = doSyncs = false;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      } else {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      super.init(fs, path, conf, overwritable);<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>    protected String getWriterClassName() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return ProtobufLogWriter.class.getSimpleName();<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 void append(Entry entry) throws IOException {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (doAppends) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        super.append(entry);<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><a name="line.267"></a>
-<span class="sourceLineNo">268</span>    @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    public void sync(boolean forceSync) throws IOException {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      if (doSyncs) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        super.sync(forceSync);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public long getNumLogFiles() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return this.log.getNumLogFiles();<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 getLogFileSize() {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    return this.log.getLogFileSize();<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 void addWALActionsListener(WALActionsListener listener) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // TODO Implement WALProvider.addWALActionLister<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>}<a name="line.291"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @Override<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public List&lt;WAL&gt; getWALs() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return Collections.singletonList(log);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private FSHLog createWAL() throws IOException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    String logPrefix = factory.factoryId + WAL_FILE_NAME_DELIMITER + providerId;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return new IOTestWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        AbstractFSWALProvider.getWALDirectoryName(factory.factoryId),<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        HConstants.HREGION_OLDLOGDIR_NAME, conf, listeners, true, logPrefix,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<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>  @Override<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  public WAL getWAL(RegionInfo region) throws IOException {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    FSHLog log = this.log;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    if (log != null) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      return log;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    synchronized (this) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      log = this.log;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      if (log == null) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        log = createWAL();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        this.log = log;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    return log;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void close() throws IOException {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    FSHLog log = this.log;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (log != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      log.close();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  public void shutdown() throws IOException {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    FSHLog log = this.log;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (log != null) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      log.shutdown();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<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>  private static class IOTestWAL extends FSHLog {<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    private final boolean doFileRolls;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    // Used to differntiate between roll calls before and after we finish construction.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    private final boolean initialized;<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>     * Create an edit log at the given &lt;code&gt;dir&lt;/code&gt; location.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     *<a name="line.164"></a>
+<span class="sourceLineNo">165</span>     * You should never have to load an existing log. If there is a log at<a name="line.165"></a>
+<span class="sourceLineNo">166</span>     * startup, it should have already been processed and deleted by the time the<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * WAL object is started up.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param fs filesystem handle<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     * @param rootDir path to where logs and oldlogs<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     * @param logDir dir where wals are stored<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @param archiveDir dir where wals are archived<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     * @param conf configuration to use<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     * @param listeners Listeners on WAL events. Listeners passed here will<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * be registered before we do anything else; e.g. the<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     * Constructor {@link #rollWriter()}.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * @param failIfWALExists If true IOException will be thrown if files related to this wal<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     *        already exist.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>     * @param prefix should always be hostname and port in distributed env and<a name="line.179"></a>
+<span class="sourceLineNo">180</span>     *        it will be URL encoded before being used.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     *        If prefix is null, "wal" will be used<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * @param suffix will be url encoded. null is treated as empty. non-empty must start with<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     *        {@link AbstractFSWALProvider#WAL_FILE_NAME_DELIMITER}<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     * @throws IOException<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    public IOTestWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        final String archiveDir, final Configuration conf,<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        final List&lt;WALActionsListener&gt; listeners,<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        throws IOException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      doFileRolls = operations.isEmpty() || operations.contains(AllowedOperations.all.name()) ||<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          operations.contains(AllowedOperations.fileroll.name());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      initialized = true;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      LOG.info("Initialized with file rolling " + (doFileRolls ? "enabled" : "disabled"));<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>    private Writer noRollsWriter;<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>    // creatWriterInstance is where the new pipeline is set up for doing file rolls<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // if we are skipping it, just keep returning the same writer.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // we get called from the FSHLog constructor (!); always roll in this case since<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      // we don't know yet if we're supposed to generally roll and<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      // we need an initial file in the case of doing appends but no rolls.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      if (!initialized || doFileRolls) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        LOG.info("creating new writer instance.");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        final ProtobufLogWriter writer = new IOTestWriter();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          writer.init(fs, path, conf, false, this.blocksize);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        } catch (CommonFSUtils.StreamLacksCapabilityException exception) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          throw new IOException("Can't create writer instance because underlying FileSystem " +<a name="line.214"></a>
+<span class="sourceLineNo">215</span>              "doesn't support needed stream capabilities.", exception);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        if (!initialized) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          LOG.info("storing initial writer instance in case file rolling isn't allowed.");<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          noRollsWriter = writer;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        return writer;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        LOG.info("WAL rolling disabled, returning the first writer.");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        // Initial assignment happens during the constructor call, so there ought not be<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        // a race for first assignment.<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        return noRollsWriter;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  }<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>   * Presumes init will be called by a single thread prior to any access of other methods.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  private static class IOTestWriter extends ProtobufLogWriter {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    private boolean doAppends;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    private boolean doSyncs;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        long blocksize) throws IOException, CommonFSUtils.StreamLacksCapabilityException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      Collection&lt;String&gt; operations = conf.getStringCollection(ALLOWED_OPERATIONS);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      if (operations.isEmpty() || operations.contains(AllowedOperations.all.name())) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        doAppends = doSyncs = true;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      } else if (operations.contains(AllowedOperations.none.name())) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        doAppends = doSyncs = false;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        doAppends = operations.contains(AllowedOperations.append.name());<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        doSyncs = operations.contains(AllowedOperations.sync.name());<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      LOG.info("IOTestWriter initialized with appends " + (doAppends ? "enabled" : "disabled") +<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          " and syncs " + (doSyncs ? "enabled" : "disabled"));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      super.init(fs, path, conf, overwritable, blocksize);<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>    @Override<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    protected String getWriterClassName() {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      return ProtobufLogWriter.class.getSimpleName();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public void append(Entry entry) throws IOException {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      if (doAppends) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        super.append(entry);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    @Override<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    public void sync(boolean forceSync) throws IOException {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      if (doSyncs) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        super.sync(forceSync);<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>  }<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 getNumLogFiles() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    return this.log.getNumLogFiles();<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>  @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  public long getLogFileSize() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    return this.log.getLogFileSize();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>  @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  public void addWALActionsListener(WALActionsListener listener) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    // TODO Implement WALProvider.addWALActionLister<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>}<a name="line.290"></a>
 
 
 


[08/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
index 269c311..8c0f827 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
@@ -186,959 +186,963 @@
 <span class="sourceLineNo">178</span>  // If &gt; than this size, roll the log.<a name="line.178"></a>
 <span class="sourceLineNo">179</span>  protected final long logrollsize;<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 more than this many logs, force flush of oldest region to oldest edit goes to disk. If too<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * many and we crash, then will take forever replaying. Keep the number of logs tidy.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  protected final int maxLogs;<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>   * This lock makes sure only one log roll runs at a time. Should not be taken while any other lock<a name="line.188"></a>
-<span class="sourceLineNo">189</span>   * is held. We don't just use synchronized because that results in bogus and tedious findbugs<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * warning when it thinks synchronized controls writer thread safety. It is held when we are<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * actually rolling the log. It is checked when we are looking to see if we should roll the log or<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * not.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   */<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected final ReentrantLock rollWriterLock = new ReentrantLock(true);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  // The timestamp (in ms) when the log file was created.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  protected final AtomicLong filenum = new AtomicLong(-1);<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  // Number of transactions in the current Wal.<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected final AtomicInteger numEntries = new AtomicInteger(0);<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /**<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   * The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   * WALEdit to background consumer thread, and the transaction id is the sequence number of the<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   * corresponding entry in queue.<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected volatile long highestUnsyncedTxid = -1;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * Updated to the transaction id of the last successful sync call. This can be less than<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   * {@link #highestUnsyncedTxid} for case where we have an append where a sync has not yet come in<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * for it.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   */<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  protected final AtomicLong highestSyncedTxid = new AtomicLong(0);<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>   * The total size of wal<a name="line.217"></a>
+<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * Block size to use writing files.<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  protected final long blocksize;<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  /*<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * If more than this many logs, force flush of oldest region to oldest edit goes to disk. If too<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * many and we crash, then will take forever replaying. Keep the number of logs tidy.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  protected final int maxLogs;<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * This lock makes sure only one log roll runs at a time. Should not be taken while any other lock<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * is held. We don't just use synchronized because that results in bogus and tedious findbugs<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * warning when it thinks synchronized controls writer thread safety. It is held when we are<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * actually rolling the log. It is checked when we are looking to see if we should roll the log or<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * not.<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   */<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  protected final ReentrantLock rollWriterLock = new ReentrantLock(true);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>  // The timestamp (in ms) when the log file was created.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  protected final AtomicLong filenum = new AtomicLong(-1);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  // Number of transactions in the current Wal.<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  protected final AtomicInteger numEntries = new AtomicInteger(0);<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>   * The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   * WALEdit to background consumer thread, and the transaction id is the sequence number of the<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   * corresponding entry in queue.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  protected volatile long highestUnsyncedTxid = -1;<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   * Updated to the transaction id of the last successful sync call. This can be less than<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * {@link #highestUnsyncedTxid} for case where we have an append where a sync has not yet come in<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * for it.<a name="line.217"></a>
 <span class="sourceLineNo">218</span>   */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected final AtomicLong totalLogSize = new AtomicLong(0);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * Current log file.<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   */<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  volatile W writer;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  // Last time to check low replication on hlog's pipeline<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private long lastTimeCheckLowReplication = EnvironmentEdgeManager.currentTime();<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected volatile boolean closed = false;<a name="line.228"></a>
+<span class="sourceLineNo">219</span>  protected final AtomicLong highestSyncedTxid = new AtomicLong(0);<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>   * The total size of wal<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final AtomicLong totalLogSize = new AtomicLong(0);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * Current log file.<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   */<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  volatile W writer;<a name="line.228"></a>
 <span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>  protected final AtomicBoolean shutdown = new AtomicBoolean(false);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * an IllegalArgumentException if used to compare paths from different wals.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  final Comparator&lt;Path&gt; LOG_NAME_COMPARATOR =<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    (o1, o2) -&gt; Long.compare(getFileNumFromFileName(o1), getFileNumFromFileName(o2));<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  private static final class WalProps {<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>     * Map the encoded region name to the highest sequence id. Contain all the regions it has<a name="line.241"></a>
-<span class="sourceLineNo">242</span>     * entries of<a name="line.242"></a>
-<span class="sourceLineNo">243</span>     */<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public final Map&lt;byte[], Long&gt; encodedName2HighestSequenceId;<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>     * The log file size. Notice that the size may not be accurate if we do asynchronous close in<a name="line.247"></a>
-<span class="sourceLineNo">248</span>     * sub classes.<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     */<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public final long logSize;<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>    public WalProps(Map&lt;byte[], Long&gt; encodedName2HighestSequenceId, long logSize) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      this.encodedName2HighestSequenceId = encodedName2HighestSequenceId;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      this.logSize = logSize;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  /**<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * Map of WAL log file to properties. The map is sorted by the log file creation timestamp<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * (contained in the log file name).<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  protected ConcurrentNavigableMap&lt;Path, WalProps&gt; walFile2Props =<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    new ConcurrentSkipListMap&lt;&gt;(LOG_NAME_COMPARATOR);<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * Map of {@link SyncFuture}s keyed by Handler objects. Used so we reuse SyncFutures.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * &lt;p&gt;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * TODO: Reuse FSWALEntry's rather than create them anew each time as we do SyncFutures here.<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * &lt;p&gt;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * TODO: Add a FSWalEntry and SyncFuture as thread locals on handlers rather than have them get<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * them from this Map?<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   */<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private final ConcurrentMap&lt;Thread, SyncFuture&gt; syncFuturesByHandler;<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * The class name of the runtime implementation, used as prefix for logging/tracing.<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * &lt;p&gt;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   * Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * refer to HBASE-17676 for more details<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * &lt;/p&gt;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   */<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  protected final String implClassName;<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  public long getFilenum() {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    return this.filenum.get();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>  /**<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * A log file has a creation timestamp (in ms) in its file name ({@link #filenum}. This helper<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * method returns the creation timestamp from a given log file. It extracts the timestamp assuming<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   * the filename is created with the {@link #computeFilename(long filenum)} method.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return timestamp, as in the log file name.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  protected long getFileNumFromFileName(Path fileName) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    checkNotNull(fileName, "file name can't be null");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    if (!ourFiles.accept(fileName)) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      throw new IllegalArgumentException(<a name="line.297"></a>
-<span class="sourceLineNo">298</span>          "The log file " + fileName + " doesn't belong to this WAL. (" + toString() + ")");<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    final String fileNameString = fileName.toString();<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    String chompedPath = fileNameString.substring(prefixPathStr.length(),<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      (fileNameString.length() - walFileSuffix.length()));<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    return Long.parseLong(chompedPath);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  private int calculateMaxLogFiles(Configuration conf, long logRollSize) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    Pair&lt;Long, MemoryType&gt; globalMemstoreSize = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    return (int) ((globalMemstoreSize.getFirst() * 2) / logRollSize);<a name="line.308"></a>
+<span class="sourceLineNo">230</span>  // Last time to check low replication on hlog's pipeline<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  private long lastTimeCheckLowReplication = EnvironmentEdgeManager.currentTime();<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>  protected volatile boolean closed = false;<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  protected final AtomicBoolean shutdown = new AtomicBoolean(false);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   * WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * an IllegalArgumentException if used to compare paths from different wals.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  final Comparator&lt;Path&gt; LOG_NAME_COMPARATOR =<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    (o1, o2) -&gt; Long.compare(getFileNumFromFileName(o1), getFileNumFromFileName(o2));<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private static final class WalProps {<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>     * Map the encoded region name to the highest sequence id. Contain all the regions it has<a name="line.246"></a>
+<span class="sourceLineNo">247</span>     * entries of<a name="line.247"></a>
+<span class="sourceLineNo">248</span>     */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    public final Map&lt;byte[], Long&gt; encodedName2HighestSequenceId;<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>     * The log file size. Notice that the size may not be accurate if we do asynchronous close in<a name="line.252"></a>
+<span class="sourceLineNo">253</span>     * sub classes.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>     */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    public final long logSize;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>    public WalProps(Map&lt;byte[], Long&gt; encodedName2HighestSequenceId, long logSize) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      this.encodedName2HighestSequenceId = encodedName2HighestSequenceId;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      this.logSize = logSize;<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>  /**<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * Map of WAL log file to properties. The map is sorted by the log file creation timestamp<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * (contained in the log file name).<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>  protected ConcurrentNavigableMap&lt;Path, WalProps&gt; walFile2Props =<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    new ConcurrentSkipListMap&lt;&gt;(LOG_NAME_COMPARATOR);<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>   * Map of {@link SyncFuture}s keyed by Handler objects. Used so we reuse SyncFutures.<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * &lt;p&gt;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * TODO: Reuse FSWALEntry's rather than create them anew each time as we do SyncFutures here.<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * &lt;p&gt;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * TODO: Add a FSWalEntry and SyncFuture as thread locals on handlers rather than have them get<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * them from this Map?<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  private final ConcurrentMap&lt;Thread, SyncFuture&gt; syncFuturesByHandler;<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>   * The class name of the runtime implementation, used as prefix for logging/tracing.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>   * &lt;p&gt;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   * refer to HBASE-17676 for more details<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * &lt;/p&gt;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  protected final String implClassName;<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public long getFilenum() {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    return this.filenum.get();<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  }<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * A log file has a creation timestamp (in ms) in its file name ({@link #filenum}. This helper<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * method returns the creation timestamp from a given log file. It extracts the timestamp assuming<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * the filename is created with the {@link #computeFilename(long filenum)} method.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @return timestamp, as in the log file name.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  protected long getFileNumFromFileName(Path fileName) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    checkNotNull(fileName, "file name can't be null");<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    if (!ourFiles.accept(fileName)) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      throw new IllegalArgumentException(<a name="line.302"></a>
+<span class="sourceLineNo">303</span>          "The log file " + fileName + " doesn't belong to this WAL. (" + toString() + ")");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    final String fileNameString = fileName.toString();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    String chompedPath = fileNameString.substring(prefixPathStr.length(),<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      (fileNameString.length() - walFileSuffix.length()));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    return Long.parseLong(chompedPath);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>  }<a name="line.309"></a>
 <span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>  // must be power of 2<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected final int getPreallocatedEventCount() {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // Preallocate objects to use on the ring buffer. The way that appends and syncs work, we will<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    // be stuck and make no progress if the buffer is filled with appends only and there is no<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    // sync. If no sync, then the handlers will be outstanding just waiting on sync completion<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // before they return.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    int preallocatedEventCount =<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      this.conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    checkArgument(preallocatedEventCount &gt;= 0,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      "hbase.regionserver.wal.disruptor.event.count must &gt; 0");<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    int floor = Integer.highestOneBit(preallocatedEventCount);<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    if (floor == preallocatedEventCount) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      return floor;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // max capacity is 1 &lt;&lt; 30<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (floor &gt;= 1 &lt;&lt; 29) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      return 1 &lt;&lt; 30;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return floor &lt;&lt; 1;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  protected AbstractFSWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      final String archiveDir, final Configuration conf, final List&lt;WALActionsListener&gt; listeners,<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      throws FailedLogCloseException, IOException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.fs = fs;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.walDir = new Path(rootDir, logDir);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.walArchiveDir = new Path(rootDir, archiveDir);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    this.conf = conf;<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>    if (!fs.exists(walDir) &amp;&amp; !fs.mkdirs(walDir)) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      throw new IOException("Unable to mkdir " + walDir);<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>    if (!fs.exists(this.walArchiveDir)) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      if (!fs.mkdirs(this.walArchiveDir)) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>        throw new IOException("Unable to mkdir " + this.walArchiveDir);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      }<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    // If prefix is null||empty then just name it wal<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    this.walFilePrefix =<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      prefix == null || prefix.isEmpty() ? "wal" : URLEncoder.encode(prefix, "UTF8");<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    // we only correctly differentiate suffices when numeric ones start with '.'<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    if (suffix != null &amp;&amp; !(suffix.isEmpty()) &amp;&amp; !(suffix.startsWith(WAL_FILE_NAME_DELIMITER))) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      throw new IllegalArgumentException("WAL suffix must start with '" + WAL_FILE_NAME_DELIMITER +<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        "' but instead was '" + suffix + "'");<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    // Now that it exists, set the storage policy for the entire directory of wal files related to<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    // this FSHLog instance<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    CommonFSUtils.setStoragePolicy(fs, conf, this.walDir, HConstants.WAL_STORAGE_POLICY,<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    this.walFileSuffix = (suffix == null) ? "" : URLEncoder.encode(suffix, "UTF8");<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    this.prefixPathStr = new Path(walDir, walFilePrefix + WAL_FILE_NAME_DELIMITER).toString();<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    this.ourFiles = new PathFilter() {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      @Override<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      public boolean accept(final Path fileName) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        // The path should start with dir/&lt;prefix&gt; and end with our suffix<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        final String fileNameString = fileName.toString();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        if (!fileNameString.startsWith(prefixPathStr)) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          return false;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        if (walFileSuffix.isEmpty()) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          // in the case of the null suffix, we need to ensure the filename ends with a timestamp.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          return org.apache.commons.lang3.StringUtils<a name="line.376"></a>
-<span class="sourceLineNo">377</span>              .isNumeric(fileNameString.substring(prefixPathStr.length()));<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        } else if (!fileNameString.endsWith(walFileSuffix)) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          return false;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        return true;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      }<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    };<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    if (failIfWALExists) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      final FileStatus[] walFiles = CommonFSUtils.listStatus(fs, walDir, ourFiles);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      if (null != walFiles &amp;&amp; 0 != walFiles.length) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        throw new IOException("Target WAL already exists within directory " + walDir);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>    // Register listeners. TODO: Should this exist anymore? We have CPs?<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    if (listeners != null) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      for (WALActionsListener i : listeners) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        registerWALActionsListener(i);<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>    this.coprocessorHost = new WALCoprocessorHost(this, conf);<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // Schedule a WAL roll when the WAL is 50% of the HDFS block size. Scheduling at 50% of block<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    // size should make it so WAL rolls before we get to the end-of-block (Block transitions cost<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // some latency). In hbase-1 we did this differently. We scheduled a roll when we hit 95% of<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    // the block size but experience from the field has it that this was not enough time for the<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    // roll to happen before end-of-block. So the new accounting makes WALs of about the same<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    // size as those made in hbase-1 (to prevent surprise), we now have default block size as<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    // 2 times the DFS default: i.e. 2 * DFS default block size rolling at 50% full will generally<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    // make similar size logs to 1 * DFS default block size rolling at 95% full. See HBASE-19148.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    final long blocksize = this.conf.getLong("hbase.regionserver.hlog.blocksize",<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      CommonFSUtils.getDefaultBlockSize(this.fs, this.walDir) * 2);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    this.logrollsize =<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      (long) (blocksize * conf.getFloat("hbase.regionserver.logroll.multiplier", 0.5f));<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>    boolean maxLogsDefined = conf.get("hbase.regionserver.maxlogs") != null;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    if (maxLogsDefined) {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      LOG.warn("'hbase.regionserver.maxlogs' was deprecated.");<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    this.maxLogs = conf.getInt("hbase.regionserver.maxlogs",<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      Math.max(32, calculateMaxLogFiles(conf, logrollsize)));<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>    LOG.info("WAL configuration: blocksize=" + StringUtils.byteDesc(blocksize) + ", rollsize=" +<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      StringUtils.byteDesc(this.logrollsize) + ", prefix=" + this.walFilePrefix + ", suffix=" +<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      walFileSuffix + ", logDir=" + this.walDir + ", archiveDir=" + this.walArchiveDir);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    this.slowSyncNs = TimeUnit.MILLISECONDS<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        .toNanos(conf.getInt("hbase.regionserver.hlog.slowsync.ms", DEFAULT_SLOW_SYNC_TIME_MS));<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    this.walSyncTimeoutNs = TimeUnit.MILLISECONDS<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        .toNanos(conf.getLong("hbase.regionserver.hlog.sync.timeout", DEFAULT_WAL_SYNC_TIMEOUT_MS));<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    int maxHandlersCount = conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT, 200);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    // Presize our map of SyncFutures by handler objects.<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    this.syncFuturesByHandler = new ConcurrentHashMap&lt;&gt;(maxHandlersCount);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    this.implClassName = getClass().getSimpleName();<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>  @Override<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public void registerWALActionsListener(WALActionsListener listener) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    this.listeners.add(listener);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>  @Override<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  public boolean unregisterWALActionsListener(WALActionsListener listener) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    return this.listeners.remove(listener);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<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 WALCoprocessorHost getCoprocessorHost() {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    return coprocessorHost;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  public Long startCacheFlush(byte[] encodedRegionName, Set&lt;byte[]&gt; families) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, families);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  @Override<a name="line.453"></a>
-<span class="sourceLineNo">454</span>  public Long startCacheFlush(byte[] encodedRegionName, Map&lt;byte[], Long&gt; familyToSeq) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, familyToSeq);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>  }<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public void completeCacheFlush(byte[] encodedRegionName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    this.sequenceIdAccounting.completeCacheFlush(encodedRegionName);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  }<a name="line.461"></a>
-<span class="sourceLineNo">462</span><a name="line.462"></a>
-<span class="sourceLineNo">463</span>  @Override<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  public void abortCacheFlush(byte[] encodedRegionName) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    this.sequenceIdAccounting.abortCacheFlush(encodedRegionName);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>  @Override<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // Used by tests. Deprecated as too subtle for general usage.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  @Override<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName, byte[] familyName) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    // This method is used by tests and for figuring if we should flush or not because our<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    // sequenceids are too old. It is also used reporting the master our oldest sequenceid for use<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    // figuring what edits can be skipped during log recovery. getEarliestMemStoreSequenceId<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    // from this.sequenceIdAccounting is looking first in flushingOldestStoreSequenceIds, the<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    // currently flushing sequence ids, and if anything found there, it is returning these. This is<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    // the right thing to do for the reporting oldest sequenceids to master; we won't skip edits if<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    // we crash during the flush. For figuring what to flush, we might get requeued if our sequence<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    // id is old even though we are currently flushing. This may mean we do too much flushing.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName, familyName);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>  @Override<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public byte[][] rollWriter() throws FailedLogCloseException, IOException {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    return rollWriter(false);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>  /**<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * This is a convenience method that computes a new filename with a given file-number.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * @param filenum to use<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * @return Path<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   */<a name="line.496"></a>
-<span class="sourceLineNo">497</span>  protected Path computeFilename(final long filenum) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    if (filenum &lt; 0) {<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      throw new RuntimeException("WAL file number can't be &lt; 0");<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    }<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    String child = walFilePrefix + WAL_FILE_NAME_DELIMITER + filenum + walFileSuffix;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    return new Path(walDir, child);<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>  /**<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * This is a convenience method that computes a new filename with a given using the current WAL<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * file-number<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   * @return Path<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   */<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  public Path getCurrentFileName() {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    return computeFilename(this.filenum.get());<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>  /**<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * retrieve the next path to use for writing. Increments the internal filenum.<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   */<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  private Path getNewPath() throws IOException {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    this.filenum.set(System.currentTimeMillis());<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    Path newPath = getCurrentFileName();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    while (fs.exists(newPath)) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      this.filenum.incrementAndGet();<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      newPath = getCurrentFileName();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    return newPath;<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  @VisibleForTesting<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  Path getOldPath() {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    long currentFilenum = this.filenum.get();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    Path oldPath = null;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    if (currentFilenum &gt; 0) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      // ComputeFilename will take care of meta wal filename<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      oldPath = computeFilename(currentFilenum);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    } // I presume if currentFilenum is &lt;= 0, this is first file and null for oldPath if fine?<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    return oldPath;<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>  /**<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * Tell listeners about pre log roll.<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   */<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  private void tellListenersAboutPreLogRoll(final Path oldPath, final Path newPath)<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      throws IOException {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    coprocessorHost.preWALRoll(oldPath, newPath);<a name="line.543"></a>
-<span class="sourceLineNo">544</span><a name="line.544"></a>
-<span class="sourceLineNo">545</span>    if (!this.listeners.isEmpty()) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      for (WALActionsListener i : this.listeners) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        i.preLogRoll(oldPath, newPath);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      }<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>  }<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>   * Tell listeners about post log roll.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   */<a name="line.554"></a>
-<span class="sourceLineNo">555</span>  private void tellListenersAboutPostLogRoll(final Path oldPath, final Path newPath)<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      throws IOException {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    if (!this.listeners.isEmpty()) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      for (WALActionsListener i : this.listeners) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        i.postLogRoll(oldPath, newPath);<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    }<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>    coprocessorHost.postWALRoll(oldPath, newPath);<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>  // public only until class moves to o.a.h.h.wal<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  /** @return the number of rolled log files */<a name="line.567"></a>
-<span class="sourceLineNo">568</span>  public int getNumRolledLogFiles() {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    return walFile2Props.size();<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>  // public only until class moves to o.a.h.h.wal<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  /** @return the number of log files in use */<a name="line.573"></a>
-<span class="sourceLineNo">574</span>  public int getNumLogFiles() {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    // +1 for current use log<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    return getNumRolledLogFiles() + 1;<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>  /**<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * If the number of un-archived WAL files is greater than maximum allowed, check the first<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * (oldest) WAL file, and returns those regions which should be flushed so that it can be<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   * archived.<a name="line.582"></a>
-<span class="sourceLineNo">583</span>   * @return regions (encodedRegionNames) to flush in order to archive oldest WAL file.<a name="line.583"></a>
-<span class="sourceLineNo">584</span>   */<a name="line.584"></a>
-<span class="sourceLineNo">585</span>  byte[][] findRegionsToForceFlush() throws IOException {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    byte[][] regions = null;<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    int logCount = getNumRolledLogFiles();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (logCount &gt; this.maxLogs &amp;&amp; logCount &gt; 0) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      Map.Entry&lt;Path, WalProps&gt; firstWALEntry = this.walFile2Props.firstEntry();<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      regions =<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        this.sequenceIdAccounting.findLower(firstWALEntry.getValue().encodedName2HighestSequenceId);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    if (regions != null) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      StringBuilder sb = new StringBuilder();<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      for (int i = 0; i &lt; regions.length; i++) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        if (i &gt; 0) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          sb.append(", ");<a name="line.597"></a>
-<span class="sourceLineNo">598</span>        }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>        sb.append(Bytes.toStringBinary(regions[i]));<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      LOG.info("Too many WALs; count=" + logCount + ", max=" + this.maxLogs +<a name="line.601"></a>
-<span class="sourceLineNo">602</span>        "; forcing flush of " + regions.length + " regions(s): " + sb.toString());<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    return regions;<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  /**<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * Archive old logs. A WAL is eligible for archiving if all its WALEdits have been flushed.<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
-<span class="sourceLineNo">610</span>  private void cleanOldLogs() throws IOException {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    List&lt;Pair&lt;Path, Long&gt;&gt; logsToArchive = null;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    // For each log file, look at its Map of regions to highest sequence id; if all sequence ids<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // are older than what is currently in memory, the WAL can be GC'd.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    for (Map.Entry&lt;Path, WalProps&gt; e : this.walFile2Props.entrySet()) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      Path log = e.getKey();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      Map&lt;byte[], Long&gt; sequenceNums = e.getValue().encodedName2HighestSequenceId;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      if (this.sequenceIdAccounting.areAllLower(sequenceNums)) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>        if (logsToArchive == null) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>          logsToArchive = new ArrayList&lt;&gt;();<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        logsToArchive.add(Pair.newPair(log, e.getValue().logSize));<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        if (LOG.isTraceEnabled()) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>          LOG.trace("WAL file ready for archiving " + log);<a name="line.623"></a>
+<span class="sourceLineNo">311</span>  private int calculateMaxLogFiles(Configuration conf, long logRollSize) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    Pair&lt;Long, MemoryType&gt; globalMemstoreSize = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return (int) ((globalMemstoreSize.getFirst() * 2) / logRollSize);<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>  // must be power of 2<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  protected final int getPreallocatedEventCount() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // Preallocate objects to use on the ring buffer. The way that appends and syncs work, we will<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    // be stuck and make no progress if the buffer is filled with appends only and there is no<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // sync. If no sync, then the handlers will be outstanding just waiting on sync completion<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    // before they return.<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    int preallocatedEventCount =<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    checkArgument(preallocatedEventCount &gt;= 0,<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      "hbase.regionserver.wal.disruptor.event.count must &gt; 0");<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    int floor = Integer.highestOneBit(preallocatedEventCount);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    if (floor == preallocatedEventCount) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      return floor;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    // max capacity is 1 &lt;&lt; 30<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (floor &gt;= 1 &lt;&lt; 29) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      return 1 &lt;&lt; 30;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    return floor &lt;&lt; 1;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  protected AbstractFSWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      final String archiveDir, final Configuration conf, final List&lt;WALActionsListener&gt; listeners,<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      throws FailedLogCloseException, IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    this.fs = fs;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.walDir = new Path(rootDir, logDir);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    this.walArchiveDir = new Path(rootDir, archiveDir);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    this.conf = conf;<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if (!fs.exists(walDir) &amp;&amp; !fs.mkdirs(walDir)) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      throw new IOException("Unable to mkdir " + walDir);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (!fs.exists(this.walArchiveDir)) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      if (!fs.mkdirs(this.walArchiveDir)) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        throw new IOException("Unable to mkdir " + this.walArchiveDir);<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>    // If prefix is null||empty then just name it wal<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    this.walFilePrefix =<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      prefix == null || prefix.isEmpty() ? "wal" : URLEncoder.encode(prefix, "UTF8");<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    // we only correctly differentiate suffices when numeric ones start with '.'<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    if (suffix != null &amp;&amp; !(suffix.isEmpty()) &amp;&amp; !(suffix.startsWith(WAL_FILE_NAME_DELIMITER))) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      throw new IllegalArgumentException("WAL suffix must start with '" + WAL_FILE_NAME_DELIMITER +<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        "' but instead was '" + suffix + "'");<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // Now that it exists, set the storage policy for the entire directory of wal files related to<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // this FSHLog instance<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    CommonFSUtils.setStoragePolicy(fs, conf, this.walDir, HConstants.WAL_STORAGE_POLICY,<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    this.walFileSuffix = (suffix == null) ? "" : URLEncoder.encode(suffix, "UTF8");<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    this.prefixPathStr = new Path(walDir, walFilePrefix + WAL_FILE_NAME_DELIMITER).toString();<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>    this.ourFiles = new PathFilter() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      public boolean accept(final Path fileName) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        // The path should start with dir/&lt;prefix&gt; and end with our suffix<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        final String fileNameString = fileName.toString();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        if (!fileNameString.startsWith(prefixPathStr)) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          return false;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        if (walFileSuffix.isEmpty()) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>          // in the case of the null suffix, we need to ensure the filename ends with a timestamp.<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          return org.apache.commons.lang3.StringUtils<a name="line.381"></a>
+<span class="sourceLineNo">382</span>              .isNumeric(fileNameString.substring(prefixPathStr.length()));<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        } else if (!fileNameString.endsWith(walFileSuffix)) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>          return false;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        return true;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    };<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    if (failIfWALExists) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      final FileStatus[] walFiles = CommonFSUtils.listStatus(fs, walDir, ourFiles);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      if (null != walFiles &amp;&amp; 0 != walFiles.length) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        throw new IOException("Target WAL already exists within directory " + walDir);<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>    // Register listeners. TODO: Should this exist anymore? We have CPs?<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    if (listeners != null) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      for (WALActionsListener i : listeners) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        registerWALActionsListener(i);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    this.coprocessorHost = new WALCoprocessorHost(this, conf);<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>    // Schedule a WAL roll when the WAL is 50% of the HDFS block size. Scheduling at 50% of block<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    // size should make it so WAL rolls before we get to the end-of-block (Block transitions cost<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    // some latency). In hbase-1 we did this differently. We scheduled a roll when we hit 95% of<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    // the block size but experience from the field has it that this was not enough time for the<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    // roll to happen before end-of-block. So the new accounting makes WALs of about the same<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    // size as those made in hbase-1 (to prevent surprise), we now have default block size as<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    // 2 times the DFS default: i.e. 2 * DFS default block size rolling at 50% full will generally<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    // make similar size logs to 1 * DFS default block size rolling at 95% full. See HBASE-19148.<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    this.blocksize = WALUtil.getWALBlockSize(this.conf, this.fs, this.walDir);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    float multiplier = conf.getFloat("hbase.regionserver.logroll.multiplier", 0.5f);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    this.logrollsize = (long)(this.blocksize * multiplier);<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    boolean maxLogsDefined = conf.get("hbase.regionserver.maxlogs") != null;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    if (maxLogsDefined) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      LOG.warn("'hbase.regionserver.maxlogs' was deprecated.");<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    this.maxLogs = conf.getInt("hbase.regionserver.maxlogs",<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      Math.max(32, calculateMaxLogFiles(conf, logrollsize)));<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>    LOG.info("WAL configuration: blocksize=" + StringUtils.byteDesc(blocksize) + ", rollsize=" +<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      StringUtils.byteDesc(this.logrollsize) + ", prefix=" + this.walFilePrefix + ", suffix=" +<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      walFileSuffix + ", logDir=" + this.walDir + ", archiveDir=" + this.walArchiveDir);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    this.slowSyncNs = TimeUnit.MILLISECONDS<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        .toNanos(conf.getInt("hbase.regionserver.hlog.slowsync.ms", DEFAULT_SLOW_SYNC_TIME_MS));<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    this.walSyncTimeoutNs = TimeUnit.MILLISECONDS<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        .toNanos(conf.getLong("hbase.regionserver.hlog.sync.timeout", DEFAULT_WAL_SYNC_TIMEOUT_MS));<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    int maxHandlersCount = conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT, 200);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    // Presize our map of SyncFutures by handler objects.<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    this.syncFuturesByHandler = new ConcurrentHashMap&lt;&gt;(maxHandlersCount);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    this.implClassName = getClass().getSimpleName();<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>  @Override<a name="line.437"></a>
+<span class="sourceLineNo">438</span>  public void registerWALActionsListener(WALActionsListener listener) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    this.listeners.add(listener);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  public boolean unregisterWALActionsListener(WALActionsListener listener) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    return this.listeners.remove(listener);<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 WALCoprocessorHost getCoprocessorHost() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    return coprocessorHost;<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 Long startCacheFlush(byte[] encodedRegionName, Set&lt;byte[]&gt; families) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, families);<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 Long startCacheFlush(byte[] encodedRegionName, Map&lt;byte[], Long&gt; familyToSeq) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, familyToSeq);<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 void completeCacheFlush(byte[] encodedRegionName) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    this.sequenceIdAccounting.completeCacheFlush(encodedRegionName);<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 void abortCacheFlush(byte[] encodedRegionName) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    this.sequenceIdAccounting.abortCacheFlush(encodedRegionName);<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>  @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>    // Used by tests. Deprecated as too subtle for general usage.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>  @Override<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName, byte[] familyName) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    // This method is used by tests and for figuring if we should flush or not because our<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    // sequenceids are too old. It is also used reporting the master our oldest sequenceid for use<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    // figuring what edits can be skipped during log recovery. getEarliestMemStoreSequenceId<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    // from this.sequenceIdAccounting is looking first in flushingOldestStoreSequenceIds, the<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    // currently flushing sequence ids, and if anything found there, it is returning these. This is<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    // the right thing to do for the reporting oldest sequenceids to master; we won't skip edits if<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    // we crash during the flush. For figuring what to flush, we might get requeued if our sequence<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    // id is old even though we are currently flushing. This may mean we do too much flushing.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName, familyName);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>  @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>  public byte[][] rollWriter() throws FailedLogCloseException, IOException {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    return rollWriter(false);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>  }<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>   * This is a convenience method that computes a new filename with a given file-number.<a name="line.497"></a>
+<span class="sourceLineNo">498</span>   * @param filenum to use<a name="line.498"></a>
+<span class="sourceLineNo">499</span>   * @return Path<a name="line.499"></a>
+<span class="sourceLineNo">500</span>   */<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  protected Path computeFilename(final long filenum) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    if (filenum &lt; 0) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      throw new RuntimeException("WAL file number can't be &lt; 0");<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    String child = walFilePrefix + WAL_FILE_NAME_DELIMITER + filenum + walFileSuffix;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    return new Path(walDir, child);<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>  /**<a name="line.509"></a>
+<span class="sourceLineNo">510</span>   * This is a convenience method that computes a new filename with a given using the current WAL<a name="line.510"></a>
+<span class="sourceLineNo">511</span>   * file-number<a name="line.511"></a>
+<span class="sourceLineNo">512</span>   * @return Path<a name="line.512"></a>
+<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
+<span class="sourceLineNo">514</span>  public Path getCurrentFileName() {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    return computeFilename(this.filenum.get());<a name="line.515"></a>
+<span class="sourceLineNo">516</span>  }<a name="line.516"></a>
+<span class="sourceLineNo">517</span><a name="line.517"></a>
+<span class="sourceLineNo">518</span>  /**<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   * retrieve the next path to use for writing. Increments the internal filenum.<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  private Path getNewPath() throws IOException {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    this.filenum.set(System.currentTimeMillis());<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    Path newPath = getCurrentFileName();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    while (fs.exists(newPath)) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      this.filenum.incrementAndGet();<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      newPath = getCurrentFileName();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    return newPath;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  @VisibleForTesting<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  Path getOldPath() {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    long currentFilenum = this.filenum.get();<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    Path oldPath = null;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    if (currentFilenum &gt; 0) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      // ComputeFilename will take care of meta wal filename<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      oldPath = computeFilename(currentFilenum);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    } // I presume if currentFilenum is &lt;= 0, this is first file and null for oldPath if fine?<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    return oldPath;<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>  /**<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * Tell listeners about pre log roll.<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
+<span class="sourceLineNo">545</span>  private void tellListenersAboutPreLogRoll(final Path oldPath, final Path newPath)<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      throws IOException {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    coprocessorHost.preWALRoll(oldPath, newPath);<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>    if (!this.listeners.isEmpty()) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      for (WALActionsListener i : this.listeners) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>        i.preLogRoll(oldPath, newPath);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>      }<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    }<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   * Tell listeners about post log roll.<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   */<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  private void tellListenersAboutPostLogRoll(final Path oldPath, final Path newPath)<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      throws IOException {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    if (!this.listeners.isEmpty()) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      for (WALActionsListener i : this.listeners) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        i.postLogRoll(oldPath, newPath);<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>    coprocessorHost.postWALRoll(oldPath, newPath);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>  // public only until class moves to o.a.h.h.wal<a name="line.570"></a>
+<span class="sourceLineNo">571</span>  /** @return the number of rolled log files */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public int getNumRolledLogFiles() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    return walFile2Props.size();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  // public only until class moves to o.a.h.h.wal<a name="line.576"></a>
+<span class="sourceLineNo">577</span>  /** @return the number of log files in use */<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  public int getNumLogFiles() {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    // +1 for current use log<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    return getNumRolledLogFiles() + 1;<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>   * If the number of un-archived WAL files is greater than maximum allowed, check the first<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   * (oldest) WAL file, and returns those regions which should be flushed so that it can be<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * archived.<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * @return regions (encodedRegionNames) to flush in order to archive oldest WAL file.<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   */<a name="line.588"></a>
+<span class="sourceLineNo">589</span>  byte[][] findRegionsToForceFlush() throws IOException {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    byte[][] regions = null;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    int logCount = getNumRolledLogFiles();<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    if (logCount &gt; this.maxLogs &amp;&amp; logCount &gt; 0) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      Map.Entry&lt;Path, WalProps&gt; firstWALEntry = this.walFile2Props.firstEntry();<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      regions =<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        this.sequenceIdAccounting.findLower(firstWALEntry.getValue().encodedName2HighestSequenceId);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    if (regions != null) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      StringBuilder sb = new StringBuilder();<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      for (int i = 0; i &lt; regions.length; i++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        if (i &gt; 0) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>          sb.append(", ");<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        sb.append(Bytes.toStringBinary(regions[i]));<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      LOG.info("Too many WALs; count=" + logCount + ", max=" + this.maxLogs +<a name="line.605"></a>
+<span class="sourceLineNo">606</span>        "; forcing flush of " + regions.length + " regions(s): " + sb.toString());<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    return regions;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  }<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>  /**<a name="line.611"></a>
+<span class="sourceLineNo">612</span>   * Archive old logs. A WAL is eligible for archiving if all its WALEdits have been flushed.<a nam

<TRUNCATED>

[13/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
index e0f39f6..531ddc6 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
@@ -241,10 +241,11 @@ 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>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
     org.apache.hadoop.fs.Path&nbsp;path,
     org.apache.hadoop.conf.Configuration&nbsp;conf,
-    boolean&nbsp;overwritable)</code>&nbsp;</td>
+    boolean&nbsp;overwritable,
+    long&nbsp;blocksize)</code>&nbsp;</td>
 </tr>
 <tr id="i9" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
@@ -513,7 +514,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">
+<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -522,7 +523,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.156">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                  org.apache.hadoop.fs.Path&nbsp;path,
                  org.apache.hadoop.conf.Configuration&nbsp;conf,
-                 boolean&nbsp;overwritable)
+                 boolean&nbsp;overwritable,
+                 long&nbsp;blocksize)
           throws <a href="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/util/CommonFSUtils.StreamLacksCapabilityException.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils.StreamLacksCapabilityException</a></pre>
 <dl>
@@ -538,7 +540,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>initAfterHeader0</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.183">initAfterHeader0</a>(boolean&nbsp;doCompress)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.181">initAfterHeader0</a>(boolean&nbsp;doCompress)
                        throws <a href="https://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>
@@ -552,7 +554,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>initAfterHeader</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.191">initAfterHeader</a>(boolean&nbsp;doCompress)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.189">initAfterHeader</a>(boolean&nbsp;doCompress)
                         throws <a href="https://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>
@@ -566,7 +568,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>secureInitAfterHeader</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.196">secureInitAfterHeader</a>(boolean&nbsp;doCompress,
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.194">secureInitAfterHeader</a>(boolean&nbsp;doCompress,
                                            <a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>&nbsp;encryptor)
                                     throws <a href="https://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>
@@ -581,7 +583,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setWALTrailer</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.208">setWALTrailer</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer&nbsp;walTrailer)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.206">setWALTrailer</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer&nbsp;walTrailer)</pre>
 </li>
 </ul>
 <a name="getLength--">
@@ -590,7 +592,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getLength</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.212">getLength</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.210">getLength</a>()</pre>
 </li>
 </ul>
 <a name="buildWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer.Builder-">
@@ -599,7 +601,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>buildWALTrailer</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.216">buildWALTrailer</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer.Builder&nbsp;builder)</pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.214">buildWALTrailer</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer.Builder&nbsp;builder)</pre>
 </li>
 </ul>
 <a name="writeWALTrailer--">
@@ -608,7 +610,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeWALTrailer</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.220">writeWALTrailer</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.218">writeWALTrailer</a>()</pre>
 </li>
 </ul>
 <a name="initOutput-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-int-short-long-">
@@ -617,7 +619,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>initOutput</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.240">initOutput</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.238">initOutput</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                    org.apache.hadoop.fs.Path&nbsp;path,
                                    boolean&nbsp;overwritable,
                                    int&nbsp;bufferSize,
@@ -638,7 +640,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMagicAndWALHeader</h4>
-<pre>protected abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.246">writeMagicAndWALHeader</a>(byte[]&nbsp;magic,
+<pre>protected abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.244">writeMagicAndWALHeader</a>(byte[]&nbsp;magic,
                                                org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader&nbsp;header)
                                         throws <a href="https://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">return the file length after written.</div>
@@ -654,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>writeWALTrailerAndMagic</h4>
-<pre>protected abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.248">writeWALTrailerAndMagic</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer&nbsp;trailer,
+<pre>protected abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.246">writeWALTrailerAndMagic</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer&nbsp;trailer,
                                                 byte[]&nbsp;magic)
                                          throws <a href="https://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>
@@ -669,7 +671,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOutputStreamForCellEncoder</h4>
-<pre>protected abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.251">getOutputStreamForCellEncoder</a>()</pre>
+<pre>protected abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#line.249">getOutputStreamForCellEncoder</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
index fc79eb0..ab9832f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
@@ -343,7 +343,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#closed">closed</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#coprocessorHost">coprocessorHost</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_TIME_MS">DEFAULT_SLOW_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum">filenum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestSyncedTxid">highestSyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestUnsyncedTxid">highestUnsyncedTxid</a>, <a href="../../../../../../org/apache/had
 oop/hbase/regionserver/wal/AbstractFSWAL.html#implClassName">implClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#listeners">listeners</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#LOG_NAME_COMPARATOR">LOG_NAME_COMPARATOR</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#logrollsize">logrollsize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#maxLogs">maxLogs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#numEntries">numEntries</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ourFiles">ourFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#prefixPathStr">prefixPathStr</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriterL
 ock">rollWriterLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sequenceIdAccounting">sequenceIdAccounting</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#shutdown">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncNs">slowSyncNs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#totalLogSize">totalLogSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walArchiveDir">walArchiveDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walDir">walDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFile2Props">walFile2Props</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFilePrefix">walFilePrefix</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFileSuffix">walFileSuffix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#writer">writer</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#blocksize">blocksize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#closed">closed</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#coprocessorHost">coprocessorHost</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_TIME_MS">DEFAULT_SLOW_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum">filenum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestSyncedTxid">highestSyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserv
 er/wal/AbstractFSWAL.html#highestUnsyncedTxid">highestUnsyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#implClassName">implClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#listeners">listeners</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#LOG_NAME_COMPARATOR">LOG_NAME_COMPARATOR</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#logrollsize">logrollsize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#maxLogs">maxLogs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#numEntries">numEntries</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ourFiles">ourFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#prefixPathStr">pref
 ixPathStr</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriterLock">rollWriterLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sequenceIdAccounting">sequenceIdAccounting</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#shutdown">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncNs">slowSyncNs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#totalLogSize">totalLogSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walArchiveDir">walArchiveDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walDir">walDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFile2Props">walFile2Props</a>, <a href="../../../../../../org
 /apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFilePrefix">walFilePrefix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFileSuffix">walFileSuffix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#writer">writer</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
index 0c1c722..9fd0c7e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
@@ -279,7 +279,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#initAfterHeader-boolean-">initAf
 terHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setEncryptor-org.apache.hadoop.hbase.io.crypto.Encryptor-">setEncryptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#initAfterHeader-boolean-">i
 nitAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setEncryptor-org.apache.hadoop.hbase.io.crypto.Encryptor-">setEncryptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -293,7 +293,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.wal.<a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.wal.WALProvider.WriterBase">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
index 1f68d23..8db91cd 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
@@ -250,7 +250,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#closed">closed</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#coprocessorHost">coprocessorHost</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_TIME_MS">DEFAULT_SLOW_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum">filenum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestSyncedTxid">highestSyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestUnsyncedTxid">highestUnsyncedTxid</a>, <a href="../../../../../../org/apache/had
 oop/hbase/regionserver/wal/AbstractFSWAL.html#implClassName">implClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#listeners">listeners</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#LOG_NAME_COMPARATOR">LOG_NAME_COMPARATOR</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#logrollsize">logrollsize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#maxLogs">maxLogs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#numEntries">numEntries</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ourFiles">ourFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#prefixPathStr">prefixPathStr</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriterL
 ock">rollWriterLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sequenceIdAccounting">sequenceIdAccounting</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#shutdown">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncNs">slowSyncNs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#totalLogSize">totalLogSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walArchiveDir">walArchiveDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walDir">walDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFile2Props">walFile2Props</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFilePrefix">walFilePrefix</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFileSuffix">walFileSuffix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#writer">writer</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#blocksize">blocksize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#closed">closed</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#coprocessorHost">coprocessorHost</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_TIME_MS">DEFAULT_SLOW_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum">filenum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestSyncedTxid">highestSyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserv
 er/wal/AbstractFSWAL.html#highestUnsyncedTxid">highestUnsyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#implClassName">implClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#listeners">listeners</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#LOG_NAME_COMPARATOR">LOG_NAME_COMPARATOR</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#logrollsize">logrollsize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#maxLogs">maxLogs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#numEntries">numEntries</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ourFiles">ourFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#prefixPathStr">pref
 ixPathStr</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriterLock">rollWriterLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sequenceIdAccounting">sequenceIdAccounting</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#shutdown">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncNs">slowSyncNs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#totalLogSize">totalLogSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walArchiveDir">walArchiveDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walDir">walDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFile2Props">walFile2Props</a>, <a href="../../../../../../org
 /apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFilePrefix">walFilePrefix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFileSuffix">walFileSuffix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#writer">writer</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.html
index c033e4c..5b2c2a0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.html
@@ -239,7 +239,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getWriterClassName--">getWriterClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolea
 n-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#initAfterHeader-boolean-">initAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setEncryptor-org.apache.hadoop.hbase.io.crypto.Encryptor-">setEncryptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getWriterClassName--">getWriterClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolea
 n-long-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#initAfterHeader-boolean-">initAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setEncryptor-org.apache.hadoop.hbase.io.crypto.Encryptor-">setEncryptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -253,7 +253,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.wal.<a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.wal.WALProvider.WriterBase">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
index 5c1eb85..11abee9 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
@@ -218,7 +218,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Asyn
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrai
 ler-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WA
 LTrailer-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -232,7 +232,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Asyn
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.wal.<a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.wal.WALProvider.WriterBase">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.html
index 5558f45..1742ffe 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.html
@@ -220,7 +220,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Prot
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getWriterClassName--">getWriterClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#buildSecureWALHeader-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder-">buildSecureWALHeader</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getLength--">getLength</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#getWriterClassName--">getWriterClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#secureInitAfterHeader-boolean-org.apache.hadoop.hbase.io.crypto.Encryptor-">secureInitAfterHeader</a>, <a href="../../../../../../org
 /apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setWALTrailer-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer-">setWALTrailer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#writeWALTrailer--">writeWALTrailer</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -234,7 +234,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Prot
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.wal.<a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.wal.WALProvider.WriterBase">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
index fceb04e..bccabbc 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.45">WALUtil</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.49">WALUtil</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">Helper methods to ease Region Server integration with the Write Ahead Log (WAL).
  Note that methods in this class specifically should not require access to anything
@@ -184,6 +184,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr id="i1" class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#getWALBlockSize-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">getWALBlockSize</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+               org.apache.hadoop.fs.FileSystem&nbsp;fs,
+               org.apache.hadoop.fs.Path&nbsp;dir)</code>
+<div class="block">Blocksize returned here is 2x the default HDFS blocksize unless explicitly set in
+ Configuration.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#writeBulkLoadMarkerAndSync-org.apache.hadoop.hbase.wal.WAL-java.util.NavigableMap-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.BulkLoadDescriptor-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl-">writeBulkLoadMarkerAndSync</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="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;&nbsp;replicationScope,
@@ -193,7 +202,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Write a log marker that a bulk load has succeeded and is about to be committed.</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#writeCompactionMarker-org.apache.hadoop.hbase.wal.WAL-java.util.NavigableMap-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl-">writeCompactionMarker</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="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;&nbsp;replicationScope,
@@ -203,7 +212,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Write the marker that a compaction has succeeded and is about to be committed.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#writeFlushMarker-org.apache.hadoop.hbase.wal.WAL-java.util.NavigableMap-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor-boolean-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl-">writeFlushMarker</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="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;&nbsp;replicationScope,
@@ -214,7 +223,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Write a flush marker indicating a start / abort or a complete of a region flush</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#writeMarker-org.apache.hadoop.hbase.wal.WAL-java.util.NavigableMap-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl-">writeMarker</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="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;&nbsp;replicationScope,
@@ -222,7 +231,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
            <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edit,
            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a>&nbsp;mvcc)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#writeRegionEventMarker-org.apache.hadoop.hbase.wal.WAL-java.util.NavigableMap-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl-">writeRegionEventMarker</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="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;&nbsp;replicationScope,
@@ -260,7 +269,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.46">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.50">LOG</a></pre>
 </li>
 </ul>
 </li>
@@ -277,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>WALUtil</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.48">WALUtil</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.52">WALUtil</a>()</pre>
 </li>
 </ul>
 </li>
@@ -294,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>writeCompactionMarker</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.61">writeCompactionMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.65">writeCompactionMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                <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;&nbsp;replicationScope,
                                                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                                org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor&nbsp;c,
@@ -320,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>writeFlushMarker</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.78">writeFlushMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.82">writeFlushMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                           <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;&nbsp;replicationScope,
                                           <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                           org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor&nbsp;f,
@@ -342,7 +351,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeRegionEventMarker</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.93">writeRegionEventMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.97">writeRegionEventMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                 <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;&nbsp;replicationScope,
                                                 <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor&nbsp;r,
@@ -362,7 +371,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeBulkLoadMarkerAndSync</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.115">writeBulkLoadMarkerAndSync</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.119">writeBulkLoadMarkerAndSync</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                     <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;&nbsp;replicationScope,
                                                     <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.BulkLoadDescriptor&nbsp;desc,
@@ -389,7 +398,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>writeMarker</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.127">writeMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.131">writeMarker</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                       <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;&nbsp;replicationScope,
                                       <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                       <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edit,
@@ -404,10 +413,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <a name="doFullAppendTransaction-org.apache.hadoop.hbase.wal.WAL-java.util.NavigableMap-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl-boolean-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>doFullAppendTransaction</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.143">doFullAppendTransaction</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.147">doFullAppendTransaction</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                  <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;&nbsp;replicationScope,
                                                  <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                                  <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edit,
@@ -427,6 +436,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="getWALBlockSize-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWALBlockSize</h4>
+<pre>public static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#line.177">getWALBlockSize</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                                   org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                                   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>
+<div class="block">Blocksize returned here is 2x the default HDFS blocksize unless explicitly set in
+ Configuration. Works in tandem with hbase.regionserver.logroll.multiplier. See comment in
+ AbstractFSWAL in Constructor where we set blocksize and logrollsize for why.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Blocksize to use writing WALs.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 a4ab1b7..f6fc79b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -238,8 +238,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.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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 193a3a3032..d1e114d 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -198,8 +198,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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/ec5d5242/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 f6d74ff..e0eb9a0 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -137,9 +137,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.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/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 29d7634..67b7e3a 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -191,9 +191,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.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 2b64b99..0ebeeb0 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,9 +198,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.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/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</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/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/util/class-use/CommonFSUtils.StreamLacksCapabilityException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/class-use/CommonFSUtils.StreamLacksCapabilityException.html b/devapidocs/org/apache/hadoop/hbase/util/class-use/CommonFSUtils.StreamLacksCapabilityException.html
index 50eb658..6fe5f83 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/class-use/CommonFSUtils.StreamLacksCapabilityException.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/class-use/CommonFSUtils.StreamLacksCapabilityException.html
@@ -144,10 +144,11 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AbstractProtobufLogWriter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><span class="typeNameLabel">AbstractProtobufLogWriter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
     org.apache.hadoop.fs.Path&nbsp;path,
     org.apache.hadoop.conf.Configuration&nbsp;conf,
-    boolean&nbsp;overwritable)</code>&nbsp;</td>
+    boolean&nbsp;overwritable,
+    long&nbsp;blocksize)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
@@ -192,17 +193,19 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">FSHLogProvider.Writer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><span class="typeNameLabel">FSHLogProvider.Writer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
     org.apache.hadoop.fs.Path&nbsp;path,
     org.apache.hadoop.conf.Configuration&nbsp;c,
-    boolean&nbsp;overwritable)</code>&nbsp;</td>
+    boolean&nbsp;overwritable,
+    long&nbsp;blocksize)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncFSWALProvider.AsyncWriter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><span class="typeNameLabel">AsyncFSWALProvider.AsyncWriter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
     org.apache.hadoop.fs.Path&nbsp;path,
     org.apache.hadoop.conf.Configuration&nbsp;c,
-    boolean&nbsp;overwritable)</code>&nbsp;</td>
+    boolean&nbsp;overwritable,
+    long&nbsp;blocksize)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>


[16/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index b733d9e..1004684 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 3612,
-             Errors: 15867,
+      <title>File: 3613,
+             Errors: 15865,
              Warnings: 0,
              Infos: 0
       </title>
@@ -923,7 +923,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -5571,7 +5571,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  1
                 </td>
               </tr>
                           <tr>
@@ -27747,7 +27747,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  1
                 </td>
               </tr>
                           <tr>
@@ -33193,7 +33193,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  0
+                  1
                 </td>
               </tr>
                           <tr>
@@ -38000,6 +38000,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.wal.TestWALConfiguration.java">org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  3
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.chaos.factories.MobNoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java</a>
                 </td>
                 <td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 1e06e4b..74b4537 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3768,21 +3768,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Wed May 16 14:39:15 UTC 2018"</code></td>
+<td class="colLast"><code>"Wed May 16 18:41:01 UTC 2018"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"ab53329cb3a56296ad05ee68735eb78896819cd3"</code></td>
+<td class="colLast"><code>"2c32272dfa40dbf574343901c2ddea9319ca0bd5"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"0d7213f070e69b7ea1142c092681bde7"</code></td>
+<td class="colLast"><code>"958067e5bc05ca4bd3e914f0c794fac6"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 9c2bf73..3f8de6d 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -6408,6 +6408,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#blocksize">blocksize</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#blocksize">blocksize</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
+<dd>
+<div class="block">Block size to use writing files.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/ColumnSchemaModel.html#BLOCKSIZE">BLOCKSIZE</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/client/ColumnFamilyDescriptorBuilder.html#BLOCKSIZE_BYTES">BLOCKSIZE_BYTES</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">ColumnFamilyDescriptorBuilder</a></dt>
@@ -14669,12 +14673,18 @@
 <dd>
 <div class="block">Lexographically compares two cells.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare(Cell, Cell, boolean)</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></dt>
+<dd>
+<div class="block">Compare cells.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare(Cell, Cell)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare(Cell, Cell, boolean)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></dt>
 <dd>
 <div class="block">Compare cells.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare(Cell, Cell, boolean)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl.MetaCellComparator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellUtil.html#compare-org.apache.hadoop.hbase.CellComparator-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compare(CellComparator, Cell, byte[], int, int)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase">CellUtil</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -14784,7 +14794,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignProcedure.CompareAssignProcedure.html#CompareAssignProcedure--">CompareAssignProcedure()</a></span> - Constructor for class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignProcedure.CompareAssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure.CompareAssignProcedure</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.html#compareByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-">compareByteBufferKeyValue(ByteBufferKeyValue, ByteBufferKeyValue)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.html#compareByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-">compareByteBufferKeyValue(ByteBufferKeyValue, ByteBufferKeyValue)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></dt>
 <dd>
 <div class="block">Specialized comparator for the ByteBufferKeyValue type exclusivesly.</div>
 </dd>
@@ -15036,7 +15046,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compareRows(Cell, byte[], int, int)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl.MetaCellComparator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compareRows-byte:A-int-int-byte:A-int-int-">compareRows(byte[], int, int, byte[], int, int)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl.MetaCellComparator</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compareRows-byte:A-int-int-byte:A-int-int-">compareRows(byte[], int, int, byte[], int, int)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl.MetaCellComparator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/encoding/RowIndexSeekerV1.html#compareRows-java.nio.ByteBuffer-org.apache.hadoop.hbase.Cell-">compareRows(ByteBuffer, Cell)</a></span> - Method in class org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/RowIndexSeekerV1.html" title="class in org.apache.hadoop.hbase.io.encoding">RowIndexSeekerV1</a></dt>
 <dd>&nbsp;</dd>
@@ -15078,13 +15088,9 @@
 <div class="block">Compares cell's timestamps in DESCENDING order.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps(Cell, Cell)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></dt>
-<dd>
-<div class="block">Compares cell's timestamps in DESCENDING order.</div>
-</dd>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-long-long-">compareTimestamps(long, long)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></dt>
-<dd>
-<div class="block">Compares timestamps in DESCENDING order.</div>
-</dd>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/KeyValue.KVComparator.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps(Cell, Cell)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/KeyValue.KVComparator.html" title="class in org.apache.hadoop.hbase">KeyValue.KVComparator</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
@@ -15093,6 +15099,8 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestampsInternal-long-long-">compareTimestampsInternal(long, long)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/BackupInfo.html#compareTo-org.apache.hadoop.hbase.backup.BackupInfo-">compareTo(BackupInfo)</a></span> - Method in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a></dt>
 <dd>
 <div class="block">We use only time stamps to compare objects during sort operation</div>
@@ -18783,7 +18791,11 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup-java.lang.Class-">createAsyncWriter(Configuration, FileSystem, Path, boolean, EventLoopGroup, Class&lt;? extends Channel&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AsyncFSWALProvider</a></dt>
 <dd>
-<div class="block">public because of AsyncFSWAL.</div>
+<div class="block">Public because of AsyncFSWAL.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup-java.lang.Class-">createAsyncWriter(Configuration, FileSystem, Path, boolean, long, EventLoopGroup, Class&lt;? extends Channel&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AsyncFSWALProvider</a></dt>
+<dd>
+<div class="block">Public because of AsyncFSWAL.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/HFileLink.html#createBackReferenceName-java.lang.String-java.lang.String-">createBackReferenceName(String, String)</a></span> - Static method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/HFileLink.html" title="class in org.apache.hadoop.hbase.io">HFileLink</a></dt>
 <dd>
@@ -20171,7 +20183,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALFactory.html#createRecoveredEditsWriter-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">createRecoveredEditsWriter(FileSystem, Path)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a></dt>
 <dd>
-<div class="block">should be package-private, visible for recovery testing.</div>
+<div class="block">Should be package-private, visible for recovery testing.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALFactory.html#createRecoveredEditsWriter-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-">createRecoveredEditsWriter(FileSystem, Path, Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a></dt>
 <dd>
@@ -20900,7 +20912,11 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/FSHLogProvider.html#createWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-">createWriter(Configuration, FileSystem, Path, boolean)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/FSHLogProvider.html" title="class in org.apache.hadoop.hbase.wal">FSHLogProvider</a></dt>
 <dd>
-<div class="block">public because of FSHLog.</div>
+<div class="block">Public because of FSHLog.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/FSHLogProvider.html#createWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-">createWriter(Configuration, FileSystem, Path, boolean, long)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/FSHLogProvider.html" title="class in org.apache.hadoop.hbase.wal">FSHLogProvider</a></dt>
+<dd>
+<div class="block">Public because of FSHLog.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALSplitter.html#createWriter-org.apache.hadoop.fs.Path-">createWriter(Path)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALSplitter.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter</a></dt>
 <dd>
@@ -52902,6 +52918,11 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getWALArchivePath-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-">getWALArchivePath(Path, Path)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/WALUtil.html#getWALBlockSize-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">getWALBlockSize(Configuration, FileSystem, Path)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/WALUtil.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALUtil</a></dt>
+<dd>
+<div class="block">Blocksize returned here is 2x the default HDFS blocksize unless explicitly set in
+ Configuration.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.html#getWALCellCodecClass-org.apache.hadoop.conf.Configuration-">getWALCellCodecClass(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCellCodec</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#getWALDir--">getWALDir()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
@@ -59333,7 +59354,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/throttle/StoreHotnessProtector.html#init-org.apache.hadoop.conf.Configuration-">init(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.throttle.<a href="org/apache/hadoop/hbase/regionserver/throttle/StoreHotnessProtector.html" title="class in org.apache.hadoop.hbase.regionserver.throttle">StoreHotnessProtector</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init(FileSystem, Path, Configuration, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init(FileSystem, Path, Configuration, boolean, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FSDataInputStream-">init(FileSystem, Path, Configuration, FSDataInputStream)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.html" title="class in org.apache.hadoop.hbase.regionserver.wal">ProtobufLogReader</a></dt>
 <dd>&nbsp;</dd>
@@ -59406,13 +59427,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AbstractFSWALProvider.Reader.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FSDataInputStream-">init(FileSystem, Path, Configuration, FSDataInputStream)</a></span> - Method in interface org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AbstractFSWALProvider.Reader.html" title="interface in org.apache.hadoop.hbase.wal">AbstractFSWALProvider.Reader</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init(FileSystem, Path, Configuration, boolean)</a></span> - Method in interface org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init(FileSystem, Path, Configuration, boolean, long)</a></span> - Method in interface org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.html#init-org.apache.hadoop.conf.Configuration-java.lang.String-">init(Configuration, String)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.html" title="class in org.apache.hadoop.hbase.wal">BoundedGroupingStrategy</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/DisabledWALProvider.html#init-org.apache.hadoop.hbase.wal.WALFactory-org.apache.hadoop.conf.Configuration-java.lang.String-">init(WALFactory, Configuration, String)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/DisabledWALProvider.html" title="class in org.apache.hadoop.hbase.wal">DisabledWALProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init(FileSystem, Path, Configuration, boolean)</a></span> - Method in interface org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init(FileSystem, Path, Configuration, boolean, long)</a></span> - Method in interface org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/NamespaceGroupingStrategy.html#init-org.apache.hadoop.conf.Configuration-java.lang.String-">init(Configuration, String)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/NamespaceGroupingStrategy.html" title="class in org.apache.hadoop.hbase.wal">NamespaceGroupingStrategy</a></dt>
 <dd>&nbsp;</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/CellComparator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/CellComparator.html b/devapidocs/org/apache/hadoop/hbase/CellComparator.html
index b786e17..696f78c 100644
--- a/devapidocs/org/apache/hadoop/hbase/CellComparator.html
+++ b/devapidocs/org/apache/hadoop/hbase/CellComparator.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":17};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":17};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -142,19 +142,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell,
+       boolean&nbsp;ignoreSequenceid)</code>
+<div class="block">Compare cells.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareFamilies-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareFamilies</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the families of the two cells</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareQualifiers-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareQualifiers</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the qualifiers of the two cells</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compareRows</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
            byte[]&nbsp;bytes,
@@ -164,35 +172,35 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
  stopRow in Scan.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
            <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the rows of two cells.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Compares cell's timestamps in DESCENDING order.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-long-long-">compareTimestamps</a></span>(long&nbsp;leftCellts,
                  long&nbsp;rightCellts)</code>
 <div class="block">Compares cell's timestamps in DESCENDING order.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareWithoutRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareWithoutRow</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the two cells excluding the row part.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>static <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/CellComparator.html#getInstance--">getInstance</a></span>()</code>
 <div class="block">A comparator for ordering cells in user-space tables.</div>
@@ -256,13 +264,32 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 </dl>
 </li>
 </ul>
+<a name="compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compare</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.59">compare</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+            <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell,
+            boolean&nbsp;ignoreSequenceid)</pre>
+<div class="block">Compare cells.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ignoreSequenceid</code> - True if we are to compare the key portion only and ignore
+ the sequenceid. Set to false to compare key and consider sequenceid.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>0 if equal, -1 if a &lt; b, and +1 if a &gt; b.</dd>
+</dl>
+</li>
+</ul>
 <a name="compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.60">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.68">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                 <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the rows of two cells.</div>
 <dl>
@@ -281,7 +308,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.72">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.80">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                 byte[]&nbsp;bytes,
                 int&nbsp;offset,
                 int&nbsp;length)</pre>
@@ -305,7 +332,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareWithoutRow</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.82">compareWithoutRow</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.90">compareWithoutRow</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the two cells excluding the row part. It compares family, qualifier,
  timestamp and the type</div>
@@ -325,7 +352,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareFamilies</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.91">compareFamilies</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.99">compareFamilies</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                     <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the families of the two cells</div>
 <dl>
@@ -344,7 +371,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareQualifiers</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.100">compareQualifiers</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.108">compareQualifiers</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the qualifiers of the two cells</div>
 <dl>
@@ -363,7 +390,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTimestamps</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.112">compareTimestamps</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.120">compareTimestamps</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of
  newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found
@@ -385,7 +412,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compareTimestamps</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.124">compareTimestamps</a>(long&nbsp;leftCellts,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.132">compareTimestamps</a>(long&nbsp;leftCellts,
                       long&nbsp;rightCellts)</pre>
 <div class="block">Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of
  newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html b/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
index 9d247c9..2f34143 100644
--- a/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
+++ b/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":9,"i2":10,"i3":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";
 var tableTab = "tableTab";
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.400">CellComparatorImpl.MetaCellComparator</a>
+<pre>public static class <a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.375">CellComparatorImpl.MetaCellComparator</a>
 extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></pre>
 <div class="block">A <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase"><code>CellComparatorImpl</code></a> for <code>hbase:meta</code> catalog table
  <a href="../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase"><code>KeyValue</code></a>s.</div>
@@ -186,13 +186,21 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<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>private int</code></td>
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
+       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b,
+       boolean&nbsp;ignoreSequenceid)</code>
+<div class="block">Compare cells.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compareRows-byte:A-int-int-byte:A-int-int-">compareRows</a></span>(byte[]&nbsp;left,
            int&nbsp;loffset,
            int&nbsp;llength,
@@ -200,7 +208,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
            int&nbsp;roffset,
            int&nbsp;rlength)</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compareRows</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
            byte[]&nbsp;right,
@@ -210,7 +218,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
  stopRow in Scan.</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
            <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>
@@ -223,7 +231,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></h3>
-<code><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareColumns-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareColumns</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareFamilies-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareFamilies</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareQualifiers-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareQualifiers</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareRows-org.apache.hadoop.hbase.Cell-int-org.apache.hadoop.hbase.Cell-int-">compareRows</a>, <a href="../../..
 /../org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-long-long-">compareTimestamps</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareWithoutRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareWithoutRow</a></code></li>
+<code><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compare</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareColumns-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareColumns</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareFamilies-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareFamilies</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareQualifiers-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareQualifiers</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareRows-org.apache.hadoop.hbase.Cell-int-org.apache.hadoop.hbase.Cell-int-">compareRows</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps</a>, <a hr
 ef="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-long-long-">compareTimestamps</a>, <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareWithoutRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareWithoutRow</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -266,7 +274,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetaCellComparator</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.400">MetaCellComparator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.375">MetaCellComparator</a>()</pre>
 </li>
 </ul>
 </li>
@@ -283,7 +291,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.403">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.377">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                        <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">CellComparatorImpl</a></code></span></div>
 <div class="block">Compares the rows of the left and right cell.
@@ -308,7 +316,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.409">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.383">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                        byte[]&nbsp;right,
                        int&nbsp;roffset,
                        int&nbsp;rlength)</pre>
@@ -332,18 +340,41 @@ extends <a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" ti
 </dl>
 </li>
 </ul>
+<a name="compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compare</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.389">compare</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
+                   <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b,
+                   boolean&nbsp;ignoreSequenceid)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">CellComparatorImpl</a></code></span></div>
+<div class="block">Compare cells.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html" title="class in org.apache.hadoop.hbase">CellComparatorImpl</a></code></dd>
+<dd><code>ignoreSequenceid</code> - True if we are to compare the key portion only and ignore
+  the sequenceid. Set to false to compare key and consider sequenceid.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>0 if equal, -1 if a &lt; b, and +1 if a &gt; b.</dd>
+</dl>
+</li>
+</ul>
 <a name="compareRows-byte:A-int-int-byte:A-int-int-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.414">compareRows</a>(byte[]&nbsp;left,
-                        int&nbsp;loffset,
-                        int&nbsp;llength,
-                        byte[]&nbsp;right,
-                        int&nbsp;roffset,
-                        int&nbsp;rlength)</pre>
+<pre>private static&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#line.404">compareRows</a>(byte[]&nbsp;left,
+                               int&nbsp;loffset,
+                               int&nbsp;llength,
+                               byte[]&nbsp;right,
+                               int&nbsp;roffset,
+                               int&nbsp;rlength)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.html b/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.html
index abfb2b4..25d1594 100644
--- a/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/CellComparatorImpl.html
@@ -18,8 +18,8 @@
     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};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":9,"i12":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";
 var tableTab = "tableTab";
@@ -214,7 +214,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<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>
@@ -235,7 +235,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>private int</code></td>
+<td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-">compareByteBufferKeyValue</a></span>(<a href="../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;left,
                          <a href="../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;right)</code>
 <div class="block">Specialized comparator for the ByteBufferKeyValue type exclusivesly.</div>
@@ -297,10 +297,15 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-long-long-">compareTimestamps</a></span>(long&nbsp;ltimestamp,
                  long&nbsp;rtimestamp)</code>
-<div class="block">Compares timestamps in DESCENDING order.</div>
+<div class="block">Compares cell's timestamps in DESCENDING order.</div>
 </td>
 </tr>
 <tr id="i11" class="rowColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestampsInternal-long-long-">compareTimestampsInternal</a></span>(long&nbsp;ltimestamp,
+                         long&nbsp;rtimestamp)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareWithoutRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareWithoutRow</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>
@@ -430,16 +435,16 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compare</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.72">compare</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
-                         <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b,
-                         boolean&nbsp;ignoreSequenceid)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.71">compare</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
+                   <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b,
+                   boolean&nbsp;ignoreSequenceid)</pre>
 <div class="block">Compare cells.</div>
 <dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>a</code> - </dd>
-<dd><code>b</code> - </dd>
 <dd><code>ignoreSequenceid</code> - True if we are to compare the key portion only and ignore
- the sequenceid. Set to false to compare key and consider sequenceid.</dd>
+  the sequenceid. Set to false to compare key and consider sequenceid.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>0 if equal, -1 if a &lt; b, and +1 if a &gt; b.</dd>
 </dl>
@@ -451,8 +456,8 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareByteBufferKeyValue</h4>
-<pre>private final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.100">compareByteBufferKeyValue</a>(<a href="../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;left,
-                                            <a href="../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;right)</pre>
+<pre>private static final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.99">compareByteBufferKeyValue</a>(<a href="../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;left,
+                                                   <a href="../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;right)</pre>
 <div class="block">Specialized comparator for the ByteBufferKeyValue type exclusivesly.
  Caches deserialized lengths of rows and families, etc., and reuses them where it can
  (ByteBufferKeyValue has been changed to be amenable to our providing pre-made lengths, etc.)</div>
@@ -468,9 +473,6 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
                                 <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</pre>
 <div class="block">Compares the family and qualifier part of the cell</div>
 <dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>left</code> - the left cell</dd>
-<dd><code>right</code> - the right cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise</dd>
 </dl>
@@ -482,15 +484,15 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareFamilies</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.188">compareFamilies</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.186">compareFamilies</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</pre>
 <div class="block">Compare the families of left and right cell</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareFamilies-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareFamilies</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>left</code> - </dd>
-<dd><code>right</code> - </dd>
+<dd><code>left</code> - the left hand side cell</dd>
+<dd><code>right</code> - the right hand side cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise</dd>
 </dl>
@@ -502,15 +504,15 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareQualifiers</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.221">compareQualifiers</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.217">compareQualifiers</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                                    <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</pre>
 <div class="block">Compare the qualifiers part of the left and right cells.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareQualifiers-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareQualifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>left</code> - </dd>
-<dd><code>right</code> - </dd>
+<dd><code>left</code> - the left hand side cell</dd>
+<dd><code>right</code> - the right hand side cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise</dd>
 </dl>
@@ -522,7 +524,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.257">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.253">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                        <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</pre>
 <div class="block">Compares the rows of the left and right cell.
  For the hbase:meta case this method is overridden such that it can handle hbase:meta cells.
@@ -544,7 +546,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.261">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.257">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                 int&nbsp;leftRowLength,
                 <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right,
                 int&nbsp;rightRowLength)</pre>
@@ -556,7 +558,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.307">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.303">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                        byte[]&nbsp;right,
                        int&nbsp;roffset,
                        int&nbsp;rlength)</pre>
@@ -583,7 +585,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareWithoutRow</h4>
-<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.318">compareWithoutRow</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.314">compareWithoutRow</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                                    <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareWithoutRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">CellComparator</a></code></span></div>
 <div class="block">Lexographically compares the two cells excluding the row part. It compares family, qualifier,
@@ -606,13 +608,13 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTimestamps</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.371">compareTimestamps</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.357">compareTimestamps</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                              <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</pre>
-<div class="block">Compares cell's timestamps in DESCENDING order.
- The below older timestamps sorting ahead of newer timestamps looks
- wrong but it is intentional. This way, newer timestamps are first
- found when we iterate over a memstore and newer versions are the
- first we trip over when reading from a store file.</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">CellComparator</a></code></span></div>
+<div class="block">Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of
+ newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found
+ when we iterate over a memstore and newer versions are the first we trip over when reading from
+ a store file.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></dd>
@@ -620,25 +622,24 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <dd><code>left</code> - the left hand side cell</dd>
 <dd><code>right</code> - the right hand side cell</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>1 if left's timestamp &lt; right's timestamp
-         -1 if left's timestamp &gt; right's timestamp
-         0 if both timestamps are equal</dd>
+<dd>1 if left's timestamp &lt; right's timestamp -1 if left's timestamp &gt; right's
+         timestamp 0 if both timestamps are equal</dd>
 </dl>
 </li>
 </ul>
 <a name="compareTimestamps-long-long-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>compareTimestamps</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.387">compareTimestamps</a>(long&nbsp;ltimestamp,
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.362">compareTimestamps</a>(long&nbsp;ltimestamp,
                              long&nbsp;rtimestamp)</pre>
-<div class="block">Compares timestamps in DESCENDING order.
- The below older timestamps sorting ahead of newer timestamps looks
- wrong but it is intentional. This way, newer timestamps are first
- found when we iterate over a memstore and newer versions are the
- first we trip over when reading from a store file.</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-long-long-">CellComparator</a></code></span></div>
+<div class="block">Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of
+ newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found
+ when we iterate over a memstore and newer versions are the first we trip over when reading from
+ a store file.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-long-long-">compareTimestamps</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></code></dd>
@@ -646,12 +647,21 @@ implements <a href="../../../../org/apache/hadoop/hbase/CellComparator.html" tit
 <dd><code>ltimestamp</code> - the left cell's timestamp</dd>
 <dd><code>rtimestamp</code> - the right cell's timestamp</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>1 if left timestamp &lt; right timestamp
-         -1 if left timestamp &gt; right timestamp
-         0 if both timestamps are equal</dd>
+<dd>1 if left's timestamp &lt; right's timestamp -1 if left's timestamp &gt; right's
+         timestamp 0 if both timestamps are equal</dd>
 </dl>
 </li>
 </ul>
+<a name="compareTimestampsInternal-long-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>compareTimestampsInternal</h4>
+<pre>private static final&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparatorImpl.html#line.366">compareTimestampsInternal</a>(long&nbsp;ltimestamp,
+                                                   long&nbsp;rtimestamp)</pre>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html b/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
index 0d4318c..c733735 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html
@@ -485,7 +485,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>convertWALsToHFiles</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.370">convertWALsToHFiles</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.371">convertWALsToHFiles</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>
@@ -499,7 +499,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>tableExists</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.390">tableExists</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.391">tableExists</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)
                        throws <a href="https://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>
@@ -514,7 +514,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>walToHFiles</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.396">walToHFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;dirPaths,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.397">walToHFiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;dirPaths,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tableList)
                     throws <a href="https://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>
@@ -529,7 +529,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockList">
 <li class="blockList">
 <h4>getBulkOutputDirForTable</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.428">getBulkOutputDirForTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.429">getBulkOutputDirForTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
 </li>
 </ul>
 <a name="getBulkOutputDir--">
@@ -538,7 +538,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/backup/impl/TableBack
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getBulkOutputDir</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.435">getBulkOutputDir</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#line.436">getBulkOutputDir</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 35b548a..9b88fec 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.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/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/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 </ul>
 </li>
 </ul>


[20/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index e901a01..5847c40 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,16 +5,16 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20180516142952+00'00')
-/CreationDate (D:20180516144448+00'00')
+/ModDate (D:20180516183146+00'00')
+/CreationDate (D:20180516184628+00'00')
 >>
 endobj
 2 0 obj
 << /Type /Catalog
 /Pages 3 0 R
 /Names 26 0 R
-/Outlines 4642 0 R
-/PageLabels 4869 0 R
+/Outlines 4644 0 R
+/PageLabels 4871 0 R
 /PageMode /UseOutlines
 /OpenAction [7 0 R /FitH 842.89]
 /ViewerPreferences << /DisplayDocTitle true
@@ -24,7 +24,7 @@ endobj
 3 0 obj
 << /Type /Pages
 /Count 724
-/Kids [7 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 22 0 R 24 0 R 44 0 R 47 0 R 50 0 R 54 0 R 61 0 R 63 0 R 67 0 R 69 0 R 71 0 R 78 0 R 81 0 R 83 0 R 89 0 R 92 0 R 94 0 R 96 0 R 103 0 R 110 0 R 115 0 R 117 0 R 133 0 R 138 0 R 146 0 R 155 0 R 163 0 R 172 0 R 183 0 R 187 0 R 189 0 R 193 0 R 202 0 R 211 0 R 219 0 R 228 0 R 233 0 R 242 0 R 250 0 R 259 0 R 272 0 R 279 0 R 289 0 R 297 0 R 305 0 R 312 0 R 320 0 R 327 0 R 333 0 R 340 0 R 348 0 R 357 0 R 366 0 R 380 0 R 387 0 R 395 0 R 402 0 R 410 0 R 419 0 R 429 0 R 437 0 R 444 0 R 453 0 R 465 0 R 475 0 R 482 0 R 489 0 R 497 0 R 506 0 R 514 0 R 519 0 R 523 0 R 528 0 R 532 0 R 548 0 R 559 0 R 563 0 R 578 0 R 583 0 R 588 0 R 590 0 R 592 0 R 595 0 R 597 0 R 599 0 R 607 0 R 613 0 R 618 0 R 623 0 R 630 0 R 640 0 R 648 0 R 652 0 R 656 0 R 658 0 R 668 0 R 682 0 R 691 0 R 700 0 R 710 0 R 721 0 R 732 0 R 754 0 R 760 0 R 764 0 R 770 0 R 773 0 R 777 0 R 781 0 R 784 0 R 787 0 R 789 0 R 792 0 R 796 0 R 798 0 R 802 0 R 808 0 R 813 0 R 817 0 R 820 0 R 826 0 R
  828 0 R 832 0 R 840 0 R 842 0 R 845 0 R 848 0 R 851 0 R 854 0 R 868 0 R 876 0 R 887 0 R 898 0 R 904 0 R 914 0 R 925 0 R 928 0 R 932 0 R 935 0 R 940 0 R 949 0 R 957 0 R 961 0 R 965 0 R 970 0 R 974 0 R 976 0 R 992 0 R 1003 0 R 1008 0 R 1015 0 R 1018 0 R 1026 0 R 1034 0 R 1039 0 R 1044 0 R 1049 0 R 1051 0 R 1053 0 R 1055 0 R 1065 0 R 1073 0 R 1077 0 R 1084 0 R 1091 0 R 1099 0 R 1103 0 R 1109 0 R 1114 0 R 1122 0 R 1126 0 R 1131 0 R 1133 0 R 1139 0 R 1147 0 R 1153 0 R 1160 0 R 1171 0 R 1175 0 R 1177 0 R 1179 0 R 1183 0 R 1186 0 R 1191 0 R 1194 0 R 1206 0 R 1210 0 R 1216 0 R 1224 0 R 1229 0 R 1233 0 R 1237 0 R 1239 0 R 1242 0 R 1245 0 R 1248 0 R 1252 0 R 1256 0 R 1260 0 R 1265 0 R 1269 0 R 1272 0 R 1274 0 R 1284 0 R 1287 0 R 1295 0 R 1304 0 R 1310 0 R 1314 0 R 1316 0 R 1327 0 R 1330 0 R 1336 0 R 1344 0 R 1347 0 R 1354 0 R 1362 0 R 1364 0 R 1366 0 R 1375 0 R 1377 0 R 1379 0 R 1382 0 R 1384 0 R 1386 0 R 1388 0 R 1390 0 R 1393 0 R 1397 0 R 1402 0 R 1404 0 R 1406 0 R 1408 0 R 1413 0 R 1420 0
  R 1426 0 R 1429 0 R 1431 0 R 1434 0 R 1438 0 R 1442 0 R 1445 0 R 1447 0 R 1449 0 R 1452 0 R 1457 0 R 1463 0 R 1471 0 R 1485 0 R 1499 0 R 1502 0 R 1507 0 R 1520 0 R 1525 0 R 1540 0 R 1548 0 R 1552 0 R 1561 0 R 1576 0 R 1590 0 R 1598 0 R 1603 0 R 1614 0 R 1619 0 R 1625 0 R 1631 0 R 1643 0 R 1646 0 R 1655 0 R 1658 0 R 1667 0 R 1673 0 R 1677 0 R 1689 0 R 1694 0 R 1700 0 R 1702 0 R 1709 0 R 1717 0 R 1725 0 R 1729 0 R 1731 0 R 1733 0 R 1745 0 R 1751 0 R 1760 0 R 1766 0 R 1779 0 R 1785 0 R 1791 0 R 1802 0 R 1808 0 R 1813 0 R 1818 0 R 1821 0 R 1824 0 R 1829 0 R 1834 0 R 1841 0 R 1845 0 R 1850 0 R 1859 0 R 1864 0 R 1869 0 R 1871 0 R 1880 0 R 1887 0 R 1893 0 R 1898 0 R 1902 0 R 1906 0 R 1911 0 R 1916 0 R 1922 0 R 1924 0 R 1926 0 R 1929 0 R 1940 0 R 1943 0 R 1950 0 R 1958 0 R 1963 0 R 1967 0 R 1972 0 R 1974 0 R 1977 0 R 1982 0 R 1985 0 R 1987 0 R 1990 0 R 1993 0 R 1996 0 R 2006 0 R 2011 0 R 2016 0 R 2018 0 R 2026 0 R 2033 0 R 2040 0 R 2046 0 R 2051 0 R 2053 0 R 2062 0 R 2072 0 R 2082 0 R 2088
  0 R 2095 0 R 2097 0 R 2102 0 R 2104 0 R 2106 0 R 2110 0 R 2113 0 R 2116 0 R 2121 0 R 2125 0 R 2136 0 R 2139 0 R 2144 0 R 2147 0 R 2149 0 R 2154 0 R 2164 0 R 2166 0 R 2168 0 R 2170 0 R 2172 0 R 2175 0 R 2177 0 R 2179 0 R 2182 0 R 2184 0 R 2186 0 R 2190 0 R 2195 0 R 2204 0 R 2206 0 R 2208 0 R 2214 0 R 2216 0 R 2221 0 R 2223 0 R 2225 0 R 2232 0 R 2237 0 R 2241 0 R 2246 0 R 2250 0 R 2252 0 R 2254 0 R 2258 0 R 2261 0 R 2263 0 R 2265 0 R 2269 0 R 2271 0 R 2274 0 R 2276 0 R 2278 0 R 2280 0 R 2287 0 R 2290 0 R 2295 0 R 2297 0 R 2299 0 R 2301 0 R 2303 0 R 2311 0 R 2322 0 R 2336 0 R 2347 0 R 2351 0 R 2356 0 R 2360 0 R 2363 0 R 2368 0 R 2374 0 R 2376 0 R 2379 0 R 2381 0 R 2383 0 R 2385 0 R 2390 0 R 2392 0 R 2405 0 R 2408 0 R 2416 0 R 2422 0 R 2434 0 R 2448 0 R 2461 0 R 2480 0 R 2482 0 R 2484 0 R 2488 0 R 2506 0 R 2512 0 R 2524 0 R 2528 0 R 2532 0 R 2541 0 R 2553 0 R 2558 0 R 2568 0 R 2581 0 R 2600 0 R 2609 0 R 2612 0 R 2621 0 R 2638 0 R 2645 0 R 2648 0 R 2653 0 R 2657 0 R 2660 0 R 2669 0 R 26
 78 0 R 2681 0 R 2683 0 R 2687 0 R 2701 0 R 2710 0 R 2715 0 R 2719 0 R 2722 0 R 2724 0 R 2726 0 R 2728 0 R 2733 0 R 2746 0 R 2756 0 R 2764 0 R 2770 0 R 2775 0 R 2786 0 R 2793 0 R 2799 0 R 2801 0 R 2810 0 R 2818 0 R 2820 0 R 2828 0 R 2836 0 R 2838 0 R 2847 0 R 2850 0 R 2860 0 R 2864 0 R 2873 0 R 2881 0 R 2886 0 R 2890 0 R 2894 0 R 2896 0 R 2902 0 R 2906 0 R 2910 0 R 2916 0 R 2922 0 R 2925 0 R 2931 0 R 2935 0 R 2944 0 R 2949 0 R 2955 0 R 2965 0 R 2971 0 R 2978 0 R 2981 0 R 2984 0 R 2991 0 R 2996 0 R 2999 0 R 3004 0 R 3014 0 R 3019 0 R 3021 0 R 3025 0 R 3032 0 R 3035 0 R 3046 0 R 3049 0 R 3056 0 R 3064 0 R 3068 0 R 3078 0 R 3083 0 R 3087 0 R 3095 0 R 3100 0 R 3104 0 R 3106 0 R 3117 0 R 3122 0 R 3125 0 R 3127 0 R 3129 0 R 3139 0 R 3146 0 R 3150 0 R 3153 0 R 3159 0 R 3163 0 R 3166 0 R 3170 0 R 3175 0 R 3183 0 R 3188 0 R 3193 0 R 3198 0 R 3200 0 R 3203 0 R 3205 0 R 3209 0 R 3220 0 R 3222 0 R 3226 0 R 3229 0 R 3233 0 R 3236 0 R 3240 0 R 3242 0 R 3255 0 R 3260 0 R 3265 0 R 3271 0 R 3279 0 R 
 3281 0 R 3289 0 R 3307 0 R 3318 0 R 3325 0 R 3341 0 R 3344 0 R 3349 0 R 3351 0 R 3358 0 R 3363 0 R 3366 0 R 3368 0 R 3370 0 R 3372 0 R 3375 0 R 3393 0 R 3396 0 R 3401 0 R 3407 0 R 3417 0 R 3422 0 R 3432 0 R 3442 0 R 3450 0 R 3455 0 R 3461 0 R 3466 0 R 3469 0 R 3477 0 R 3481 0 R 3486 0 R 3491 0 R 3504 0 R 3507 0 R 3513 0 R 3519 0 R 3524 0 R 3533 0 R 3542 0 R 3548 0 R 3557 0 R 3566 0 R 3571 0 R 3577 0 R 3583 0 R 3587 0 R 3589 0 R 3595 0 R 3602 0 R 3604 0 R 3610 0 R 3612 0 R 3618 0 R 3626 0 R 3632 0 R 3641 0 R 3648 0 R 3659 0 R 3669 0 R 3681 0 R 3694 0 R 3697 0 R 3699 0 R 3704 0 R 3719 0 R 3725 0 R 3731 0 R 3735 0 R 3738 0 R 3743 0 R 3745 0 R 3749 0 R 3751 0 R 3755 0 R 3758 0 R 3761 0 R 3769 0 R 3771 0 R 3775 0 R 3778 0 R 3786 0 R 3794 0 R 3798 0 R 3801 0 R 3803 0 R 3807 0 R 3812 0 R 3817 0 R 3820 0 R 3829 0 R 3834 0 R 3838 0 R 3841 0 R 3849 0 R 3854 0 R 3862 0 R 3867 0 R 3869 0 R 3875 0 R 3877 0 R 3882 0 R 3886 0 R 3892 0 R 3896 0 R 3908 0 R 3924 0 R 3939 0 R 3944 0 R 3947 0 R 3950 0 
 R 3956 0 R 3961 0 R 3963 0 R 3965 0 R 3967 0 R 3969 0 R 3971 0 R 3980 0 R 3984 0 R 3988 0 R 3992 0 R 3994 0 R 4001 0 R 4011 0 R 4020 0 R 4023 0 R 4026 0 R 4028 0 R 4035 0 R 4042 0 R 4052 0 R 4056 0 R 4059 0 R 4063 0 R 4067 0 R 4073 0 R 4076 0 R 4092 0 R 4097 0 R 4120 0 R 4124 0 R 4131 0 R 4142 0 R 4151 0 R 4154 0 R 4157 0 R 4160 0 R 4176 0 R 4181 0 R 4188 0 R]
+/Kids [7 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 22 0 R 24 0 R 44 0 R 47 0 R 50 0 R 54 0 R 61 0 R 63 0 R 67 0 R 69 0 R 71 0 R 78 0 R 81 0 R 83 0 R 89 0 R 92 0 R 94 0 R 96 0 R 103 0 R 110 0 R 115 0 R 117 0 R 133 0 R 138 0 R 146 0 R 155 0 R 163 0 R 172 0 R 183 0 R 187 0 R 189 0 R 193 0 R 202 0 R 211 0 R 219 0 R 228 0 R 233 0 R 242 0 R 250 0 R 259 0 R 272 0 R 279 0 R 289 0 R 297 0 R 305 0 R 312 0 R 320 0 R 327 0 R 333 0 R 340 0 R 348 0 R 357 0 R 366 0 R 380 0 R 387 0 R 395 0 R 402 0 R 410 0 R 419 0 R 429 0 R 437 0 R 444 0 R 453 0 R 465 0 R 475 0 R 482 0 R 489 0 R 497 0 R 506 0 R 514 0 R 519 0 R 523 0 R 528 0 R 532 0 R 548 0 R 559 0 R 563 0 R 578 0 R 583 0 R 588 0 R 590 0 R 592 0 R 595 0 R 597 0 R 599 0 R 607 0 R 613 0 R 618 0 R 623 0 R 630 0 R 640 0 R 648 0 R 652 0 R 656 0 R 658 0 R 668 0 R 683 0 R 690 0 R 702 0 R 711 0 R 721 0 R 734 0 R 755 0 R 762 0 R 766 0 R 772 0 R 775 0 R 779 0 R 783 0 R 786 0 R 789 0 R 791 0 R 794 0 R 798 0 R 800 0 R 804 0 R 810 0 R 815 0 R 819 0 R 822 0 R 828 0 R
  830 0 R 834 0 R 842 0 R 844 0 R 847 0 R 850 0 R 853 0 R 856 0 R 870 0 R 878 0 R 889 0 R 900 0 R 906 0 R 916 0 R 927 0 R 930 0 R 934 0 R 937 0 R 942 0 R 951 0 R 959 0 R 963 0 R 967 0 R 972 0 R 976 0 R 978 0 R 994 0 R 1005 0 R 1010 0 R 1017 0 R 1020 0 R 1028 0 R 1036 0 R 1041 0 R 1046 0 R 1051 0 R 1053 0 R 1055 0 R 1057 0 R 1067 0 R 1075 0 R 1079 0 R 1086 0 R 1093 0 R 1101 0 R 1105 0 R 1111 0 R 1116 0 R 1124 0 R 1128 0 R 1133 0 R 1135 0 R 1141 0 R 1149 0 R 1155 0 R 1162 0 R 1173 0 R 1177 0 R 1179 0 R 1181 0 R 1185 0 R 1188 0 R 1193 0 R 1196 0 R 1208 0 R 1212 0 R 1218 0 R 1226 0 R 1231 0 R 1235 0 R 1239 0 R 1241 0 R 1244 0 R 1247 0 R 1250 0 R 1254 0 R 1258 0 R 1262 0 R 1267 0 R 1271 0 R 1274 0 R 1276 0 R 1286 0 R 1289 0 R 1297 0 R 1306 0 R 1312 0 R 1316 0 R 1318 0 R 1329 0 R 1332 0 R 1338 0 R 1346 0 R 1349 0 R 1356 0 R 1364 0 R 1366 0 R 1368 0 R 1377 0 R 1379 0 R 1381 0 R 1384 0 R 1386 0 R 1388 0 R 1390 0 R 1392 0 R 1395 0 R 1399 0 R 1404 0 R 1406 0 R 1408 0 R 1410 0 R 1415 0 R 1422 0
  R 1428 0 R 1431 0 R 1433 0 R 1436 0 R 1440 0 R 1444 0 R 1447 0 R 1449 0 R 1451 0 R 1454 0 R 1459 0 R 1465 0 R 1473 0 R 1487 0 R 1501 0 R 1504 0 R 1509 0 R 1522 0 R 1527 0 R 1542 0 R 1550 0 R 1554 0 R 1563 0 R 1578 0 R 1592 0 R 1600 0 R 1605 0 R 1616 0 R 1621 0 R 1627 0 R 1633 0 R 1645 0 R 1648 0 R 1657 0 R 1660 0 R 1669 0 R 1675 0 R 1679 0 R 1691 0 R 1696 0 R 1702 0 R 1704 0 R 1711 0 R 1719 0 R 1727 0 R 1731 0 R 1733 0 R 1735 0 R 1747 0 R 1753 0 R 1762 0 R 1768 0 R 1781 0 R 1787 0 R 1793 0 R 1804 0 R 1810 0 R 1815 0 R 1820 0 R 1823 0 R 1826 0 R 1831 0 R 1836 0 R 1843 0 R 1847 0 R 1852 0 R 1861 0 R 1866 0 R 1871 0 R 1873 0 R 1882 0 R 1889 0 R 1895 0 R 1900 0 R 1904 0 R 1908 0 R 1913 0 R 1918 0 R 1924 0 R 1926 0 R 1928 0 R 1931 0 R 1942 0 R 1945 0 R 1952 0 R 1960 0 R 1965 0 R 1969 0 R 1974 0 R 1976 0 R 1979 0 R 1984 0 R 1987 0 R 1989 0 R 1992 0 R 1995 0 R 1998 0 R 2008 0 R 2013 0 R 2018 0 R 2020 0 R 2028 0 R 2035 0 R 2042 0 R 2048 0 R 2053 0 R 2055 0 R 2064 0 R 2074 0 R 2084 0 R 2090
  0 R 2097 0 R 2099 0 R 2104 0 R 2106 0 R 2108 0 R 2112 0 R 2115 0 R 2118 0 R 2123 0 R 2127 0 R 2138 0 R 2141 0 R 2146 0 R 2149 0 R 2151 0 R 2156 0 R 2166 0 R 2168 0 R 2170 0 R 2172 0 R 2174 0 R 2177 0 R 2179 0 R 2181 0 R 2184 0 R 2186 0 R 2188 0 R 2192 0 R 2197 0 R 2206 0 R 2208 0 R 2210 0 R 2216 0 R 2218 0 R 2223 0 R 2225 0 R 2227 0 R 2234 0 R 2239 0 R 2243 0 R 2248 0 R 2252 0 R 2254 0 R 2256 0 R 2260 0 R 2263 0 R 2265 0 R 2267 0 R 2271 0 R 2273 0 R 2276 0 R 2278 0 R 2280 0 R 2282 0 R 2289 0 R 2292 0 R 2297 0 R 2299 0 R 2301 0 R 2303 0 R 2305 0 R 2313 0 R 2324 0 R 2338 0 R 2349 0 R 2353 0 R 2358 0 R 2362 0 R 2365 0 R 2370 0 R 2376 0 R 2378 0 R 2381 0 R 2383 0 R 2385 0 R 2387 0 R 2392 0 R 2394 0 R 2407 0 R 2410 0 R 2418 0 R 2424 0 R 2436 0 R 2450 0 R 2463 0 R 2482 0 R 2484 0 R 2486 0 R 2490 0 R 2508 0 R 2514 0 R 2526 0 R 2530 0 R 2534 0 R 2543 0 R 2555 0 R 2560 0 R 2570 0 R 2583 0 R 2602 0 R 2611 0 R 2614 0 R 2623 0 R 2640 0 R 2647 0 R 2650 0 R 2655 0 R 2659 0 R 2662 0 R 2671 0 R 26
 80 0 R 2683 0 R 2685 0 R 2689 0 R 2703 0 R 2712 0 R 2717 0 R 2721 0 R 2724 0 R 2726 0 R 2728 0 R 2730 0 R 2735 0 R 2748 0 R 2758 0 R 2766 0 R 2772 0 R 2777 0 R 2788 0 R 2795 0 R 2801 0 R 2803 0 R 2812 0 R 2820 0 R 2822 0 R 2830 0 R 2838 0 R 2840 0 R 2849 0 R 2852 0 R 2862 0 R 2866 0 R 2875 0 R 2883 0 R 2888 0 R 2892 0 R 2896 0 R 2898 0 R 2904 0 R 2908 0 R 2912 0 R 2918 0 R 2924 0 R 2927 0 R 2933 0 R 2937 0 R 2946 0 R 2951 0 R 2957 0 R 2967 0 R 2973 0 R 2980 0 R 2983 0 R 2986 0 R 2993 0 R 2998 0 R 3001 0 R 3006 0 R 3016 0 R 3021 0 R 3023 0 R 3027 0 R 3034 0 R 3037 0 R 3048 0 R 3051 0 R 3058 0 R 3066 0 R 3070 0 R 3080 0 R 3085 0 R 3089 0 R 3097 0 R 3102 0 R 3106 0 R 3108 0 R 3119 0 R 3124 0 R 3127 0 R 3129 0 R 3131 0 R 3141 0 R 3148 0 R 3152 0 R 3155 0 R 3161 0 R 3165 0 R 3168 0 R 3172 0 R 3177 0 R 3185 0 R 3190 0 R 3195 0 R 3200 0 R 3202 0 R 3205 0 R 3207 0 R 3211 0 R 3222 0 R 3224 0 R 3228 0 R 3231 0 R 3235 0 R 3238 0 R 3242 0 R 3244 0 R 3257 0 R 3262 0 R 3267 0 R 3273 0 R 3281 0 R 
 3283 0 R 3291 0 R 3309 0 R 3320 0 R 3327 0 R 3343 0 R 3346 0 R 3351 0 R 3353 0 R 3360 0 R 3365 0 R 3368 0 R 3370 0 R 3372 0 R 3374 0 R 3377 0 R 3395 0 R 3398 0 R 3403 0 R 3409 0 R 3419 0 R 3424 0 R 3434 0 R 3444 0 R 3452 0 R 3457 0 R 3463 0 R 3468 0 R 3471 0 R 3479 0 R 3483 0 R 3488 0 R 3493 0 R 3506 0 R 3509 0 R 3515 0 R 3521 0 R 3526 0 R 3535 0 R 3544 0 R 3550 0 R 3559 0 R 3568 0 R 3573 0 R 3579 0 R 3585 0 R 3589 0 R 3591 0 R 3597 0 R 3604 0 R 3606 0 R 3612 0 R 3614 0 R 3620 0 R 3628 0 R 3634 0 R 3643 0 R 3650 0 R 3661 0 R 3671 0 R 3683 0 R 3696 0 R 3699 0 R 3701 0 R 3706 0 R 3721 0 R 3727 0 R 3733 0 R 3737 0 R 3740 0 R 3745 0 R 3747 0 R 3751 0 R 3753 0 R 3757 0 R 3760 0 R 3763 0 R 3771 0 R 3773 0 R 3777 0 R 3780 0 R 3788 0 R 3796 0 R 3800 0 R 3803 0 R 3805 0 R 3809 0 R 3814 0 R 3819 0 R 3822 0 R 3831 0 R 3836 0 R 3840 0 R 3843 0 R 3851 0 R 3856 0 R 3864 0 R 3869 0 R 3871 0 R 3877 0 R 3879 0 R 3884 0 R 3888 0 R 3894 0 R 3898 0 R 3910 0 R 3926 0 R 3941 0 R 3946 0 R 3949 0 R 3952 0 
 R 3958 0 R 3963 0 R 3965 0 R 3967 0 R 3969 0 R 3971 0 R 3973 0 R 3982 0 R 3986 0 R 3990 0 R 3994 0 R 3996 0 R 4003 0 R 4013 0 R 4022 0 R 4025 0 R 4028 0 R 4030 0 R 4037 0 R 4044 0 R 4054 0 R 4058 0 R 4061 0 R 4065 0 R 4069 0 R 4075 0 R 4078 0 R 4094 0 R 4099 0 R 4122 0 R 4126 0 R 4133 0 R 4144 0 R 4153 0 R 4156 0 R 4159 0 R 4162 0 R 4178 0 R 4183 0 R 4190 0 R]
 >>
 endobj
 4 0 obj
@@ -187,11 +187,11 @@ endobj
 << /Type /Font
 /BaseFont /71be00+NotoSerif
 /Subtype /TrueType
-/FontDescriptor 4871 0 R
+/FontDescriptor 4873 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4873 0 R
-/ToUnicode 4872 0 R
+/Widths 4875 0 R
+/ToUnicode 4874 0 R
 >>
 endobj
 11 0 obj
@@ -1750,7 +1750,7 @@ endobj
 /F1.0 10 0 R
 >>
 >>
-/Annots [4190 0 R 4191 0 R 4192 0 R 4193 0 R 4194 0 R 4195 0 R 4196 0 R 4197 0 R 4198 0 R 4199 0 R 4200 0 R 4201 0 R 4202 0 R 4203 0 R 4204 0 R 4205 0 R 4206 0 R 4207 0 R 4208 0 R 4209 0 R 4210 0 R 4211 0 R 4212 0 R 4213 0 R 4214 0 R 4215 0 R 4216 0 R 4217 0 R 4218 0 R 4219 0 R 4220 0 R 4221 0 R 4222 0 R 4223 0 R 4224 0 R 4225 0 R 4226 0 R 4227 0 R 4228 0 R 4229 0 R 4230 0 R 4231 0 R 4232 0 R 4233 0 R 4234 0 R 4235 0 R 4236 0 R 4237 0 R 4238 0 R 4239 0 R 4240 0 R 4241 0 R 4242 0 R 4243 0 R 4244 0 R 4245 0 R 4246 0 R 4247 0 R 4248 0 R 4249 0 R 4250 0 R 4251 0 R 4252 0 R 4253 0 R 4254 0 R 4255 0 R 4256 0 R 4257 0 R 4258 0 R 4259 0 R 4260 0 R 4261 0 R 4262 0 R 4263 0 R 4264 0 R 4265 0 R]
+/Annots [4192 0 R 4193 0 R 4194 0 R 4195 0 R 4196 0 R 4197 0 R 4198 0 R 4199 0 R 4200 0 R 4201 0 R 4202 0 R 4203 0 R 4204 0 R 4205 0 R 4206 0 R 4207 0 R 4208 0 R 4209 0 R 4210 0 R 4211 0 R 4212 0 R 4213 0 R 4214 0 R 4215 0 R 4216 0 R 4217 0 R 4218 0 R 4219 0 R 4220 0 R 4221 0 R 4222 0 R 4223 0 R 4224 0 R 4225 0 R 4226 0 R 4227 0 R 4228 0 R 4229 0 R 4230 0 R 4231 0 R 4232 0 R 4233 0 R 4234 0 R 4235 0 R 4236 0 R 4237 0 R 4238 0 R 4239 0 R 4240 0 R 4241 0 R 4242 0 R 4243 0 R 4244 0 R 4245 0 R 4246 0 R 4247 0 R 4248 0 R 4249 0 R 4250 0 R 4251 0 R 4252 0 R 4253 0 R 4254 0 R 4255 0 R 4256 0 R 4257 0 R 4258 0 R 4259 0 R 4260 0 R 4261 0 R 4262 0 R 4263 0 R 4264 0 R 4265 0 R 4266 0 R 4267 0 R]
 >>
 endobj
 13 0 obj
@@ -3417,7 +3417,7 @@ endobj
 /Font << /F1.0 10 0 R
 >>
 >>
-/Annots [4266 0 R 4267 0 R 4268 0 R 4269 0 R 4270 0 R 4271 0 R 4272 0 R 4273 0 R 4274 0 R 4275 0 R 4276 0 R 4277 0 R 4278 0 R 4279 0 R 4280 0 R 4281 0 R 4282 0 R 4283 0 R 4284 0 R 4285 0 R 4286 0 R 4287 0 R 4288 0 R 4289 0 R 4290 0 R 4291 0 R 4292 0 R 4293 0 R 4294 0 R 4295 0 R 4296 0 R 4297 0 R 4298 0 R 4299 0 R 4300 0 R 4301 0 R 4302 0 R 4303 0 R 4304 0 R 4305 0 R 4306 0 R 4307 0 R 4308 0 R 4309 0 R 4310 0 R 4311 0 R 4312 0 R 4313 0 R 4314 0 R 4315 0 R 4316 0 R 4317 0 R 4318 0 R 4319 0 R 4320 0 R 4321 0 R 4322 0 R 4323 0 R 4324 0 R 4325 0 R 4326 0 R 4327 0 R 4328 0 R 4329 0 R 4330 0 R 4331 0 R 4332 0 R 4333 0 R 4334 0 R 4335 0 R 4336 0 R 4337 0 R 4338 0 R 4339 0 R 4340 0 R 4341 0 R 4342 0 R 4343 0 R 4344 0 R 4345 0 R 4346 0 R 4347 0 R]
+/Annots [4268 0 R 4269 0 R 4270 0 R 4271 0 R 4272 0 R 4273 0 R 4274 0 R 4275 0 R 4276 0 R 4277 0 R 4278 0 R 4279 0 R 4280 0 R 4281 0 R 4282 0 R 4283 0 R 4284 0 R 4285 0 R 4286 0 R 4287 0 R 4288 0 R 4289 0 R 4290 0 R 4291 0 R 4292 0 R 4293 0 R 4294 0 R 4295 0 R 4296 0 R 4297 0 R 4298 0 R 4299 0 R 4300 0 R 4301 0 R 4302 0 R 4303 0 R 4304 0 R 4305 0 R 4306 0 R 4307 0 R 4308 0 R 4309 0 R 4310 0 R 4311 0 R 4312 0 R 4313 0 R 4314 0 R 4315 0 R 4316 0 R 4317 0 R 4318 0 R 4319 0 R 4320 0 R 4321 0 R 4322 0 R 4323 0 R 4324 0 R 4325 0 R 4326 0 R 4327 0 R 4328 0 R 4329 0 R 4330 0 R 4331 0 R 4332 0 R 4333 0 R 4334 0 R 4335 0 R 4336 0 R 4337 0 R 4338 0 R 4339 0 R 4340 0 R 4341 0 R 4342 0 R 4343 0 R 4344 0 R 4345 0 R 4346 0 R 4347 0 R 4348 0 R 4349 0 R]
 >>
 endobj
 15 0 obj
@@ -5084,7 +5084,7 @@ endobj
 /Font << /F1.0 10 0 R
 >>
 >>
-/Annots [4348 0 R 4349 0 R 4350 0 R 4351 0 R 4352 0 R 4353 0 R 4354 0 R 4355 0 R 4356 0 R 4357 0 R 4358 0 R 4359 0 R 4360 0 R 4361 0 R 4362 0 R 4363 0 R 4364 0 R 4365 0 R 4366 0 R 4367 0 R 4368 0 R 4369 0 R 4370 0 R 4371 0 R 4372 0 R 4373 0 R 4374 0 R 4375 0 R 4376 0 R 4377 0 R 4378 0 R 4379 0 R 4380 0 R 4381 0 R 4382 0 R 4383 0 R 4384 0 R 4385 0 R 4386 0 R 4387 0 R 4388 0 R 4389 0 R 4390 0 R 4391 0 R 4392 0 R 4393 0 R 4394 0 R 4395 0 R 4396 0 R 4397 0 R 4398 0 R 4399 0 R 4400 0 R 4401 0 R 4402 0 R 4403 0 R 4404 0 R 4405 0 R 4406 0 R 4407 0 R 4408 0 R 4409 0 R 4410 0 R 4411 0 R 4412 0 R 4413 0 R 4414 0 R 4415 0 R 4416 0 R 4417 0 R 4418 0 R 4419 0 R 4420 0 R 4421 0 R 4422 0 R 4423 0 R 4424 0 R 4425 0 R 4426 0 R 4427 0 R 4428 0 R 4429 0 R]
+/Annots [4350 0 R 4351 0 R 4352 0 R 4353 0 R 4354 0 R 4355 0 R 4356 0 R 4357 0 R 4358 0 R 4359 0 R 4360 0 R 4361 0 R 4362 0 R 4363 0 R 4364 0 R 4365 0 R 4366 0 R 4367 0 R 4368 0 R 4369 0 R 4370 0 R 4371 0 R 4372 0 R 4373 0 R 4374 0 R 4375 0 R 4376 0 R 4377 0 R 4378 0 R 4379 0 R 4380 0 R 4381 0 R 4382 0 R 4383 0 R 4384 0 R 4385 0 R 4386 0 R 4387 0 R 4388 0 R 4389 0 R 4390 0 R 4391 0 R 4392 0 R 4393 0 R 4394 0 R 4395 0 R 4396 0 R 4397 0 R 4398 0 R 4399 0 R 4400 0 R 4401 0 R 4402 0 R 4403 0 R 4404 0 R 4405 0 R 4406 0 R 4407 0 R 4408 0 R 4409 0 R 4410 0 R 4411 0 R 4412 0 R 4413 0 R 4414 0 R 4415 0 R 4416 0 R 4417 0 R 4418 0 R 4419 0 R 4420 0 R 4421 0 R 4422 0 R 4423 0 R 4424 0 R 4425 0 R 4426 0 R 4427 0 R 4428 0 R 4429 0 R 4430 0 R 4431 0 R]
 >>
 endobj
 17 0 obj
@@ -6751,7 +6751,7 @@ endobj
 /Font << /F1.0 10 0 R
 >>
 >>
-/Annots [4430 0 R 4431 0 R 4432 0 R 4433 0 R 4434 0 R 4435 0 R 4436 0 R 4437 0 R 4438 0 R 4439 0 R 4440 0 R 4441 0 R 4442 0 R 4443 0 R 4444 0 R 4445 0 R 4446 0 R 4447 0 R 4448 0 R 4449 0 R 4450 0 R 4451 0 R 4452 0 R 4453 0 R 4454 0 R 4455 0 R 4456 0 R 4457 0 R 4458 0 R 4459 0 R 4460 0 R 4461 0 R 4462 0 R 4463 0 R 4464 0 R 4465 0 R 4466 0 R 4467 0 R 4468 0 R 4469 0 R 4470 0 R 4471 0 R 4472 0 R 4473 0 R 4474 0 R 4475 0 R 4476 0 R 4477 0 R 4478 0 R 4479 0 R 4480 0 R 4481 0 R 4482 0 R 4483 0 R 4484 0 R 4485 0 R 4486 0 R 4487 0 R 4488 0 R 4489 0 R 4490 0 R 4491 0 R 4492 0 R 4493 0 R 4494 0 R 4495 0 R 4496 0 R 4497 0 R 4498 0 R 4499 0 R 4500 0 R 4501 0 R 4502 0 R 4503 0 R 4504 0 R 4505 0 R 4506 0 R 4507 0 R 4508 0 R 4509 0 R 4510 0 R 4511 0 R]
+/Annots [4432 0 R 4433 0 R 4434 0 R 4435 0 R 4436 0 R 4437 0 R 4438 0 R 4439 0 R 4440 0 R 4441 0 R 4442 0 R 4443 0 R 4444 0 R 4445 0 R 4446 0 R 4447 0 R 4448 0 R 4449 0 R 4450 0 R 4451 0 R 4452 0 R 4453 0 R 4454 0 R 4455 0 R 4456 0 R 4457 0 R 4458 0 R 4459 0 R 4460 0 R 4461 0 R 4462 0 R 4463 0 R 4464 0 R 4465 0 R 4466 0 R 4467 0 R 4468 0 R 4469 0 R 4470 0 R 4471 0 R 4472 0 R 4473 0 R 4474 0 R 4475 0 R 4476 0 R 4477 0 R 4478 0 R 4479 0 R 4480 0 R 4481 0 R 4482 0 R 4483 0 R 4484 0 R 4485 0 R 4486 0 R 4487 0 R 4488 0 R 4489 0 R 4490 0 R 4491 0 R 4492 0 R 4493 0 R 4494 0 R 4495 0 R 4496 0 R 4497 0 R 4498 0 R 4499 0 R 4500 0 R 4501 0 R 4502 0 R 4503 0 R 4504 0 R 4505 0 R 4506 0 R 4507 0 R 4508 0 R 4509 0 R 4510 0 R 4511 0 R 4512 0 R 4513 0 R]
 >>
 endobj
 19 0 obj
@@ -8429,7 +8429,7 @@ endobj
 /Font << /F1.0 10 0 R
 >>
 >>
-/Annots [4512 0 R 4513 0 R 4514 0 R 4515 0 R 4516 0 R 4517 0 R 4518 0 R 4519 0 R 4520 0 R 4521 0 R 4522 0 R 4523 0 R 4524 0 R 4525 0 R 4526 0 R 4527 0 R 4528 0 R 4529 0 R 4530 0 R 4531 0 R 4532 0 R 4533 0 R 4534 0 R 4535 0 R 4536 0 R 4537 0 R 4538 0 R 4539 0 R 4540 0 R 4541 0 R 4542 0 R 4543 0 R 4544 0 R 4545 0 R 4546 0 R 4547 0 R 4548 0 R 4549 0 R 4550 0 R 4551 0 R 4552 0 R 4553 0 R 4554 0 R 4555 0 R 4556 0 R 4557 0 R 4558 0 R 4559 0 R 4560 0 R 4561 0 R 4562 0 R 4563 0 R 4564 0 R 4565 0 R 4566 0 R 4567 0 R 4568 0 R 4569 0 R 4570 0 R 4571 0 R 4572 0 R 4573 0 R 4574 0 R 4575 0 R 4576 0 R 4577 0 R 4578 0 R 4579 0 R 4580 0 R 4581 0 R 4582 0 R 4583 0 R 4584 0 R 4585 0 R 4586 0 R 4587 0 R 4588 0 R 4589 0 R 4590 0 R 4591 0 R 4592 0 R 4593 0 R 4594 0 R 4595 0 R]
+/Annots [4514 0 R 4515 0 R 4516 0 R 4517 0 R 4518 0 R 4519 0 R 4520 0 R 4521 0 R 4522 0 R 4523 0 R 4524 0 R 4525 0 R 4526 0 R 4527 0 R 4528 0 R 4529 0 R 4530 0 R 4531 0 R 4532 0 R 4533 0 R 4534 0 R 4535 0 R 4536 0 R 4537 0 R 4538 0 R 4539 0 R 4540 0 R 4541 0 R 4542 0 R 4543 0 R 4544 0 R 4545 0 R 4546 0 R 4547 0 R 4548 0 R 4549 0 R 4550 0 R 4551 0 R 4552 0 R 4553 0 R 4554 0 R 4555 0 R 4556 0 R 4557 0 R 4558 0 R 4559 0 R 4560 0 R 4561 0 R 4562 0 R 4563 0 R 4564 0 R 4565 0 R 4566 0 R 4567 0 R 4568 0 R 4569 0 R 4570 0 R 4571 0 R 4572 0 R 4573 0 R 4574 0 R 4575 0 R 4576 0 R 4577 0 R 4578 0 R 4579 0 R 4580 0 R 4581 0 R 4582 0 R 4583 0 R 4584 0 R 4585 0 R 4586 0 R 4587 0 R 4588 0 R 4589 0 R 4590 0 R 4591 0 R 4592 0 R 4593 0 R 4594 0 R 4595 0 R 4596 0 R 4597 0 R]
 >>
 endobj
 21 0 obj
@@ -9336,7 +9336,7 @@ endobj
 /Font << /F1.0 10 0 R
 >>
 >>
-/Annots [4596 0 R 4597 0 R 4598 0 R 4599 0 R 4600 0 R 4601 0 R 4602 0 R 4603 0 R 4604 0 R 4605 0 R 4606 0 R 4607 0 R 4608 0 R 4609 0 R 4610 0 R 4611 0 R 4612 0 R 4613 0 R 4614 0 R 4615 0 R 4616 0 R 4617 0 R 4618 0 R 4619 0 R 4620 0 R 4621 0 R 4622 0 R 4623 0 R 4624 0 R 4625 0 R 4626 0 R 4627 0 R 4628 0 R 4629 0 R 4630 0 R 4631 0 R 4632 0 R 4633 0 R 4634 0 R 4635 0 R 4636 0 R 4637 0 R 4638 0 R 4639 0 R]
+/Annots [4598 0 R 4599 0 R 4600 0 R 4601 0 R 4602 0 R 4603 0 R 4604 0 R 4605 0 R 4606 0 R 4607 0 R 4608 0 R 4609 0 R 4610 0 R 4611 0 R 4612 0 R 4613 0 R 4614 0 R 4615 0 R 4616 0 R 4617 0 R 4618 0 R 4619 0 R 4620 0 R 4621 0 R 4622 0 R 4623 0 R 4624 0 R 4625 0 R 4626 0 R 4627 0 R 4628 0 R 4629 0 R 4630 0 R 4631 0 R 4632 0 R 4633 0 R 4634 0 R 4635 0 R 4636 0 R 4637 0 R 4638 0 R 4639 0 R 4640 0 R 4641 0 R]
 >>
 endobj
 23 0 obj
@@ -10148,7 +10148,7 @@ endobj
 /F4.0 35 0 R
 /F1.1 38 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [30 0 R 31 0 R 32 0 R 34 0 R 36 0 R 37 0 R 39 0 R 40 0 R 41 0 R]
@@ -10163,7 +10163,7 @@ endobj
 >>
 endobj
 27 0 obj
-<< /Kids [643 0 R 3657 0 R 1933 0 R 644 0 R 4017 0 R 1163 0 R 2548 0 R 3789 0 R]
+<< /Kids [643 0 R 3659 0 R 1935 0 R 644 0 R 4019 0 R 1165 0 R 2550 0 R 3791 0 R]
 >>
 endobj
 28 0 obj
@@ -10173,11 +10173,11 @@ endobj
 << /Type /Font
 /BaseFont /358635+NotoSerif-Bold
 /Subtype /TrueType
-/FontDescriptor 4875 0 R
+/FontDescriptor 4877 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4877 0 R
-/ToUnicode 4876 0 R
+/Widths 4879 0 R
+/ToUnicode 4878 0 R
 >>
 endobj
 30 0 obj
@@ -10217,11 +10217,11 @@ endobj
 << /Type /Font
 /BaseFont /260f03+NotoSerif-Italic
 /Subtype /TrueType
-/FontDescriptor 4879 0 R
+/FontDescriptor 4881 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4881 0 R
-/ToUnicode 4880 0 R
+/Widths 4883 0 R
+/ToUnicode 4882 0 R
 >>
 endobj
 34 0 obj
@@ -10239,11 +10239,11 @@ endobj
 << /Type /Font
 /BaseFont /c7d210+mplus1mn-regular
 /Subtype /TrueType
-/FontDescriptor 4883 0 R
+/FontDescriptor 4885 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4885 0 R
-/ToUnicode 4884 0 R
+/Widths 4887 0 R
+/ToUnicode 4886 0 R
 >>
 endobj
 36 0 obj
@@ -10269,11 +10269,11 @@ endobj
 << /Type /Font
 /BaseFont /34c70d+NotoSerif
 /Subtype /TrueType
-/FontDescriptor 4887 0 R
+/FontDescriptor 4889 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4889 0 R
-/ToUnicode 4888 0 R
+/Widths 4891 0 R
+/ToUnicode 4890 0 R
 >>
 endobj
 39 0 obj
@@ -10707,7 +10707,7 @@ endobj
 /F5.1 45 0 R
 /F2.0 29 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -10716,11 +10716,11 @@ endobj
 << /Type /Font
 /BaseFont /26ec65+FontAwesome
 /Subtype /TrueType
-/FontDescriptor 4891 0 R
+/FontDescriptor 4893 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4893 0 R
-/ToUnicode 4892 0 R
+/Widths 4895 0 R
+/ToUnicode 4894 0 R
 >>
 endobj
 46 0 obj
@@ -10778,7 +10778,7 @@ endobj
 /Font << /F2.0 29 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -10863,7 +10863,7 @@ endobj
 /Font << /F2.0 29 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [52 0 R]
@@ -12436,7 +12436,7 @@ endobj
 /F1.1 38 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [57 0 R 59 0 R]
@@ -13556,7 +13556,7 @@ endobj
 /F1.0 10 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -14435,7 +14435,7 @@ endobj
 /F3.0 33 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [64 0 R]
@@ -15225,7 +15225,7 @@ endobj
 /Font << /F4.0 35 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -15944,7 +15944,7 @@ endobj
 /Font << /F4.0 35 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -16820,7 +16820,7 @@ endobj
 /F2.0 29 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [73 0 R 74 0 R 75 0 R 76 0 R]
@@ -17810,7 +17810,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [79 0 R]
@@ -18733,7 +18733,7 @@ endobj
 /F4.0 35 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -20244,7 +20244,7 @@ endobj
 /F4.0 35 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [84 0 R 86 0 R]
@@ -21592,7 +21592,7 @@ endobj
 /F4.0 35 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [90 0 R]
@@ -22666,7 +22666,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -23389,7 +23389,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -24028,7 +24028,7 @@ endobj
 /F4.0 35 0 R
 /F2.0 29 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [97 0 R 98 0 R 99 0 R 101 0 R]
@@ -24272,7 +24272,7 @@ endobj
 /Font << /F2.0 29 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [105 0 R 106 0 R 107 0 R 108 0 R]
@@ -25144,7 +25144,7 @@ endobj
 /F4.0 35 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [112 0 R 113 0 R]
@@ -25424,7 +25424,7 @@ endobj
 /F1.0 10 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -26904,7 +26904,7 @@ endobj
 /F5.1 45 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 128 0 R 129 0 R 130 0 R 131 0 R]
@@ -27944,7 +27944,7 @@ endobj
 /F2.0 29 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [134 0 R 136 0 R]
@@ -28697,7 +28697,7 @@ endobj
 /F2.0 29 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [139 0 R 141 0 R 142 0 R 143 0 R 144 0 R]
@@ -31256,7 +31256,7 @@ endobj
 /F2.0 29 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R]
@@ -32057,7 +32057,7 @@ endobj
 /F2.0 29 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [159 0 R 160 0 R]
@@ -32068,12 +32068,12 @@ endobj
 endobj
 157 0 obj
 << /Limits [(__anchor-top) (adding.new.node)]
-/Names [(__anchor-top) 25 0 R (__indexterm-2002) 3551 0 R (__indexterm-2004) 3553 0 R (__indexterm-2006) 3555 0 R (__indexterm-2008) 3558 0 R (acid) 936 0 R (acl) 3356 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3651 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3653 0 R (add.metrics) 3649 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3893 0 R (adding.new.node) 3102 0 R]
+/Names [(__anchor-top) 25 0 R (__indexterm-2002) 3553 0 R (__indexterm-2004) 3555 0 R (__indexterm-2006) 3557 0 R (__indexterm-2008) 3560 0 R (acid) 938 0 R (acl) 3358 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3653 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3655 0 R (add.metrics) 3651 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3895 0 R (adding.new.node) 3104 0 R]
 >>
 endobj
 158 0 obj
 << /Limits [(io.storefile.bloom.block.size) (jdk-version-requirements)]
-/Names [(io.storefile.bloom.block.size) 358 0 R (irbrc) 799 0 R (irc) 3387 0 R (isolate-system-tables) 3353 0 R (java) 119 0 R (java-2) 1936 0 R (java-3) 1941 0 R (java.client.config) 516 0 R (jdk-issues) 2917 0 R (jdk-version-requirements) 56 0 R]
+/Names [(io.storefile.bloom.block.size) 358 0 R (irbrc) 801 0 R (irc) 3389 0 R (isolate-system-tables) 3355 0 R (java) 119 0 R (java-2) 1938 0 R (java-3) 1943 0 R (java.client.config) 516 0 R (jdk-issues) 2919 0 R (jdk-version-requirements) 56 0 R]
 >>
 endobj
 159 0 obj
@@ -33212,7 +33212,7 @@ endobj
 /F4.0 35 0 R
 /F1.1 38 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [165 0 R 166 0 R 168 0 R]
@@ -34012,7 +34012,7 @@ endobj
 /F5.1 45 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [173 0 R 174 0 R 175 0 R 177 0 R 178 0 R 180 0 R 181 0 R]
@@ -35484,7 +35484,7 @@ endobj
 /F1.0 10 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [184 0 R 185 0 R]
@@ -35909,7 +35909,7 @@ endobj
 /F4.0 35 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -36565,7 +36565,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [191 0 R]
@@ -37332,7 +37332,7 @@ endobj
 /F4.0 35 0 R
 /F1.1 38 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [196 0 R]
@@ -37863,7 +37863,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -37879,7 +37879,7 @@ endobj
 endobj
 206 0 obj
 << /Limits [(getshortmidpointkey-an-optimization-for-data-index-block) (handling-of-errors-during-log-splitting)]
-/Names [(getshortmidpointkey-an-optimization-for-data-index-block) 4074 0 R (getting.involved) 3376 0 R (getting_started) 48 0 R (git.best.practices) 3654 0 R (git.patch.flow) 3709 0 R (goals) 4168 0 R (guide-for-hbase-committers) 3683 0 R (guidelines-for-deploying-a-coprocessor) 2386 0 R (guidelines-for-reporting-effective-issues) 3394 0 R (hadoop) 140 0 R (hadoop.native.lib) 3990 0 R (hadoop.policy.file) 383 0 R (handling-of-errors-during-log-splitting) 1678 0 R]
+/Names [(getshortmidpointkey-an-optimization-for-data-index-block) 4076 0 R (getting.involved) 3378 0 R (getting_started) 48 0 R (git.best.practices) 3656 0 R (git.patch.flow) 3711 0 R (goals) 4170 0 R (guide-for-hbase-committers) 3685 0 R (guidelines-for-deploying-a-coprocessor) 2388 0 R (guidelines-for-reporting-effective-issues) 3396 0 R (hadoop) 140 0 R (hadoop.native.lib) 3992 0 R (hadoop.policy.file) 383 0 R (handling-of-errors-during-log-splitting) 1680 0 R]
 >>
 endobj
 207 0 obj
@@ -38409,7 +38409,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -38931,7 +38931,7 @@ endobj
 /F1.0 10 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -39566,7 +39566,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -40075,7 +40075,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -40606,7 +40606,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -41185,7 +41185,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [252 0 R 253 0 R]
@@ -41752,7 +41752,7 @@ endobj
 /F1.0 10 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [261 0 R 262 0 R 264 0 R 265 0 R]
@@ -41816,7 +41816,7 @@ endobj
 endobj
 268 0 obj
 << /Limits [(hbase.table.lock.enable) (hbase.tmp.dir)]
-/Names [(hbase.table.lock.enable) 408 0 R (hbase.table.max.rowsize) 411 0 R (hbase.tags) 1355 0 R (hbase.tests) 3534 0 R (hbase.tests.categories) 3578 0 R (hbase.tests.cluster) 3580 0 R (hbase.tests.example.code) 3581 0 R (hbase.tests.rules) 3574 0 R (hbase.tests.sleeps) 3579 0 R (hbase.tests.writing) 3573 0 R (hbase.thrift.maxQueuedRequests) 415 0 R (hbase.thrift.maxWorkerThreads) 414 0 R (hbase.thrift.minWorkerThreads) 413 0 R (hbase.tmp.dir) 198 0 R]
+/Names [(hbase.table.lock.enable) 408 0 R (hbase.table.max.rowsize) 411 0 R (hbase.tags) 1357 0 R (hbase.tests) 3536 0 R (hbase.tests.categories) 3580 0 R (hbase.tests.cluster) 3582 0 R (hbase.tests.example.code) 3583 0 R (hbase.tests.rules) 3576 0 R (hbase.tests.sleeps) 3581 0 R (hbase.tests.writing) 3575 0 R (hbase.thrift.maxQueuedRequests) 415 0 R (hbase.thrift.maxWorkerThreads) 414 0 R (hbase.thrift.minWorkerThreads) 413 0 R (hbase.tmp.dir) 198 0 R]
 >>
 endobj
 269 0 obj
@@ -42372,7 +42372,7 @@ endobj
 /F1.0 10 0 R
 /F1.1 38 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -42967,7 +42967,7 @@ endobj
 /F4.0 35 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [285 0 R 286 0 R]
@@ -42987,7 +42987,7 @@ endobj
 endobj
 284 0 obj
 << /Limits [(hbase.cluster.distributed) (hbase.data.umask.enable)]
-/Names [(hbase.cluster.distributed) 200 0 R (hbase.column.max.version) 434 0 R (hbase.commit.msg.format) 3835 0 R (hbase.coordinated.state.manager.class) 477 0 R (hbase.coprocessor.abortonerror) 399 0 R (hbase.coprocessor.enabled) 392 0 R (hbase.coprocessor.master.classes) 398 0 R (hbase.coprocessor.region.classes) 397 0 R (hbase.coprocessor.user.enabled) 396 0 R (hbase.data.umask) 425 0 R (hbase.data.umask.enable) 424 0 R]
+/Names [(hbase.cluster.distributed) 200 0 R (hbase.column.max.version) 434 0 R (hbase.commit.msg.format) 3837 0 R (hbase.coordinated.state.manager.class) 477 0 R (hbase.coprocessor.abortonerror) 399 0 R (hbase.coprocessor.enabled) 392 0 R (hbase.coprocessor.master.classes) 398 0 R (hbase.coprocessor.region.classes) 397 0 R (hbase.coprocessor.user.enabled) 396 0 R (hbase.data.umask) 425 0 R (hbase.data.umask.enable) 424 0 R]
 >>
 endobj
 285 0 obj
@@ -43533,7 +43533,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -44024,7 +44024,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -44596,7 +44596,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -45157,7 +45157,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -45754,7 +45754,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -46358,7 +46358,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -46901,7 +46901,7 @@ endobj
 /F1.0 10 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -47409,7 +47409,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -47984,7 +47984,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [350 0 R 354 0 R]
@@ -48553,7 +48553,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -48563,7 +48563,7 @@ endobj
 endobj
 359 0 obj
 << /Limits [(quota) (regions.arch)]
-/Names [(quota) 3214 0 R (read-api-and-usage) 1937 0 R (read-hbase-shell-commands-from-a-command-file) 785 0 R (reading-filtering-and-sending-edits) 3194 0 R (reading_cells_with_labels) 1409 0 R (recommended.configurations.hdfs) 546 0 R (recommended_configurations) 541 0 R (recommended_configurations.zk) 542 0 R (region-overlap-repairs) 3948 0 R (region-replication-for-meta-table-s-region) 1914 0 R (regions.arch) 1710 0 R]
+/Names [(quota) 3216 0 R (read-api-and-usage) 1939 0 R (read-hbase-shell-commands-from-a-command-file) 787 0 R (reading-filtering-and-sending-edits) 3196 0 R (reading_cells_with_labels) 1411 0 R (recommended.configurations.hdfs) 546 0 R (recommended_configurations) 541 0 R (recommended_configurations.zk) 542 0 R (region-overlap-repairs) 3950 0 R (region-replication-for-meta-table-s-region) 1916 0 R (regions.arch) 1712 0 R]
 >>
 endobj
 360 0 obj
@@ -49164,7 +49164,7 @@ endobj
 /F4.0 35 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [370 0 R 371 0 R 373 0 R 375 0 R 376 0 R]
@@ -49175,7 +49175,7 @@ endobj
 endobj
 368 0 obj
 << /Limits [(hbase.regionserver.thrift.compact) (hbase.rootdir.perms)]
-/Names [(hbase.regionserver.thrift.compact) 420 0 R (hbase.regionserver.thrift.framed) 416 0 R (hbase.regionserver.thrift.framed.max_frame_size_in_mb) 417 0 R (hbase.release.announcement) 3514 0 R (hbase.replication.management) 3164 0 R (hbase.replication.rpc.codec) 486 0 R (hbase.replication.source.maxthreads) 487 0 R (hbase.rest-csrf.browser-useragents-regex) 470 0 R (hbase.rest.csrf.enabled) 469 0 R (hbase.rest.filter.classes) 458 0 R (hbase.rest.port) 400 0 R (hbase.rest.readonly) 403 0 R (hbase.rest.support.proxyuser) 406 0 R (hbase.rest.threads.max) 404 0 R (hbase.rest.threads.min) 405 0 R (hbase.rolling.restart) 635 0 R (hbase.rolling.upgrade) 631 0 R (hbase.rootdir) 199 0 R (hbase.rootdir.perms) 421 0 R]
+/Names [(hbase.regionserver.thrift.compact) 420 0 R (hbase.regionserver.thrift.framed) 416 0 R (hbase.regionserver.thrift.framed.max_frame_size_in_mb) 417 0 R (hbase.release.announcement) 3516 0 R (hbase.replication.management) 3166 0 R (hbase.replication.rpc.codec) 486 0 R (hbase.replication.source.maxthreads) 487 0 R (hbase.rest-csrf.browser-useragents-regex) 470 0 R (hbase.rest.csrf.enabled) 469 0 R (hbase.rest.filter.classes) 458 0 R (hbase.rest.port) 400 0 R (hbase.rest.readonly) 403 0 R (hbase.rest.support.proxyuser) 406 0 R (hbase.rest.threads.max) 404 0 R (hbase.rest.threads.min) 405 0 R (hbase.rolling.restart) 635 0 R (hbase.rolling.upgrade) 631 0 R (hbase.rootdir) 199 0 R (hbase.rootdir.perms) 421 0 R]
 >>
 endobj
 369 0 obj
@@ -49755,7 +49755,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -50297,7 +50297,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -50848,7 +50848,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -51367,7 +51367,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -51885,7 +51885,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -51895,7 +51895,7 @@ endobj
 endobj
 412 0 obj
 << /Limits [(hbase.zookeeper.property.maxClientCnxns) (hfile.block.index.cacheonwrite)]
-/Names [(hbase.zookeeper.property.maxClientCnxns) 273 0 R (hbase.zookeeper.property.syncLimit) 267 0 R (hbase.zookeeper.quorum) 203 0 R (hbase_apis) 2140 0 R (hbase_default_configurations) 197 0 R (hbase_env) 530 0 R (hbase_metrics) 3107 0 R (hbase_mob) 1951 0 R (hbase_site) 526 0 R (hbase_supported_tested_definitions) 42 0 R (hbck) 3005 0 R (hbck.in.depth) 3940 0 R (health.check) 3001 0 R (hedged.reads) 2604 0 R (hfile) 1767 0 R (hfile-format) 1768 0 R (hfile-format-2) 4043 0 R (hfile.block.bloom.cacheonwrite) 355 0 R (hfile.block.cache.size) 344 0 R (hfile.block.index.cacheonwrite) 345 0 R]
+/Names [(hbase.zookeeper.property.maxClientCnxns) 273 0 R (hbase.zookeeper.property.syncLimit) 267 0 R (hbase.zookeeper.quorum) 203 0 R (hbase_apis) 2142 0 R (hbase_default_configurations) 197 0 R (hbase_env) 530 0 R (hbase_metrics) 3109 0 R (hbase_mob) 1953 0 R (hbase_site) 526 0 R (hbase_supported_tested_definitions) 42 0 R (hbck) 3007 0 R (hbck.in.depth) 3942 0 R (health.check) 3003 0 R (hedged.reads) 2606 0 R (hfile) 1769 0 R (hfile-format) 1770 0 R (hfile-format-2) 4045 0 R (hfile.block.bloom.cacheonwrite) 355 0 R (hfile.block.cache.size) 344 0 R (hfile.block.index.cacheonwrite) 345 0 R]
 >>
 endobj
 413 0 obj
@@ -52381,7 +52381,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -52394,7 +52394,7 @@ endobj
 endobj
 422 0 obj
 << /Limits [(hbase.rpc) (hbase.secure.spnego.ui)]
-/Names [(hbase.rpc) 4161 0 R (hbase.rpc.rows.warning.threshold) 509 0 R (hbase.rpc.shortoperation.timeout) 367 0 R (hbase.rpc.timeout) 361 0 R (hbase.rs.cacheblocksonwrite) 360 0 R (hbase.secure.bulkload) 1435 0 R (hbase.secure.configuration) 1275 0 R (hbase.secure.enable) 1439 0 R (hbase.secure.simpleconfiguration) 1317 0 R (hbase.secure.spnego.ui) 1270 0 R]
+/Names [(hbase.rpc) 4163 0 R (hbase.rpc.rows.warning.threshold) 509 0 R (hbase.rpc.shortoperation.timeout) 367 0 R (hbase.rpc.timeout) 361 0 R (hbase.rs.cacheblocksonwrite) 360 0 R (hbase.secure.bulkload) 1437 0 R (hbase.secure.configuration) 1277 0 R (hbase.secure.enable) 1441 0 R (hbase.secure.simpleconfiguration) 1319 0 R (hbase.secure.spnego.ui) 1272 0 R]
 >>
 endobj
 423 0 obj
@@ -52915,7 +52915,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -53483,7 +53483,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -54000,7 +54000,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -54543,7 +54543,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [461 0 R 462 0 R]
@@ -54571,7 +54571,7 @@ endobj
 endobj
 460 0 obj
 << /Limits [(hbase.limitetprivate.api) (hbase.master.logcleaner.plugins)]
-/Names [(hbase.limitetprivate.api) 626 0 R (hbase.local.dir) 205 0 R (hbase.mapreduce.classpath) 1172 0 R (hbase.master.balancer.maxRitPercent) 295 0 R (hbase.master.fileSplitTimeout) 217 0 R (hbase.master.hfilecleaner.plugins) 215 0 R (hbase.master.info.bindAddress) 209 0 R (hbase.master.info.port) 208 0 R (hbase.master.infoserver.redirect) 216 0 R (hbase.master.kerberos.principal) 378 0 R (hbase.master.keytab.file) 377 0 R (hbase.master.loadbalance.bytable) 463 0 R (hbase.master.loadbalancer.class) 459 0 R (hbase.master.logcleaner.plugins) 212 0 R]
+/Names [(hbase.limitetprivate.api) 626 0 R (hbase.local.dir) 205 0 R (hbase.mapreduce.classpath) 1174 0 R (hbase.master.balancer.maxRitPercent) 295 0 R (hbase.master.fileSplitTimeout) 217 0 R (hbase.master.hfilecleaner.plugins) 215 0 R (hbase.master.info.bindAddress) 209 0 R (hbase.master.info.port) 208 0 R (hbase.master.infoserver.redirect) 216 0 R (hbase.master.kerberos.principal) 378 0 R (hbase.master.keytab.file) 377 0 R (hbase.master.loadbalance.bytable) 463 0 R (hbase.master.loadbalancer.class) 459 0 R (hbase.master.logcleaner.plugins) 212 0 R]
 >>
 endobj
 461 0 obj
@@ -55190,7 +55190,7 @@ endobj
 /F4.0 35 0 R
 /F6.0 471 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [467 0 R 468 0 R]
@@ -55231,11 +55231,11 @@ endobj
 << /Type /Font
 /BaseFont /066905+mplus1mn-bold
 /Subtype /TrueType
-/FontDescriptor 4895 0 R
+/FontDescriptor 4897 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4897 0 R
-/ToUnicode 4896 0 R
+/Widths 4899 0 R
+/ToUnicode 4898 0 R
 >>
 endobj
 472 0 obj
@@ -55801,7 +55801,7 @@ endobj
 /F3.0 33 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -55814,7 +55814,7 @@ endobj
 endobj
 478 0 obj
 << /Limits [(hbase.defaults.for.version.skip) (hbase.hregion.percolumnfamilyflush.size.lower.bound.min)]
-/Names [(hbase.defaults.for.version.skip) 407 0 R (hbase.dfs.client.read.shortcircuit.buffer.size) 439 0 R (hbase.display.keys) 391 0 R (hbase.dynamic.jars.dir) 456 0 R (hbase.encryption.server) 1422 0 R (hbase.env.sh) 511 0 R (hbase.fix.version.in.jira) 3823 0 R (hbase.history) 4121 0 R (hbase.hregion.majorcompaction) 314 0 R (hbase.hregion.majorcompaction.jitter) 315 0 R (hbase.hregion.max.filesize) 313 0 R (hbase.hregion.memstore.block.multiplier) 309 0 R (hbase.hregion.memstore.flush.size) 306 0 R (hbase.hregion.memstore.mslab.enabled) 310 0 R (hbase.hregion.percolumnfamilyflush.size.lower.bound.min) 307 0 R]
+/Names [(hbase.defaults.for.version.skip) 407 0 R (hbase.dfs.client.read.shortcircuit.buffer.size) 439 0 R (hbase.display.keys) 391 0 R (hbase.dynamic.jars.dir) 456 0 R (hbase.encryption.server) 1424 0 R (hbase.env.sh) 511 0 R (hbase.fix.version.in.jira) 3825 0 R (hbase.history) 4123 0 R (hbase.hregion.majorcompaction) 314 0 R (hbase.hregion.majorcompaction.jitter) 315 0 R (hbase.hregion.max.filesize) 313 0 R (hbase.hregion.memstore.block.multiplier) 309 0 R (hbase.hregion.memstore.flush.size) 306 0 R (hbase.hregion.memstore.mslab.enabled) 310 0 R (hbase.hregion.percolumnfamilyflush.size.lower.bound.min) 307 0 R]
 >>
 endobj
 479 0 obj
@@ -56353,7 +56353,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -56868,7 +56868,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -57379,7 +57379,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -57395,7 +57395,7 @@ endobj
 endobj
 501 0 obj
 << /Limits [(hbase.mob.file.cache.size) (hbase.org.site.contributing)]
-/Names [(hbase.mob.file.cache.size) 492 0 R (hbase.moduletest.run) 3543 0 R (hbase.moduletest.shell) 3538 0 R (hbase.moduletests) 3536 0 R (hbase.normalizer.min.region.count) 300 0 R (hbase.normalizer.period) 299 0 R (hbase.offpeak.end.hour) 335 0 R (hbase.offpeak.start.hour) 334 0 R (hbase.org) 3525 0 R (hbase.org.site.contributing) 3527 0 R]
+/Names [(hbase.mob.file.cache.size) 492 0 R (hbase.moduletest.run) 3545 0 R (hbase.moduletest.shell) 3540 0 R (hbase.moduletests) 3538 0 R (hbase.normalizer.min.region.count) 300 0 R (hbase.normalizer.period) 299 0 R (hbase.offpeak.end.hour) 335 0 R (hbase.offpeak.start.hour) 334 0 R (hbase.org) 3527 0 R (hbase.org.site.contributing) 3529 0 R]
 >>
 endobj
 502 0 obj
@@ -57910,7 +57910,7 @@ endobj
 /F1.0 10 0 R
 /F2.0 29 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -59021,7 +59021,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [517 0 R]
@@ -59869,7 +59869,7 @@ endobj
 /F4.0 35 0 R
 /F2.0 29 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [520 0 R]
@@ -61326,7 +61326,7 @@ endobj
 /F3.0 33 0 R
 /F1.1 38 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -61850,7 +61850,7 @@ endobj
 /F1.0 10 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -62503,7 +62503,7 @@ endobj
 /F4.0 35 0 R
 /F1.1 38 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [535 0 R 536 0 R 538 0 R 539 0 R 540 0 R 545 0 R]
@@ -63258,7 +63258,7 @@ endobj
 /F2.0 29 0 R
 /F1.1 38 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [551 0 R 554 0 R 557 0 R]
@@ -63297,7 +63297,7 @@ endobj
 endobj
 556 0 obj
 << /Limits [(configuration) (coprocessor-implementation-overview)]
-/Names [(configuration) 104 0 R (configuration-2) 3136 0 R (configuration-3) 3911 0 R (configuration-files) 111 0 R (configuration-from-scratch) 3808 0 R (configuration-properties) 1919 0 R (configure-mob-compaction-mergeable-threshold) 1960 0 R (configure-mob-compaction-policy) 1959 0 R (configuring-columns-for-mob) 1956 0 R (configuring-server-wide-behavior-of-bloom-filters) 2510 0 R (configuring-the-rest-server-and-client) 2159 0 R (confirm) 190 0 R (connection-setup) 4173 0 R (constraints) 1074 0 R (contributing-to-documentation-or-other-strings) 3846 0 R (coprocessor-implementation-overview) 2315 0 R]
+/Names [(configuration) 104 0 R (configuration-2) 3138 0 R (configuration-3) 3913 0 R (configuration-files) 111 0 R (configuration-from-scratch) 3810 0 R (configuration-properties) 1921 0 R (configure-mob-compaction-mergeable-threshold) 1962 0 R (configure-mob-compaction-policy) 1961 0 R (configuring-columns-for-mob) 1958 0 R (configuring-server-wide-behavior-of-bloom-filters) 2512 0 R (configuring-the-rest-server-and-client) 2161 0 R (confirm) 190 0 R (connection-setup) 4175 0 R (constraints) 1076 0 R (contributing-to-documentation-or-other-strings) 3848 0 R (coprocessor-implementation-overview) 2317 0 R]
 >>
 endobj
 557 0 obj
@@ -64159,7 +64159,7 @@ endobj
 /F4.0 35 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [561 0 R]
@@ -64973,7 +64973,7 @@ endobj
 /F5.1 45 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [565 0 R 566 0 R 567 0 R 571 0 R 574 0 R 575 0 R 576 0 R]
@@ -65715,7 +65715,7 @@ endobj
 /F1.1 38 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [580 0 R 581 0 R]
@@ -67147,7 +67147,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [585 0 R 586 0 R]
@@ -67924,7 +67924,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -68625,7 +68625,7 @@ endobj
 /F3.0 33 0 R
 /F5.1 45 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -69956,7 +69956,7 @@ endobj
 /F4.0 35 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -71451,7 +71451,7 @@ endobj
 /Font << /F2.0 29 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 >>
@@ -71617,7 +71617,7 @@ endobj
 /Font << /F2.0 29 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -71815,7 +71815,7 @@ endobj
 /Font << /F2.0 29 0 R
 /F1.0 10 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [601 0 R 602 0 R 603 0 R 604 0 R 605 0 R]
@@ -72569,7 +72569,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [610 0 R]
@@ -73512,7 +73512,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [614 0 R 615 0 R 616 0 R]
@@ -75900,7 +75900,7 @@ endobj
 /F1.1 38 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [620 0 R 621 0 R]
@@ -76785,7 +76785,7 @@ endobj
 /F2.0 29 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [624 0 R]
@@ -77259,7 +77259,7 @@ endobj
 /F4.0 35 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 /Annots [632 0 R 633 0 R 634 0 R 636 0 R 637 0 R 638 0 R]
@@ -78051,7 +78051,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [646 0 R]
@@ -78062,17 +78062,17 @@ endobj
 endobj
 642 0 obj
 << /Limits [(standalone.over.hdfs) (storefile-refresher)]
-/Names [(standalone.over.hdfs) 169 0 R (standalone_dist) 164 0 R (starting-and-stopping-the-rest-server) 2158 0 R (static-loading) 2349 0 R (static-unloading) 2352 0 R (store) 1761 0 R (store-file-ttl) 1913 0 R (store.file.dir) 1776 0 R (store.memstore) 1762 0 R (storefile-refresher) 1909 0 R]
+/Names [(standalone.over.hdfs) 169 0 R (standalone_dist) 164 0 R (starting-and-stopping-the-rest-server) 2160 0 R (static-loading) 2351 0 R (static-unloading) 2354 0 R (store) 1763 0 R (store-file-ttl) 1915 0 R (store.file.dir) 1778 0 R (store.memstore) 1764 0 R (storefile-refresher) 1911 0 R]
 >>
 endobj
 643 0 obj
 << /Limits [(__anchor-top) (cascading)]
-/Kids [157 0 R 3652 0 R 1878 0 R 1459 0 R 3888 0 R 1622 0 R 4069 0 R 2108 0 R 2066 0 R 2023 0 R 2057 0 R 3457 0 R]
+/Kids [157 0 R 3654 0 R 1880 0 R 1461 0 R 3890 0 R 1624 0 R 4071 0 R 2110 0 R 2068 0 R 2025 0 R 2059 0 R 3459 0 R]
 >>
 endobj
 644 0 obj
 << /Limits [(hbase.mob.file.cache.size) (hbase.zookeeper.property.initLimit)]
-/Kids [501 0 R 4016 0 R 441 0 R 239 0 R 368 0 R 422 0 R 4162 0 R 455 0 R 268 0 R 3575 0 R 3546 0 R]
+/Kids [501 0 R 4018 0 R 441 0 R 239 0 R 368 0 R 422 0 R 4164 0 R 455 0 R 268 0 R 3577 0 R 3548 0 R]
 >>
 endobj
 645 0 obj
@@ -78736,7 +78736,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -79451,7 +79451,7 @@ endobj
 /F1.0 10 0 R
 /F2.0 29 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [654 0 R]
@@ -79918,7 +79918,7 @@ endobj
 /F3.0 33 0 R
 /F4.0 35 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
 >>
@@ -80638,7 +80638,7 @@ endobj
 /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
 /Annots [663 0 R 666 0 R]
@@ -80679,7 +80679,7 @@ endobj
 >>
 endobj
 667 0 obj
-<< /Length 16806
+<< /Length 17301
 >>
 stream
 q
@@ -81794,38 +81794,42 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+0.2718 Tw
+
 BT
 66.24 101.523 Td
 /F1.0 10.5 Tf
-<68626173652e726567696f6e7365727665722e6c6f67726f6c6c2e6d756c7469706c696572206973206e6f772073657420746f20302e352e2050726576696f75736c792069742077617320302e39352e> Tj
+<68626173652e726567696f6e7365727665722e6c6f67726f6c6c2e6d756c7469706c696572206973206e6f772073657420746f20302e352e2050726576696f75736c792069742077617320302e39352e2054686973206368616e67652069732074696564> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
--0.5 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+1.4792 Tw
+
 BT
-56.8805 79.743 Td
+66.24 85.743 Td
 /F1.0 10.5 Tf
-<a5> Tj
+[<776974682074686520666f6c6c6f77696e6720646f75626c696e67206f6620626c6f636b2073697a652e20436f6d62696e65642c2074686573652074776f20636f6e6669677572> 20.0195 <6174696f6e206368616e6765732073686f756c64>] TJ
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
-0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-1.5956 Tw
+0.0172 Tw
 
 BT
-66.24 79.743 Td
+66.24 69.963 Td
 /F1.0 10.5 Tf
-[<68626173652e726567696f6e7365727665722e686c6f672e626c6f636b73697a652064656661756c747320746f2032782074686520484446532064656661756c7420626c6f636b2073697a6520666f72207468652057> 60.0586 <414c206469722e>] TJ
+[<6d616b> 20.0195 <6520666f722057> 60.0586 <414c73206f662061626f7574207468652073616d652073697a652061732074686f736520696e2068626173652d312e78206275742074686572652073686f756c64206265206c65737320696e636964656e6365206f66>] TJ
 ET
 
 
@@ -81835,12 +81839,31 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+0.7039 Tw
+
 BT
-66.24 63.963 Td
+66.24 54.183 Td
 /F1.0 10.5 Tf
-[<50726576696f75736c792069742077617320657175616c20746f2074686520484446532064656661756c7420626c6f636b2073697a6520666f72207468652057> 60.0586 <414c206469722e>] TJ
+[<736d616c6c20626c6f636b732062656361757365207765206661696c20746f20726f6c6c207468652057> 60.0586 <414c206265666f7265207765206869742074686520626c6f636b73697a65207468726573686f6c642e2053656520>] TJ
 ET
 
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+0.7039 Tw
+
+BT
+509.1772 54.183 Td
+/F1.0 10.5 Tf
+[<4842> 20.0195 <4153452d>] TJ
+ET
+
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 q
@@ -81881,10 +81904,10 @@ endobj
 /F3.0 33 0 R
 /F2.0 29 0 R
 >>
-/XObject << /Stamp1 4640 0 R
+/XObject << /Stamp1 4642 0 R
 >>
 >>
-/Annots [669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 679 0 R 680 0 R]
+/Annots [669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 679 0 R 680 0 R 681 0 R]
 >>
 endobj
 669 0 obj
@@ -81974,75 +81997,41 @@ endobj
 >>
 endobj
 681 0 obj
-<< /Length 13311
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (https://issues.apache.org/jira/browse/HBASE-19148)
+>>
+/Subtype /Link
+/Rect [509.1772 51.117 547.04 65.397]
+/Type /Annot
+>>
+endobj
+682 0 obj
+<< /Length 13157
 >>
 stream
 q
-
--0.5 Tc
 /DeviceRGB cs
-0.2 0.2 0.2 scn
+0.2588 0.5451 0.7922 scn
 /DeviceRGB CS
-0.2 0.2 0.2 SCN
-
-BT
-56.8805 793.926 Td
-/F1.0 10.5 Tf
-<a5> Tj
-ET
-
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
-
-0.0 Tc
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-BT
-66.24 793.926 Td
-/F1.0 10.5 Tf
-<68626173652e636c69656e742e73746172742e6c6f672e6572726f72732e636f756e746572206368616e67656420746f20352e2050726576696f75736c792069742077617320392e> Tj
-ET
-
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
-
--0.5 Tc
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-BT
-56.8805 772.146 Td
-/F1.0 10.5 Tf
-<a5> Tj
-ET
-
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
-
-0.0 Tc
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-0.6005 Tw
+0.2588 0.5451 0.7922 SCN
 
 BT
-66.24 772.146 Td
+66.24 794.676 Td
 /F1.0 10.5 Tf
-<68626173652e6970632e7365727665722e63616c6c71756575652e74797065206368616e67656420746f20276669666f272e20496e2048426173652076657273696f6e7320312e30202d20312e32206974207761732027646561646c696e65272e20496e> Tj
+<3139313438> Tj
 ET
 
-
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
 BT
-66.24 756.366 Td
+95.5875 794.676 Td
 /F1.0 10.5 Tf
-<7072696f7220616e64206c6174657220312e782076657273696f6e7320697420616c72656164792064656661756c747320746f20276669666f272e> Tj
+<20666f722064697363757373696f6e2e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82053,7 +82042,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 734.586 Td
+56.8805 772.896 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82065,27 +82054,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.9757 Tw
-
-BT
-66.24 734.586 Td
-/F1.0 10.5 Tf
-[<68626173652e68726567696f6e2e6d656d73746f72652e6368756e6b706f6f6c2e6d617873697a6520697320312e302062> 20.0195 <792064656661756c742e2050726576696f75736c792069742077617320302e302e204566666563746976656c79> 89.8438 <2c>] TJ
-ET
-
-
-0.0 Tw
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-0.7104 Tw
+1.5956 Tw
 
 BT
-66.24 718.806 Td
+66.24 772.896 Td
 /F1.0 10.5 Tf
-<74686973206d65616e732070726576696f75736c7920776520776f756c64206e6f74207573652061206368756e6b20706f6f6c207768656e206f7572206d656d73746f7265206973206f6e6865617020616e64206e6f77> Tj
+[<68626173652e726567696f6e7365727665722e686c6f672e626c6f636b73697a652064656661756c747320746f2032782074686520484446532064656661756c7420626c6f636b2073697a6520666f72207468652057> 60.0586 <414c206469722e>] TJ
 ET
 
 
@@ -82096,31 +82070,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 703.026 Td
-/F1.0 10.5 Tf
-<77652077696c6c2e20536565207468652073656374696f6e20> Tj
-ET
-
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
-0.2588 0.5451 0.7922 scn
-0.2588 0.5451 0.7922 SCN
-
-BT
-184.323 703.026 Td
-/F1.0 10.5 Tf
-<4c6f6e6720474320706175736573> Tj
-ET
-
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-BT
-262.7895 703.026 Td
+66.24 757.116 Td
 /F1.0 10.5 Tf
-<20666f72206d6f726520696e66726f6d6174696f6e2061626f757420746865204d534c4142206368756e6b20706f6f6c2e> Tj
+[<50726576696f75736c792069742077617320657175616c20746f2074686520484446532064656661756c7420626c6f636b2073697a6520666f72207468652057> 60.0586 <414c206469722e>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -82131,7 +82083,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 681.246 Td
+56.8805 735.336 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82144,9 +82096,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 681.246 Td
+66.24 735.336 Td
 /F1.0 10.5 Tf
-<68626173652e6d61737465722e636c65616e65722e696e74657276616c206973206e6f772073657420746f203130206d696e757465732e2050726576696f75736c79206974207761732031206d696e7574652e> Tj
+<68626173652e636c69656e742e73746172742e6c6f672e6572726f72732e636f756e746572206368616e67656420746f20352e2050726576696f75736c792069742077617320392e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82157,7 +82109,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 659.466 Td
+56.8805 713.556 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82169,12 +82121,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-1.6017 Tw
+0.6005 Tw
 
 BT
-66.24 659.466 Td
+66.24 713.556 Td
 /F1.0 10.5 Tf
-<68626173652e6d61737465722e70726f6365647572652e746872656164732077696c6c206e6f772064656661756c7420746f20312f34206f6620746865206e756d626572206f6620617661696c61626c6520435055732c20627574> Tj
+<68626173652e6970632e7365727665722e63616c6c71756575652e74797065206368616e67656420746f20276669666f272e20496e2048426173652076657273696f6e7320312e30202d20312e32206974207761732027646561646c696e65272e20496e> Tj
 ET
 
 
@@ -82185,9 +82137,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 643.686 Td
+66.24 697.776 Td
 /F1.0 10.5 Tf
-<6e6f74206c657373207468616e20313620746872656164732e2050726576696f75736c7920697420776f756c64206265206e756d626572206f66207468726561647320657175616c20746f206e756d626572206f6620435055732e> Tj
+<7072696f7220616e64206c6174657220312e782076657273696f6e7320697420616c72656164792064656661756c747320746f20276669666f272e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82198,7 +82150,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 621.906 Td
+56.8805 675.996 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82210,62 +82162,62 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+0.9757 Tw
+
 BT
-66.24 621.906 Td
+66.24 675.996 Td
 /F1.0 10.5 Tf
-<68626173652e6873746f72652e626c6f636b696e6753746f726546696c6573206973206e6f772031362e2050726576696f75736c79206974207761732031302e> Tj
+[<68626173652e68726567696f6e2e6d656d73746f72652e6368756e6b706f6f6c2e6d617873697a6520697320312e302062> 20.0195 <792064656661756c742e2050726576696f75736c792069742077617320302e302e204566666563746976656c79> 89.8438 <2c>] TJ
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
--0.5 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+0.7104 Tw
+
 BT
-56.8805 600.126 Td
+66.24 660.216 Td
 /F1.0 10.5 Tf
-<a5> Tj
+<74686973206d65616e732070726576696f75736c7920776520776f756c64206e6f74207573652061206368756e6b20706f6f6c207768656e206f7572206d656d73746f7265206973206f6e6865617020616e64206e6f77> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
-0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
 BT
-66.24 600.126 Td
+66.24 644.436 Td
 /F1.0 10.5 Tf
-<68626173652e687474702e6d61782e74687265616473206973206e6f772031362e2050726576696f75736c79206974207761732031302e> Tj
+<77652077696c6c2e20536565207468652073656374696f6e20> Tj
 ET
 
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
--0.5 Tc
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
 
 BT
-56.8805 578.346 Td
+184.323 644.436 Td
 /F1.0 10.5 Tf
-<a5> Tj
+<4c6f6e6720474320706175736573> Tj
 ET
 
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
-0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
 BT
-66.24 578.346 Td
+262.7895 644.436 Td
 /F1.0 10.5 Tf
-<68626173652e636c69656e742e6d61782e7065727365727665722e7461736b73206973206e6f7720322e2050726576696f75736c792069742077617320352e> Tj
+<20666f72206d6f726520696e66726f6d6174696f6e2061626f757420746865204d534c4142206368756e6b20706f6f6c2e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82276,7 +82228,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 556.566 Td
+56.8805 622.656 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82289,9 +82241,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 556.566 Td
+66.24 622.656 Td
 /F1.0 10.5 Tf
-<68626173652e6e6f726d616c697a65722e706572696f64206973206e6f772035206d696e757465732e2050726576696f75736c7920697420776173203330206d696e757465732e> Tj
+<68626173652e6d61737465722e636c65616e65722e696e74657276616c206973206e6f772073657420746f203130206d696e757465732e2050726576696f75736c79206974207761732031206d696e7574652e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82302,7 +82254,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 534.786 Td
+56.8805 600.876 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82314,12 +82266,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-11.4561 Tw
+1.6017 Tw
 
 BT
-66.24 534.786 Td
+66.24 600.876 Td
 /F1.0 10.5 Tf
-[<68626173652e726567696f6e7365727665722e726567696f6e2e73706c69742e706f6c696379206973206e6f77205374657070696e6753706c6974506f6c696379> 89.8438 <2e2050726576696f75736c7920697420776173>] TJ
+<68626173652e6d61737465722e70726f6365647572652e746872656164732077696c6c206e6f772064656661756c7420746f20312f34206f6620746865206e756d626572206f6620617661696c61626c6520435055732c20627574> Tj
 ET
 
 
@@ -82330,9 +82282,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 519.006 Td
+66.24 585.096 Td
 /F1.0 10.5 Tf
-[<496e6372656173696e6754> 29.7852 <6f5570706572426f756e64526567696f6e53706c6974506f6c696379> 89.8438 <2e>] TJ
+<6e6f74206c657373207468616e20313620746872656164732e2050726576696f75736c7920697420776f756c64206265206e756d626572206f66207468726561647320657175616c20746f206e756d626572206f6620435055732e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82343,7 +82295,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 497.226 Td
+56.8805 563.316 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82356,87 +82308,61 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 497.226 Td
+66.24 563.316 Td
 /F1.0 10.5 Tf
-[<7265706c69636174696f6e2e736f757263652e72> 20.0195 <6174696f206973206e6f7720302e352e2050726576696f75736c792069742077617320302e312e>] TJ
+<68626173652e6873746f72652e626c6f636b696e6753746f726546696c6573206973206e6f772031362e2050726576696f75736c79206974207761732031302e> Tj
 ET
 
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-BT
-48.24 470.0442 Td
-/F3.0 9.975 Tf
-[<224d617374657220686f7374696e6720726567696f6e732220666561747572652062726f6b> 20.0195 <656e20616e6420756e737570706f72746564>] TJ
-ET
 
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
+-0.5 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.7313 Tw
-
 BT
-48.24 450.455 Td
+56.8805 541.536 Td
 /F1.0 10.5 Tf
-<546865206665617475726520224d6173746572206163747320617320726567696f6e207365727665722220616e64206173736f63696174656420666f6c6c6f772d6f6e20776f726b20617661696c61626c6520696e20484261736520312e79206973> Tj
+<a5> Tj
 ET
 
-
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-0.2 0.2 0.2 scn
-0.2 0.2 0.2 SCN
-
-1.7881 Tw
-
-BT
-48.24 434.675 Td
-/F1.0 10.5 Tf
-<6e6f6e2d66756e6374696f6e616c20696e20484261736520322e7920616e642073686f756c64206e6f74206265207573656420696e20612070726f64756374696f6e2073657474696e672064756520746f20646561646c6f636b206f6e> Tj
-ET
 
-
-0.0 Tw
-0.0 0.0 0.0 SCN
-0.0 0.0 0.0 scn
+0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-3.2118 Tw
-
 BT
-48.24 418.895 Td
+66.24 541.536 Td
 /F1.0 10.5 Tf
-[<4d617374657220696e697469616c697a6174696f6e2e20446f776e73747265616d20757365727320617265206164766973656420746f2074726561742072656c6174656420636f6e6669677572> 20.0195 <6174696f6e2073657474696e6773206173>] TJ
+<68626173652e687474702e6d61782e74687265616473206973206e6f772031362e2050726576696f75736c79206974207761732031302e> Tj
 ET
 
-
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
+
+-0.5 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
 BT
-48.24 403.115 Td
+56.8805 519.756 Td
 /F1.0 10.5 Tf
-<6578706572696d656e74616c20616e6420746865206665617475726520617320696e617070726f70726961746520666f722070726f64756374696f6e2073657474696e67732e> Tj
+<a5> Tj
 ET
 
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
+
+0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
 BT
-48.24 375.335 Td
+66.24 519.756 Td
 /F1.0 10.5 Tf
-<412062726965662073756d6d617279206f662072656c61746564206368616e6765733a> Tj
+<68626173652e636c69656e742e6d61782e7065727365727665722e7461736b73206973206e6f7720322e2050726576696f75736c792069742077617320352e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82447,7 +82373,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 347.555 Td
+56.8805 497.976 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82460,9 +82386,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 347.555 Td
+66.24 497.976 Td
 /F1.0 10.5 Tf
-[<4d6173746572206e6f206c6f6e676572206361727269657320726567696f6e732062> 20.0195 <792064656661756c74>] TJ
+<68626173652e6e6f726d616c697a65722e706572696f64206973206e6f772035206d696e757465732e2050726576696f75736c7920697420776173203330206d696e757465732e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82473,7 +82399,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 325.775 Td
+56.8805 476.196 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82485,12 +82411,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.6229 Tw
+11.4561 Tw
 
 BT
-66.24 325.775 Td
+66.24 476.196 Td
 /F1.0 10.5 Tf
-<68626173652e62616c616e6365722e7461626c65734f6e4d6173746572206973206120626f6f6c65616e2c2064656661756c742066616c73652028696620697420686f6c647320616e20484261736520312e78206c697374206f66207461626c65732c> Tj
+[<68626173652e726567696f6e7365727665722e726567696f6e2e73706c69742e706f6c696379206973206e6f77205374657070696e6753706c6974506f6c696379> 89.8438 <2e2050726576696f75736c7920697420776173>] TJ
 ET
 
 
@@ -82501,9 +82427,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 309.995 Td
+66.24 460.416 Td
 /F1.0 10.5 Tf
-<77696c6c2064656661756c7420746f2066616c736529> Tj
+[<496e6372656173696e6754> 29.7852 <6f5570706572426f756e64526567696f6e53706c6974506f6c696379> 89.8438 <2e>] TJ
 ET
 
 0.0 0.0 0.0 SCN
@@ -82514,7 +82440,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 288.215 Td
+56.8805 438.636 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82526,53 +82452,64 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-3.0126 Tw
-
 BT
-66.24 288.215 Td
+66.24 438.636 Td
 /F1.0 10.5 Tf
-[<68626173652e62616c616e6365722e7461626c65734f6e4d61737465722e73797374656d54> 29.7852 <61626c65734f6e6c7920697320626f6f6c65616e20746f206b> 20.0195 <6565702075736572207461626c6573206f6666206d61737465722e>] TJ
+[<7265706c69636174696f6e2e736f757263652e72> 20.0195 <6174696f206973206e6f7720302e352e2050726576696f75736c792069742077617320302e312e>] TJ
 ET
 
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 411.4542 Td
+/F3.0 9.975 Tf
+[<224d617374657220686f7374696e6720726567696f6e732220666561747572652062726f6b> 20.0195 <656e20616e6420756e737570706f72746564>] TJ
+ET
 
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+0.7313 Tw
+
 BT
-66.24 272.435 Td
+48.24 391.865 Td
 /F1.0 10.5 Tf
-<64656661756c742066616c7365> Tj
+<546865206665617475726520224d6173746572206163747320617320726567696f6e207365727665722220616e64206173736f63696174656420666f6c6c6f772d6f6e20776f726b20617661696c61626c6520696e20484261736520312e79206973> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
--0.5 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+1.7881 Tw
+
 BT
-56.8805 250.655 Td
+48.24 376.085 Td
 /F1.0 10.5 Tf
-<a5> Tj
+<6e6f6e2d66756e6374696f6e616c20696e20484261736520322e7920616e642073686f756c64206e6f74206265207573656420696e20612070726f64756374696f6e2073657474696e672064756520746f20646561646c6f636b206f6e> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-
-0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-1.564 Tw
+3.2118 Tw
 
 BT
-66.24 250.655 Td
+48.24 360.305 Td
 /F1.0 10.5 Tf
-[<74686f73652077697368696e6720746f207265706c6963617465206f6c64206c6973742d6f662d7365727665727320636f6e6669672073686f756c64206465706c6f> 20.0195 <792061207374616e642d616c6f6e6520526567696f6e536572766572>] TJ
+[<4d617374657220696e697469616c697a6174696f6e2e20446f776e73747265616d20757365727320617265206164766973656420746f2074726561742072656c6174656420636f6e6669677572> 20.0195 <6174696f6e2073657474696e6773206173>] TJ
 ET
 
 
@@ -82583,9 +82520,9 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 234.875 Td
+48.24 344.525 Td
 /F1.0 10.5 Tf
-<70726f6365737320616e64207468656e2072656c79206f6e20526567696f6e205365727665722047726f757073> Tj
+<6578706572696d656e74616c20616e6420746865206665617475726520617320696e617070726f70726961746520666f722070726f64756374696f6e2073657474696e67732e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -82594,37 +82531,63 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 207.6932 Td
-/F3.0 9.975 Tf
-[<224469737472696275746564204c6f67205265706c61> 20.0195 <792220666561747572652062726f6b> 20.0195 <656e20616e642072656d6f766564>] TJ
+48.24 316.745 Td
+/F1.0 10.5 Tf
+<412062726965662073756d6d617279206f662072656c61746564206368616e6765733a> Tj
 ET
 
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
+
+-0.5 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-2.4191 Tw
+BT
+56.8805 288.965 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+0.0 Tc
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
 
 BT
-48.24 188.104 Td
+66.24 288.965 Td
 /F1.0 10.5 Tf
-[<546865204469737472696275746564204c6f67205265706c61> 20.0195 <792066656174757265207761732062726f6b> 20.0195 <656e20616e6420686173206265656e2072656d6f7665642066726f6d20484261736520322e792b2e2041732061>] TJ
+[<4d6173746572206e6f206c6f6e676572206361727269657320726567696f6e732062> 20.0195 <792064656661756c74>] TJ
 ET
 
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+56.8805 267.185 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
 
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
+
+0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.4026 Tw
+0.6229 Tw
 
 BT
-48.24 172.324 Td
+66.24 267.185 Td
 /F1.0 10.5 Tf
-<636f6e73657175656e636520616c6c2072656c6174656420636f6e666967732c206d6574726963732c20525043206669656c64732c20616e64206c6f6767696e67206861766520616c736f206265656e2072656d6f7665642e204e6f74652074686174> Tj
+<68626173652e62616c616e6365722e7461626c65734f6e4d6173746572206973206120626f6f6c65616e2c2064656661756c742066616c73652028696620697420686f6c647320616e20484261736520312e78206c697374206f66207461626c65732c> Tj
 ET
 
 
@@ -82634,27 +82597,38 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.6999 Tw
-
 BT
-48.24 156.544 Td
+66.24 251.405 Td
 /F1.0 10.5 Tf
-<7468697320666561747572652077617320666f756e6420746f20626520756e72656c6961626c6520696e207468652072756e20757020746f20484261736520312e302c2064656661756c74656420746f206265696e6720756e757365642c20616e64> Tj
+<77696c6c2064656661756c7420746f2066616c736529> Tj
 ET
 
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+56.8805 229.625 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
 
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
+
+0.0 Tc
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-2.8929 Tw
+3.0126 Tw
 
 BT
-48.24 140.764 Td
+66.24 229.625 Td
 /F1.0 10.5 Tf
-<776173206566666563746976656c792072656d6f76656420696e20484261736520312e322e30207768656e20776520737461727465642069676e6f72696e672074686520636f6e6669672074686174207475726e73206974206f6e> Tj
+[<68626173652e62616c616e6365722e7461626c65734f6e4d61737465722e73797374656d54> 29.7852 <61626c65734f6e6c7920697320626f6f6c65616e20746f206b> 20.0195 <6565702075736572207461626c6573206f6666206d61737465722e>] TJ
 ET
 
 
@@ -82664,27 +82638,38 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.256 Tw
-
 BT
-48.24 124.984 Td
+66.24 213.845 Td
 /F1.0 10.5 Tf
-<28> Tj
+<64656661756c742066616c7365> Tj
 ET
 
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+
+-0.5 Tc
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+56.8805 192.065 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
 
-0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
-0.2588 0.5451 0.7922 scn
-0.2588 0.5451 0.7922 SCN
 
-0.256 Tw
+0.0 Tc
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+1.564 Tw
 
 BT
-51.873 124.984 Td
+66.24 192.065 Td
 /F1.0 10.5 Tf
-[<4842> 20.0195 <4153452d3134343635>] TJ
+[<74686f73652077697368696e6720746f207265706c6963617465206f6c64206c6973742d6f662d7365727665727320636f6e6669672073686f756c64206465706c6f> 20.0195 <792061207374616e642d616c6f6e6520526567696f6e536572766572>] TJ
 ET
 
 
@@ -82694,12 +82679,34 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.256 Tw
+BT
+66.24 176.285 Td
+/F1.0 10.5 Tf
+<70726f6365737320616e64207468656e2072656c79206f6e20526567696f6e205365727665722047726f757073> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 149.1032 Td
+/F3.0 9.975 Tf
+[<224469737472696275746564204c6f67205265706c61> 20.0195 <792220666561747572652062726f6b> 20.0195 <656e20616e642072656d6f766564>] TJ
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+2.4191 Tw
 
 BT
-119.0833 124.984 Td
+48.24 129.514 Td
 /F1.0 10.5 Tf
-<292e20496620796f75206172652063757272656e746c79207573696e672074686520666561747572652c206265207375726520746f20706572666f726d206120636c65616e2073687574646f776e2c20656e73757265> Tj
+[<546865204469737472696275746564204c6f67205265706c61> 20.0195 <792066656174757265207761732062726f6b> 20.0195 <656e20616e6420686173206265656e2072656d6f7665642066726f6d20484261736520322e792b2e2041732061>] TJ
 ET
 
 
@@ -82709,45 +82716,57 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+0.4026 Tw
+
 BT
-48.24 109.204 Td
+48.24 113.734 Td
 /F1.0 10.5 Tf
-[<616c6c20444c5220776f726b20697320636f6d706c6574652c20616e642064697361626c65207468652066656174757265207072696f7220746f2075706772> 20.0195 <6164696e672e>] TJ
+<636f6e73657175656e636520616c6c2072656c6174656420636f6e666967732c206d6574726963732c20525043206669656c64732c20616e64206c6f6767696e67206861766520616c736f206265656e2072656d6f7665642e204e6f74652074686174> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+0.6999 Tw
+
 BT
-48.24 82.0222 Td
-/F3.0 9.975 Tf
-<7072656669782d74726565> Tj
+48.24 97.954 Td
+/F1.0 10.5 Tf
+<7468697320666561747572652077617320666f756e6420746f20626520756e72656c6961626c6520696e207468652072756e20757020746f20484261736520312e302c2064656661756c74656420746f206265696e6720756e757365642c20616e64> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+2.8929 Tw
+
 BT
-96.4592 82.0222 Td
-/F3.0 9.975 Tf
-<20656e636f64696e672072656d6f766564> Tj
+48.24 82.174 Td
+/F1.0 10.5 Tf
+<776173206566666563746976656c792072656d6f76656420696e20484261736520312e322e30207768656e20776520737461727465642069676e6f72696e672074686520636f6e6669672074686174207475726e73206974206f6e> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.1945 Tw
+0.256 Tw
 
 BT
-48.24 62.433 Td
+48.24 66.394 Td
 /F1.0 10.5 Tf
-<546865207072656669782d7472656520656e636f64696e67207761732072656d6f7665642066726f6d20484261736520322e302e302028> Tj
+<28> Tj
 ET
 
 
@@ -82757,12 +82776,12 @@ ET
 0.2588 0.5451 0.7922 scn
 0.2588 0.5451 0.7922 SCN
 
-0.1945 Tw
+0.256 Tw
 
 BT
-336.5508 62.433 Td
+51.873 66.394 Td
 /F1.0 10.5 Tf
-[<4842> 20.0195 <4153452d3139313739>] TJ
+[<4842> 20.0195 <4153452d3134343635>] TJ
 ET
 
 
@@ -82772,12 +82791,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.1945 Tw
+0.256 Tw
 
 BT
-403.7611 62.433 Td
+119.0833 66.394 Td
 /F1.0 10.5 Tf
-<292e2049742077617320286c6174652129206465707265636174656420696e> Tj
+<292e20496620796f75206172652063757272656e746c79207573696e672074686520666561747572652c206265207375726520746f20706572666f726d206120636c65616e2073687574646f776e2c20656e73757265> Tj
 ET
 
 
@@ -82808,7 +82827,7 @@ Q
 
 endstream
 endobj
-682 0 obj
+683 0 obj
 << /Type /Page
 /Parent 3 0 R
 /MediaBox [0 0 595.28 841.89]
@@ -82816,63 +82835,55 @@ endobj
 /BleedBox [0 0 595.28 841.89]
 /TrimBox [0 0 595.28 841.89]
 /ArtBox [0 0 595.28 841.89]
-/Contents 681 0 R
+/Contents 682 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /Font << /F1.0 10 0 R
 /F3.0 33 0 R
 >>
-/XObject << /Stamp2 4641 0 R
+/XObject << /Stamp2 4643 0 R
 >>
 >>
-/Annots [683 0 R 686 0 R 689 0 R]
+/Annots [684 0 R 685 0 R 688 0 R]
 >>
 endobj
-683 0 obj
+684 0 obj
 << /Border [0 0 0]
-/Dest (gcpause)
+/A << /Type /Action
+/S /URI
+/URI (https://issues.apache.org/jira/browse/HBASE-19148)
+>>
 /Subtype /Link
-/Rect [184.323 699.96 262.7895 714.24]
+/Rect [66.24 791.61 95.5875 805.89]
 /Type /Annot
 >>
 endobj
-684 0 obj
-[682 0 R /XYZ 0 481.41 null]
-endobj
 685 0 obj
-[682 0 R /XYZ 0 219.059 null]
-endobj
-686 0 obj
 << /Border [0 0 0]
-/A << /Type /Action
-/S /URI
-/URI (https://issues.apache.org/jira/browse/HBASE-14465)
->>
+/Dest (gcpause)
 /Subtype /Link
-/Rect [51.873 121.918 119.0833 136.198]
+/Rect [184.323 641.37 262.7895 655.65]
 /Type /Annot
 >>
 endobj
+686 0 obj
+[683 0 R /XYZ 0 422.82 null]
+endobj
 687 0 obj
-[682 0 R /XYZ 0 93.388 null]
+[683 0 R /XYZ 0 160.469 null]
 endobj
 688 0 obj
-<< /Limits [(upgrade2.0.process) (upgrade2.0.tracing)]
-/Names [(upgrade2.0.process) 755 0 R (upgrade2.0.public.api) 729 0 R (upgrade2.0.regions.on.master) 684 0 R (upgrade2.0.removed.configs) 665 0 R (upgrade2.0.renamed.configs) 677 0 R (upgrade2.0.replication) 708 0 R (upgrade2.0.rolling.upgrades) 752 0 R (upgrade2.0.shaded.client.preferred) 722 0 R (upgrade2.0.shell) 712 0 R (upgrade2.0.tracing) 730 0 R]
->>
-endobj
-689 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
-/URI (https://issues.apache.org/jira/browse/HBASE-19179)
+/URI (https://issues.apache.org/jira/browse/HBASE-14465)
 >>
 /Subtype /Link
-/Rect [336.5508 59.367 403.7611 73.647]
+/Rect [51.873 63.328 119.0833 77.608]
 /Type /Annot
 >>
 endobj
-690 0 obj
-<< /Length 13292
+689 0 obj
+<< /Length 13208
 >>
 stream
 q
@@ -82884,6 +82895,84 @@ q
 BT
 48.24 794.676 Td
 /F1.0 10.5 Tf
+[<616c6c20444c5220776f726b20697320636f6d706c6574652c20616e642064697361626c65207468652066656174757265207072696f7220746f2075706772> 20.0195 <6164696e672e>] TJ
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 767.4942 Td
+/F3.0 9.975 Tf
+<7072656669782d74726565> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+96.4591 767.4942 Td
+/F3.0 9.975 Tf
+<20656e636f64696e672072656d6f766564> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+0.1945 Tw
+
+BT
+48.24 747.905 Td
+/F1.0 10.5 Tf
+<546865207072656669782d7472656520656e636f64696e67207761732072656d6f7665642066726f6d20484261736520322e302e302028> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+0.1945 Tw
+
+BT
+336.5508 747.905 Td
+/F1.0 10.5 Tf
+[<4842> 20.0195 <4153452d3139313739>] TJ
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+0.1945 Tw
+
+BT
+403.7611 747.905 Td
+/F1.0 10.5 Tf
+<292e2049742077617320286c6174652129206465707265636174656420696e> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 732.125 Td
+/F1.0 10.5 Tf
 <68626173652d312e322e372c2068626173652d312e342e302c20616e642068626173652d312e332e322e> Tj
 ET
 
@@ -82895,7 +82984,7 @@ ET
 0.4058 Tw
 
 BT
-48.24 766.896 Td
+48.24 704.345 Td
 /F1.0 10.5 Tf
 <546869732066656174757265207761732072656d6f7665642062656361757365206974206173206e6f74206265696e67206163746976656c79206d61696e7461696e65642e20496620696e746572657374656420696e207265766976696e672074686973> Tj
 ET
@@ -82910,7 +82999,7 @@ ET
 0.9576 Tw
 
 BT
-48.24 751.116 Td
+48.24 688.565 Td
 /F1.0 10.5 Tf
 [<737765657420666163696c69747920776869636820696d70726f7665642072> 20.0195 <616e646f6d2072656164206c6174656e636965732061742074686520657870656e73697665206f6620736c6f776564207772697465732c20777269746520746865>] TJ
 ET
@@ -82923,7 +83012,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 735.336 Td
+48.24 672.785 Td
 /F1.0 10.5 Tf
 <484261736520646576656c6f70657273206c69737420617420> Tj
 ET
@@ -82934,7 +83023,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-169.977 735.336 Td
+169.977 672.785 Td
 /F3.0 10.5 Tf
 <64657620617420686261736520646f742061706163686520646f74206f7267> Tj
 ET
@@ -82945,7 +83034,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-324.9465 735.336 Td
+324.9465 672.785 Td
 /F1.0 10.5 Tf
 <2e> Tj
 ET
@@ -82956,7 +83045,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 708.1542 Td
+48.24 645.6032 Td
 /F3.0 9.975 Tf
 <4368616e676564206d657472696373> Tj
 ET
@@ -82967,7 +83056,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 688.565 Td
+48.24 626.014 Td
 /F1.0 10.5 Tf
 <54686520666f6c6c6f77696e67206d6574726963732068617665206368616e676564206e616d65733a> Tj
 ET
@@ -82980,7 +83069,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 660.785 Td
+56.8805 598.234 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -82995,7 +83084,7 @@ ET
 2.5216 Tw
 
 BT
-66.24 660.785 Td
+66.24 598.234 Td
 /F1.0 10.5 Tf
 [<4d6574726963732070726576696f75736c79207075626c697368656420756e64657220746865206e616d652022> 80.0781 <41737369676e6d656e744d616e67657222205b7369635d20617265206e6f77207075626c6973686564>] TJ
 ET
@@ -83008,7 +83097,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 645.005 Td
+66.24 582.454 Td
 /F1.0 10.5 Tf
 [<756e64657220746865206e616d652022> 80.0781 <41737369676e6d656e744d616e6167657222>] TJ
 ET
@@ -83019,7 +83108,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 617.225 Td
+48.24 554.674 Td
 /F1.0 10.5 Tf
 <54686520666f6c6c6f77696e67206d6574726963732068617665206368616e676564207468656972206d65616e696e673a> Tj
 ET
@@ -83032,7 +83121,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 589.445 Td
+56.8805 526.894 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -83047,7 +83136,7 @@ ET
 0.2038 Tw
 
 BT
-66.24 589.445 Td
+66.24 526.894 Td
 /F1.0 10.5 Tf
 <546865206d65747269632027626c6f636b43616368654576696374696f6e436f756e7427207075626c6973686564206f6e2061207065722d726567696f6e20736572766572206261736973206e6f206c6f6e67657220696e636c75646573> Tj
 ET
@@ -83062,7 +83151,7 @@ ET
 2.1371 Tw
 
 BT
-66.24 573.665 Td
+66.24 511.114 Td
 /F1.0 10.5 Tf
 <626c6f636b732072656d6f7665642066726f6d207468652063616368652064756520746f2074686520696e76616c69646174696f6e206f6620746865206866696c65732074686579206172652066726f6d2028652e672e20766961> Tj
 ET
@@ -83075,7 +83164,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 557.885 Td
+66.24 495.334 Td
 /F1.0 10.5 Tf
 <636f6d70616374696f6e292e> Tj
 ET
@@ -83088,7 +83177,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 536.105 Td
+56.8805 473.554 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -83103,7 +83192,7 @@ ET
 1.1803 Tw
 
 BT
-66.24 536.105 Td
+66.24 473.554 Td
 /F1.0 10.5 Tf
 [<546865206d65747269632027746f74616c52657175657374436f756e742720696e6372656d656e7473206f6e63652070657220726571756573743b2070726576696f75736c7920697420696e6372656d656e7465642062> 20.0195 <7920746865>] TJ
 ET
@@ -83118,7 +83207,7 @@ ET
 0.0522 Tw
 
 BT
-66.24 520.325 Td
+66.24 457.774 Td
 /F1.0 10.5 Tf
 <6e756d626572206f6620> Tj
 ET
@@ -83133,7 +83222,7 @@ ET
 0.0522 Tw
 
 BT
-122.0574 520.325 Td
+122.0574 457.774 Td
 /F4.0 10.5 Tf
 <416374696f6e73> Tj
 ET
@@ -83148,7 +83237,7 @@ ET
 0.0522 Tw
 
 BT
-158.8074 520.325 Td
+158.8074 457.774 Td
 /F1.0 10.5 Tf
 <206361727269656420696e2074686520726571756573743b20652e672e2069662061207265717565737420776173206120> Tj
 ET
@@ -83163,7 +83252,7 @@ ET
 0.0522 Tw
 
 BT
-385.3837 520.325 Td
+385.3837 457.774 Td
 /F4.0 10.5 Tf
 <6d756c7469> Tj
 ET
@@ -83178,7 +83267,7 @@ ET
 0.0522 Tw
 
 BT
-411.6337 520.325 Td
+411.6337 457.774 Td
 /F1.0 10.5 Tf
 <206d616465206f6620666f7572204765747320616e642074776f> Tj
 ET
@@ -83193,7 +83282,7 @@ ET
 0.2548 Tw
 
 BT
-66.24 504.545 Td
+66.24 441.994 Td
 /F1.0 10.5 Tf
 [<507574732c207765d56420696e6372656d656e742027746f74616c52657175657374436f756e74272062> 20.0195 <79207369783b206e6f7720776520696e6372656d656e742062> 20.0195 <79206f6e65207265676172646c6573732e2045787065637420746f>] TJ
 ET
@@ -83206,7 +83295,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 488.765 Td
+66.24 426.214 Td
 /F1.0 10.5 Tf
 <736565206c6f7765722076616c75657320666f722074686973206d657472696320696e2068626173652d322e302e302e> Tj
 ET
@@ -83219,7 +83308,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 466.985 Td
+56.8805 404.434 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -83234,7 +83323,7 @@ ET
 0.7217 Tw
 
 BT
-66.24 466.985 Td
+66.24 404.434 Td
 /F1.0 10.5 Tf
 <54686520277265616452657175657374436f756e7427206e6f7720636f756e747320726561647320746861742072657475726e2061206e6f6e2d656d70747920726f7720776865726520696e206f6c646572206862617365732c> Tj
 ET
@@ -83249,7 +83338,7 @@ ET
 0.4478 Tw
 
 BT
-66.24 451.205 Td
+66.24 388.654 Td
 /F1.0 10.5 Tf
 <7765d56420696e6372656d656e7420277265616452657175657374436f756e74272077686574686572206120526573756c74206f72206e6f742e2054686973206368616e67652077696c6c20666c617474656e207468652070726f66696c65> Tj
 ET
@@ -83264,7 +83353,7 @@ ET
 0.602 Tw
 
 BT
-66.24 435.425 Td
+66.24 372.874 Td
 /F1.0 10.5 Tf
 [<6f662074686520726561642d7265717565737473206772> 20.0195 <6170687320696620726571756573747320666f72206e6f6e2d6578697374656e7420726f77732e20412059> 29.7852 <43534220726561642d686561767920776f726b6c6f61642063616e>] TJ
 ET
@@ -83277,7 +83366,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-66.24 419.645 Td
+66.24 357.094 Td
 /F1.0 10.5 Tf
 <646f207468697320646570656e64656e74206f6e20686f772074686520646174616261736520776173206c6f616465642e> Tj
 ET
@@ -83288,7 +83377,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 391.865 Td
+48.24 329.314 Td
 /F1.0 10.5 Tf
 <54686520666f6c6c6f77696e67206d6574726963732068617665206265656e2072656d6f7665643a> Tj
 ET
@@ -83301,7 +83390,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-56.8805 364.085 Td
+56.8805 301.534 Td
 /F1.0 10.5 Tf
 <a5> Tj
 ET
@@ -83316,7 +83405,7 @@ ET
 3.8547 Tw
 
 BT
-66.24 364.085 Td
+66.24 301.534 Td
 /F1.0 10.5 Tf
 [<4d6574726963732072656c6174656420746f20746865204469737472696275746564204c6f67205265706c61> 20.0195 <79206665617475726520617265206e6f206c6f6e6765722070726573656e742e20546865792077657265>] TJ
 ET
@@ -83331,7 +83420,7 @@ ET
 4.0825 Tw
 
 BT
-66.24 348.305 Td
+66.24 285.754 Td
 /F1.0 10.5 Tf
 [<7072657669736f756c7920666f756e6420696e2074686520726567696f6e2073657276657220636f6e7465787420756e64657220746865206e

<TRUNCATED>

[03/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html
new file mode 100644
index 0000000..54d81a7
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html
@@ -0,0 +1,398 @@
+<!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>TestWALConfiguration (Apache HBase 3.0.0-SNAPSHOT Test 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="TestWALConfiguration (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":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";
+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/TestWALConfiguration.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/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" target="_top">Frames</a></li>
+<li><a href="TestWALConfiguration.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.regionserver.wal</div>
+<h2 title="Class TestWALConfiguration" class="title">Class TestWALConfiguration</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.regionserver.wal.TestWALConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.54">TestWALConfiguration</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">Ensure configuration changes are having an effect on WAL.
+ There is a lot of reflection around WAL setup; could be skipping Configuration changes.</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>static <a href="../../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#CLASS_RULE">CLASS_RULE</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/regionserver/wal/TestWALConfiguration.html#LOG">LOG</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>org.junit.rules.TestName</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#name">name</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#walProvider">walProvider</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="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/wal/TestWALConfiguration.html#TestWALConfiguration--">TestWALConfiguration</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="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>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#before--">before</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#data--">data</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#testBlocksizeDefaultsToTwiceHDFSBlockSize--">testBlocksizeDefaultsToTwiceHDFSBlockSize</a></span>()</code>
+<div class="block">Test blocksize change from HBASE-20520 takes on both asycnfs and old wal provider.</div>
+</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/regionserver/wal/TestWALConfiguration.html#line.55">LOG</a></pre>
+</li>
+</ul>
+<a name="TEST_UTIL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEST_UTIL</h4>
+<pre>static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.56">TEST_UTIL</a></pre>
+</li>
+</ul>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.58">CLASS_RULE</a></pre>
+</li>
+</ul>
+<a name="name">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.62">name</a></pre>
+</li>
+</ul>
+<a name="walProvider">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>walProvider</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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.65">walProvider</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="TestWALConfiguration--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestWALConfiguration</h4>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.54">TestWALConfiguration</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="data--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.68">data</a>()</pre>
+</li>
+</ul>
+<a name="before--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>before</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.73">before</a>()</pre>
+</li>
+</ul>
+<a name="testBlocksizeDefaultsToTwiceHDFSBlockSize--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testBlocksizeDefaultsToTwiceHDFSBlockSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#line.83">testBlocksizeDefaultsToTwiceHDFSBlockSize</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">Test blocksize change from HBASE-20520 takes on both asycnfs and old wal provider.
+ Hard to verify more than this given the blocksize is passed down to HDFS on create -- not
+ kept local to the streams themselves.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></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/TestWALConfiguration.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/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" target="_top">Frames</a></li>
+<li><a href="TestWALConfiguration.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/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html
index 7f7832f..a2e7817 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -421,7 +421,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/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/TestWALConfiguration.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/TestWALConfiguration.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/TestWALConfiguration.html
new file mode 100644
index 0000000..bb489be
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/TestWALConfiguration.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.regionserver.wal.TestWALConfiguration (Apache HBase 3.0.0-SNAPSHOT Test 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.regionserver.wal.TestWALConfiguration (Apache HBase 3.0.0-SNAPSHOT Test 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/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">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/regionserver/wal/class-use/TestWALConfiguration.html" target="_top">Frames</a></li>
+<li><a href="TestWALConfiguration.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.regionserver.wal.TestWALConfiguration" class="title">Uses of Class<br>org.apache.hadoop.hbase.regionserver.wal.TestWALConfiguration</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.regionserver.wal.TestWALConfiguration</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/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">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/regionserver/wal/class-use/TestWALConfiguration.html" target="_top">Frames</a></li>
+<li><a href="TestWALConfiguration.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/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-frame.html
index f04570e..63f4690 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-frame.html
@@ -52,6 +52,7 @@
 <li><a href="TestWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALActionsListener</a></li>
 <li><a href="TestWALActionsListener.DummyWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALActionsListener.DummyWALActionsListener</a></li>
 <li><a href="TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALCellCodecWithCompression</a></li>
+<li><a href="TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALConfiguration</a></li>
 <li><a href="TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALDurability</a></li>
 <li><a href="TestWALReplay.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALReplay</a></li>
 <li><a href="TestWALReplayBoundedLogWriterCreation.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALReplayBoundedLogWriterCreation</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-summary.html
index accfd3d..3c8e326 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-summary.html
@@ -270,20 +270,26 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></td>
+<td class="colLast">
+<div class="block">Ensure configuration changes are having an effect on WAL.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALDurability</a></td>
 <td class="colLast">
 <div class="block">Tests for WAL write durability - hflush vs hsync</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALReplay</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALReplayBoundedLogWriterCreation.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALReplayBoundedLogWriterCreation</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALReplayCompressed.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALReplayCompressed</a></td>
 <td class="colLast">
 <div class="block">Enables compression and runs the TestWALReplay tests.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index 0a6cb65..bfb4896 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -170,6 +170,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALActionsListener</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.DummyWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALActionsListener.DummyWALActionsListener</span></a> (implements org.apache.hadoop.hbase.regionserver.wal.WALActionsListener)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALCellCodecWithCompression</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALConfiguration</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALDurability</span></a></li>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Thread</span></a> (implements java.lang.<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>)
 <ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index 28ed7f0..ca2f60e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,10 +253,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.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/wal/FaultyFSLog.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/FaultyFSLog.html b/testdevapidocs/org/apache/hadoop/hbase/wal/FaultyFSLog.html
index 15878ae..1ab9d5e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/FaultyFSLog.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/FaultyFSLog.html
@@ -188,7 +188,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL</h3>
-<code>closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix</code></li>
+<code>blocksize, closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html b/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
index 00b4818..48ed4c1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.156">IOTestProvider.IOTestWAL</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.155">IOTestProvider.IOTestWAL</a>
 extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 </li>
 </ul>
@@ -187,7 +187,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL</h3>
-<code>closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix</code></li>
+<code>blocksize, closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix</code></li>
 </ul>
 </li>
 </ul>
@@ -276,7 +276,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doFileRolls</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.158">doFileRolls</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.157">doFileRolls</a></pre>
 </li>
 </ul>
 <a name="initialized">
@@ -285,7 +285,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>initialized</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.161">initialized</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.160">initialized</a></pre>
 </li>
 </ul>
 <a name="noRollsWriter">
@@ -294,7 +294,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>noRollsWriter</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.wal.WALProvider.Writer <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.200">noRollsWriter</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.wal.WALProvider.Writer <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.199">noRollsWriter</a></pre>
 </li>
 </ul>
 </li>
@@ -311,7 +311,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IOTestWAL</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.187">IOTestWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.186">IOTestWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                  org.apache.hadoop.fs.Path&nbsp;rootDir,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logDir,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;archiveDir,
@@ -362,7 +362,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createWriterInstance</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.wal.WALProvider.Writer&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.205">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>protected&nbsp;org.apache.hadoop.hbase.wal.WALProvider.Writer&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWAL.html#line.204">createWriterInstance</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>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html b/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
index c2fc71f..37bc722 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.235">IOTestProvider.IOTestWriter</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.234">IOTestProvider.IOTestWriter</a>
 extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <div class="block">Presumes init will be called by a single thread prior to any access of other methods.</div>
 </li>
@@ -214,10 +214,11 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
     org.apache.hadoop.fs.Path&nbsp;path,
     org.apache.hadoop.conf.Configuration&nbsp;conf,
-    boolean&nbsp;overwritable)</code>&nbsp;</td>
+    boolean&nbsp;overwritable,
+    long&nbsp;blocksize)</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
@@ -272,7 +273,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doAppends</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.236">doAppends</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.235">doAppends</a></pre>
 </li>
 </ul>
 <a name="doSyncs">
@@ -281,7 +282,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doSyncs</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.237">doSyncs</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.236">doSyncs</a></pre>
 </li>
 </ul>
 </li>
@@ -298,7 +299,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IOTestWriter</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.235">IOTestWriter</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.234">IOTestWriter</a>()</pre>
 </li>
 </ul>
 </li>
@@ -309,16 +310,17 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">
+<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.240">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.239">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                  org.apache.hadoop.fs.Path&nbsp;path,
                  org.apache.hadoop.conf.Configuration&nbsp;conf,
-                 boolean&nbsp;overwritable)
+                 boolean&nbsp;overwritable,
+                 long&nbsp;blocksize)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                  org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException</pre>
 <dl>
@@ -338,7 +340,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriterClassName</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.257">getWriterClassName</a>()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.256">getWriterClassName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>getWriterClassName</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter</code></dd>
@@ -351,7 +353,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.262">append</a>(org.apache.hadoop.hbase.wal.WAL.Entry&nbsp;entry)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.261">append</a>(org.apache.hadoop.hbase.wal.WAL.Entry&nbsp;entry)
             throws <a href="https://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>
@@ -369,7 +371,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.269">sync</a>(boolean&nbsp;forceSync)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#line.268">sync</a>(boolean&nbsp;forceSync)
           throws <a href="https://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/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.html b/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.html
index 1d171be..d599c5b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/IOTestProvider.html
@@ -419,7 +419,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.100">init</a>(org.apache.hadoop.hbase.wal.WALFactory&nbsp;factory,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.99">init</a>(org.apache.hadoop.hbase.wal.WALFactory&nbsp;factory,
                  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;providerId)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -429,7 +429,6 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>factory</code> - factory that made us, identity used for FS layout. may not be null</dd>
 <dd><code>conf</code> - may not be null</dd>
-<dd><code>listeners</code> - may be null</dd>
 <dd><code>providerId</code> - differentiate between providers from one facotry, used for FS layout. may be
                    null</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -443,7 +442,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALs</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.112">getWALs</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.111">getWALs</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getWALs</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.wal.WALProvider</code></dd>
@@ -456,7 +455,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>createWAL</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.regionserver.wal.FSHLog&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.116">createWAL</a>()
+<pre>private&nbsp;org.apache.hadoop.hbase.regionserver.wal.FSHLog&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.115">createWAL</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>
@@ -470,7 +469,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getWAL</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.wal.WAL&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.125">getWAL</a>(org.apache.hadoop.hbase.client.RegionInfo&nbsp;region)
+<pre>public&nbsp;org.apache.hadoop.hbase.wal.WAL&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.124">getWAL</a>(org.apache.hadoop.hbase.client.RegionInfo&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>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -486,7 +485,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.141">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.140">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>
@@ -502,7 +501,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.149">shutdown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.148">shutdown</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>
@@ -518,7 +517,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLogFiles</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.277">getNumLogFiles</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.276">getNumLogFiles</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getNumLogFiles</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.wal.WALProvider</code></dd>
@@ -531,7 +530,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.282">getLogFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.281">getLogFileSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getLogFileSize</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.wal.WALProvider</code></dd>
@@ -544,7 +543,7 @@ implements org.apache.hadoop.hbase.wal.WALProvider</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>addWALActionsListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.287">addWALActionsListener</a>(org.apache.hadoop.hbase.regionserver.wal.WALActionsListener&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/IOTestProvider.html#line.286">addWALActionsListener</a>(org.apache.hadoop.hbase.regionserver.wal.WALActionsListener&nbsp;listener)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>addWALActionsListener</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.wal.WALProvider</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index f7d6df6..434a274 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -139,9 +139,9 @@
 <ul>
 <li type="circle">java.lang.<a href="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/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index eda69b3..d8b7d73 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -3630,6 +3630,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestWalAndCompactingMemStoreFlush.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestWalAndCompactingMemStoreFlush</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestWalAndCompactingMemStoreFlush.ConcurrentPutRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestWalAndCompactingMemStoreFlush.ConcurrentPutRunnable</span></a> (implements java.lang.<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>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALCellCodecWithCompression</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALConfiguration</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALDurability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/TestWALEntrySinkFilter.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">TestWALEntrySinkFilter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/TestWALEntrySinkFilter.DevNullConnection.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">TestWALEntrySinkFilter.DevNullConnection</span></a> (implements org.apache.hadoop.hbase.client.Connection)</li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.CustomStoreFlusher.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.CustomStoreFlusher.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.CustomStoreFlusher.html
index a290bcf..440cdbe 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.CustomStoreFlusher.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.CustomStoreFlusher.html
@@ -1234,7 +1234,7 @@
 <span class="sourceLineNo">1226</span>      StreamLacksCapabilityException {<a name="line.1226"></a>
 <span class="sourceLineNo">1227</span>    fs.mkdirs(file.getParent());<a name="line.1227"></a>
 <span class="sourceLineNo">1228</span>    ProtobufLogWriter writer = new ProtobufLogWriter();<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true);<a name="line.1229"></a>
+<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true, WALUtil.getWALBlockSize(conf, fs, file));<a name="line.1229"></a>
 <span class="sourceLineNo">1230</span>    for (FSWALEntry entry : entries) {<a name="line.1230"></a>
 <span class="sourceLineNo">1231</span>      writer.append(entry);<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span>    }<a name="line.1232"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
index a290bcf..440cdbe 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
@@ -1234,7 +1234,7 @@
 <span class="sourceLineNo">1226</span>      StreamLacksCapabilityException {<a name="line.1226"></a>
 <span class="sourceLineNo">1227</span>    fs.mkdirs(file.getParent());<a name="line.1227"></a>
 <span class="sourceLineNo">1228</span>    ProtobufLogWriter writer = new ProtobufLogWriter();<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true);<a name="line.1229"></a>
+<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true, WALUtil.getWALBlockSize(conf, fs, file));<a name="line.1229"></a>
 <span class="sourceLineNo">1230</span>    for (FSWALEntry entry : entries) {<a name="line.1230"></a>
 <span class="sourceLineNo">1231</span>      writer.append(entry);<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span>    }<a name="line.1232"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.TestFlusher.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.TestFlusher.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.TestFlusher.html
index a290bcf..440cdbe 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.TestFlusher.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.TestFlusher.html
@@ -1234,7 +1234,7 @@
 <span class="sourceLineNo">1226</span>      StreamLacksCapabilityException {<a name="line.1226"></a>
 <span class="sourceLineNo">1227</span>    fs.mkdirs(file.getParent());<a name="line.1227"></a>
 <span class="sourceLineNo">1228</span>    ProtobufLogWriter writer = new ProtobufLogWriter();<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true);<a name="line.1229"></a>
+<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true, WALUtil.getWALBlockSize(conf, fs, file));<a name="line.1229"></a>
 <span class="sourceLineNo">1230</span>    for (FSWALEntry entry : entries) {<a name="line.1230"></a>
 <span class="sourceLineNo">1231</span>      writer.append(entry);<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span>    }<a name="line.1232"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html
index a290bcf..440cdbe 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html
@@ -1234,7 +1234,7 @@
 <span class="sourceLineNo">1226</span>      StreamLacksCapabilityException {<a name="line.1226"></a>
 <span class="sourceLineNo">1227</span>    fs.mkdirs(file.getParent());<a name="line.1227"></a>
 <span class="sourceLineNo">1228</span>    ProtobufLogWriter writer = new ProtobufLogWriter();<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true);<a name="line.1229"></a>
+<span class="sourceLineNo">1229</span>    writer.init(fs, file, conf, true, WALUtil.getWALBlockSize(conf, fs, file));<a name="line.1229"></a>
 <span class="sourceLineNo">1230</span>    for (FSWALEntry entry : entries) {<a name="line.1230"></a>
 <span class="sourceLineNo">1231</span>      writer.append(entry);<a name="line.1231"></a>
 <span class="sourceLineNo">1232</span>    }<a name="line.1232"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html
new file mode 100644
index 0000000..99cb3bb
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html
@@ -0,0 +1,172 @@
+<!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.regionserver.wal;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.hadoop.conf.Configuration;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.fs.FileSystem;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.TableName;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.testclassification.RegionServerTests;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.wal.WALProvider;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.Before;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.ClassRule;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.Rule;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.junit.Test;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.experimental.categories.Category;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.rules.TestName;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.runner.RunWith;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.runners.Parameterized;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.slf4j.Logger;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.slf4j.LoggerFactory;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import java.io.IOException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import java.util.Arrays;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import java.util.List;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>import static org.junit.Assert.assertEquals;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import static org.junit.Assert.fail;<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> * Ensure configuration changes are having an effect on WAL.<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * There is a lot of reflection around WAL setup; could be skipping Configuration changes.<a name="line.50"></a>
+<span class="sourceLineNo">051</span> */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>@RunWith(Parameterized.class)<a name="line.52"></a>
+<span class="sourceLineNo">053</span>@Category({ RegionServerTests.class, SmallTests.class })<a name="line.53"></a>
+<span class="sourceLineNo">054</span>public class TestWALConfiguration {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private static final Logger LOG = LoggerFactory.getLogger(TestWALConfiguration.class);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  @ClassRule<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      HBaseClassTestRule.forClass(TestWALConfiguration.class);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @Rule<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  public TestName name = new TestName();<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  @Parameterized.Parameter<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  public String walProvider;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  @Parameterized.Parameters(name = "{index}: provider={0}")<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  public static Iterable&lt;Object[]&gt; data() {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    return Arrays.asList(new Object[] { "filesystem" }, new Object[] { "asyncfs" });<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>  @Before<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void before() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    TEST_UTIL.getConfiguration().set(WALFactory.WAL_PROVIDER, walProvider);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<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>   * Test blocksize change from HBASE-20520 takes on both asycnfs and old wal provider.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   * Hard to verify more than this given the blocksize is passed down to HDFS on create -- not<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * kept local to the streams themselves.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  @Test<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public void testBlocksizeDefaultsToTwiceHDFSBlockSize() throws IOException {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    TableName tableName = TableName.valueOf("test");<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    final WALFactory walFactory = new WALFactory(TEST_UTIL.getConfiguration(), this.walProvider);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    WALProvider provider = walFactory.getWALProvider();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    // Get a WAL instance from the provider. Check its blocksize.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    WAL wal = provider.getWAL(null);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    if (wal instanceof AbstractFSWAL) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      long expectedDefaultBlockSize =<a name="line.91"></a>
+<span class="sourceLineNo">092</span>          WALUtil.getWALBlockSize(conf, FileSystem.get(conf), TEST_UTIL.getDataTestDir());<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      long blocksize = ((AbstractFSWAL)wal).blocksize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      assertEquals(expectedDefaultBlockSize, blocksize);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      LOG.info("Found blocksize of {} on {}", blocksize, wal);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    } else {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      fail("Unknown provider " + provider);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span>}<a name="line.100"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


[05/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
index 69ebb17..bb0a0c6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
@@ -32,95 +32,106 @@
 <span class="sourceLineNo">024</span>import org.apache.hadoop.fs.Path;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.regionserver.wal.AsyncProtobufLogWriter;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.yetus.audience.InterfaceStability;<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>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoopGroup;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>/**<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.42"></a>
-<span class="sourceLineNo">043</span> */<a name="line.43"></a>
-<span class="sourceLineNo">044</span>@InterfaceAudience.Private<a name="line.44"></a>
-<span class="sourceLineNo">045</span>@InterfaceStability.Evolving<a name="line.45"></a>
-<span class="sourceLineNo">046</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  private static final Logger LOG = LoggerFactory.getLogger(AsyncFSWALProvider.class);<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  // Only public so classes back in regionserver.wal can access<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.53"></a>
-<span class="sourceLineNo">054</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.54"></a>
-<span class="sourceLineNo">055</span>     *         meet the needs of the given Writer implementation.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>     */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.57"></a>
-<span class="sourceLineNo">058</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  private EventLoopGroup eventLoopGroup;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @Override<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>        getWALDirectoryName(factory.factoryId),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        eventLoopGroup, channelClass);<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Override<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.75"></a>
-<span class="sourceLineNo">076</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    } else {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.81"></a>
-<span class="sourceLineNo">082</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      channelClass = NioSocketChannel.class;<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><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * public because of AsyncFSWAL. Should be package-private<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      boolean overwritable, EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throws IOException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    // Configuration already does caching for the Class lookup.<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    try {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoopGroup.class, Class.class)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>          .newInstance(eventLoopGroup, channelClass);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      writer.init(fs, path, conf, overwritable);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      return writer;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    } catch (Exception e) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.103"></a>
-<span class="sourceLineNo">104</span>          "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.104"></a>
-<span class="sourceLineNo">105</span>          "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.105"></a>
-<span class="sourceLineNo">106</span>          "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>          "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      } else {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      throw new IOException("cannot get log writer", e);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>}<a name="line.115"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.regionserver.wal.WALUtil;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.util.Pair;<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.apache.yetus.audience.InterfaceStability;<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.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoopGroup;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>/**<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>@InterfaceAudience.Private<a name="line.45"></a>
+<span class="sourceLineNo">046</span>@InterfaceStability.Evolving<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private static final Logger LOG = LoggerFactory.getLogger(AsyncFSWALProvider.class);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // Only public so classes back in regionserver.wal can access<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.54"></a>
+<span class="sourceLineNo">055</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.55"></a>
+<span class="sourceLineNo">056</span>     *         meet the needs of the given Writer implementation.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>     */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable, long blocksize)<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  private EventLoopGroup eventLoopGroup;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        getWALDirectoryName(factory.factoryId),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        eventLoopGroup, channelClass);<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>  @Override<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      channelClass = NioSocketChannel.class;<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><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * Public because of AsyncFSWAL. Should be package-private<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      boolean overwritable, EventLoopGroup eventLoopGroup,<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    return createAsyncWriter(conf, fs, path, overwritable, WALUtil.getWALBlockSize(conf, fs, path),<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        eventLoopGroup, channelClass);<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>  /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * Public because of AsyncFSWAL. Should be package-private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      boolean overwritable, long blocksize, EventLoopGroup eventLoopGroup,<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    // Configuration already does caching for the Class lookup.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    try {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoopGroup.class, Class.class)<a name="line.108"></a>
+<span class="sourceLineNo">109</span>          .newInstance(eventLoopGroup, channelClass);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      writer.init(fs, path, conf, overwritable, blocksize);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      return writer;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    } catch (Exception e) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.114"></a>
+<span class="sourceLineNo">115</span>          "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.115"></a>
+<span class="sourceLineNo">116</span>          "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.116"></a>
+<span class="sourceLineNo">117</span>          "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      throw new IOException("cannot get log writer", e);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>}<a name="line.126"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
index 31dd98c..7766850 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
@@ -32,79 +32,90 @@
 <span class="sourceLineNo">024</span>import org.apache.hadoop.fs.Path;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.regionserver.wal.FSHLog;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceStability;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.slf4j.Logger;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.slf4j.LoggerFactory;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * A WAL provider that use {@link FSHLog}.<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
-<span class="sourceLineNo">038</span>@InterfaceStability.Evolving<a name="line.38"></a>
-<span class="sourceLineNo">039</span>public class FSHLogProvider extends AbstractFSWALProvider&lt;FSHLog&gt; {<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>  private static final Logger LOG = LoggerFactory.getLogger(FSHLogProvider.class);<a name="line.41"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.regionserver.wal.WALUtil;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.util.FSUtils;<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.apache.yetus.audience.InterfaceStability;<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><a name="line.35"></a>
+<span class="sourceLineNo">036</span>/**<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * A WAL provider that use {@link FSHLog}.<a name="line.37"></a>
+<span class="sourceLineNo">038</span> */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceAudience.Private<a name="line.39"></a>
+<span class="sourceLineNo">040</span>@InterfaceStability.Evolving<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class FSHLogProvider extends AbstractFSWALProvider&lt;FSHLog&gt; {<a name="line.41"></a>
 <span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  // Only public so classes back in regionserver.wal can access<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  public interface Writer extends WALProvider.Writer {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.46"></a>
-<span class="sourceLineNo">047</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.47"></a>
-<span class="sourceLineNo">048</span>     *         meet the needs of the given Writer implementation.<a name="line.48"></a>
-<span class="sourceLineNo">049</span>     */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.50"></a>
-<span class="sourceLineNo">051</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  /**<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * public because of FSHLog. Should be package-private<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static Writer createWriter(final Configuration conf, final FileSystem fs, final Path path,<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      final boolean overwritable) throws IOException {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    // Configuration already does caching for the Class lookup.<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    Class&lt;? extends Writer&gt; logWriterClass = conf.getClass("hbase.regionserver.hlog.writer.impl",<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      ProtobufLogWriter.class, Writer.class);<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    Writer writer = null;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    try {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      writer = logWriterClass.getDeclaredConstructor().newInstance();<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      writer.init(fs, path, conf, overwritable);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      return writer;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    } catch (Exception e) { <a name="line.67"></a>
-<span class="sourceLineNo">068</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        LOG.error("The RegionServer write ahead log provider for FileSystem implementations " +<a name="line.69"></a>
-<span class="sourceLineNo">070</span>            "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.70"></a>
-<span class="sourceLineNo">071</span>            "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.71"></a>
-<span class="sourceLineNo">072</span>            "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.72"></a>
-<span class="sourceLineNo">073</span>            "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      } else {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      if (writer != null) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        try{<a name="line.78"></a>
-<span class="sourceLineNo">079</span>          writer.close();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        } catch(IOException ee){<a name="line.80"></a>
-<span class="sourceLineNo">081</span>          LOG.error("cannot close log writer", ee);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      }<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      throw new IOException("cannot get log writer", e);<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><a name="line.87"></a>
-<span class="sourceLineNo">088</span>  @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected FSHLog createWAL() throws IOException {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    return new FSHLog(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        getWALDirectoryName(factory.factoryId),<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.92"></a>
-<span class="sourceLineNo">093</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<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>  @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
-<span class="sourceLineNo">099</span>}<a name="line.99"></a>
+<span class="sourceLineNo">043</span>  private static final Logger LOG = LoggerFactory.getLogger(FSHLogProvider.class);<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  // Only public so classes back in regionserver.wal can access<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  public interface Writer extends WALProvider.Writer {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    /**<a name="line.47"></a>
+<span class="sourceLineNo">048</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.48"></a>
+<span class="sourceLineNo">049</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.49"></a>
+<span class="sourceLineNo">050</span>     *         meet the needs of the given Writer implementation.<a name="line.50"></a>
+<span class="sourceLineNo">051</span>     */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable, long blocksize)<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * Public because of FSHLog. Should be package-private<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  public static Writer createWriter(final Configuration conf, final FileSystem fs, final Path path,<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      final boolean overwritable) throws IOException {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    return createWriter(conf, fs, path, overwritable, WALUtil.getWALBlockSize(conf, fs, path));<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * Public because of FSHLog. Should be package-private<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public static Writer createWriter(final Configuration conf, final FileSystem fs, final Path path,<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    final boolean overwritable, long blocksize) throws IOException {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    // Configuration already does caching for the Class lookup.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    Class&lt;? extends Writer&gt; logWriterClass =<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        conf.getClass("hbase.regionserver.hlog.writer.impl", ProtobufLogWriter.class,<a name="line.71"></a>
+<span class="sourceLineNo">072</span>            Writer.class);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    Writer writer = null;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      writer = logWriterClass.getDeclaredConstructor().newInstance();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      writer.init(fs, path, conf, overwritable, blocksize);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      return writer;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    } catch (Exception e) { <a name="line.78"></a>
+<span class="sourceLineNo">079</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        LOG.error("The RegionServer write ahead log provider for FileSystem implementations " +<a name="line.80"></a>
+<span class="sourceLineNo">081</span>            "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.81"></a>
+<span class="sourceLineNo">082</span>            "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.82"></a>
+<span class="sourceLineNo">083</span>            "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.83"></a>
+<span class="sourceLineNo">084</span>            "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      } else {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      if (writer != null) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        try{<a name="line.89"></a>
+<span class="sourceLineNo">090</span>          writer.close();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        } catch(IOException ee){<a name="line.91"></a>
+<span class="sourceLineNo">092</span>          LOG.error("cannot close log writer", ee);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      throw new IOException("cannot get log writer", e);<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><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  protected FSHLog createWAL() throws IOException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    return new FSHLog(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        getWALDirectoryName(factory.factoryId),<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  @Override<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>}<a name="line.110"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html
index 31dd98c..7766850 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html
@@ -32,79 +32,90 @@
 <span class="sourceLineNo">024</span>import org.apache.hadoop.fs.Path;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.regionserver.wal.FSHLog;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceStability;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.slf4j.Logger;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.slf4j.LoggerFactory;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * A WAL provider that use {@link FSHLog}.<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceAudience.Private<a name="line.37"></a>
-<span class="sourceLineNo">038</span>@InterfaceStability.Evolving<a name="line.38"></a>
-<span class="sourceLineNo">039</span>public class FSHLogProvider extends AbstractFSWALProvider&lt;FSHLog&gt; {<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>  private static final Logger LOG = LoggerFactory.getLogger(FSHLogProvider.class);<a name="line.41"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.regionserver.wal.WALUtil;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.util.FSUtils;<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.apache.yetus.audience.InterfaceStability;<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><a name="line.35"></a>
+<span class="sourceLineNo">036</span>/**<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * A WAL provider that use {@link FSHLog}.<a name="line.37"></a>
+<span class="sourceLineNo">038</span> */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceAudience.Private<a name="line.39"></a>
+<span class="sourceLineNo">040</span>@InterfaceStability.Evolving<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class FSHLogProvider extends AbstractFSWALProvider&lt;FSHLog&gt; {<a name="line.41"></a>
 <span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  // Only public so classes back in regionserver.wal can access<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  public interface Writer extends WALProvider.Writer {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>    /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.46"></a>
-<span class="sourceLineNo">047</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.47"></a>
-<span class="sourceLineNo">048</span>     *         meet the needs of the given Writer implementation.<a name="line.48"></a>
-<span class="sourceLineNo">049</span>     */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.50"></a>
-<span class="sourceLineNo">051</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  /**<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * public because of FSHLog. Should be package-private<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static Writer createWriter(final Configuration conf, final FileSystem fs, final Path path,<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      final boolean overwritable) throws IOException {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    // Configuration already does caching for the Class lookup.<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    Class&lt;? extends Writer&gt; logWriterClass = conf.getClass("hbase.regionserver.hlog.writer.impl",<a name="line.60"></a>
-<span class="sourceLineNo">061</span>      ProtobufLogWriter.class, Writer.class);<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    Writer writer = null;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    try {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      writer = logWriterClass.getDeclaredConstructor().newInstance();<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      writer.init(fs, path, conf, overwritable);<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      return writer;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    } catch (Exception e) { <a name="line.67"></a>
-<span class="sourceLineNo">068</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        LOG.error("The RegionServer write ahead log provider for FileSystem implementations " +<a name="line.69"></a>
-<span class="sourceLineNo">070</span>            "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.70"></a>
-<span class="sourceLineNo">071</span>            "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.71"></a>
-<span class="sourceLineNo">072</span>            "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.72"></a>
-<span class="sourceLineNo">073</span>            "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      } else {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      if (writer != null) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        try{<a name="line.78"></a>
-<span class="sourceLineNo">079</span>          writer.close();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        } catch(IOException ee){<a name="line.80"></a>
-<span class="sourceLineNo">081</span>          LOG.error("cannot close log writer", ee);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      }<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      throw new IOException("cannot get log writer", e);<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><a name="line.87"></a>
-<span class="sourceLineNo">088</span>  @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected FSHLog createWAL() throws IOException {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    return new FSHLog(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        getWALDirectoryName(factory.factoryId),<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.92"></a>
-<span class="sourceLineNo">093</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<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>  @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
-<span class="sourceLineNo">099</span>}<a name="line.99"></a>
+<span class="sourceLineNo">043</span>  private static final Logger LOG = LoggerFactory.getLogger(FSHLogProvider.class);<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  // Only public so classes back in regionserver.wal can access<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  public interface Writer extends WALProvider.Writer {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    /**<a name="line.47"></a>
+<span class="sourceLineNo">048</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.48"></a>
+<span class="sourceLineNo">049</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.49"></a>
+<span class="sourceLineNo">050</span>     *         meet the needs of the given Writer implementation.<a name="line.50"></a>
+<span class="sourceLineNo">051</span>     */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable, long blocksize)<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * Public because of FSHLog. Should be package-private<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  public static Writer createWriter(final Configuration conf, final FileSystem fs, final Path path,<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      final boolean overwritable) throws IOException {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    return createWriter(conf, fs, path, overwritable, WALUtil.getWALBlockSize(conf, fs, path));<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * Public because of FSHLog. Should be package-private<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public static Writer createWriter(final Configuration conf, final FileSystem fs, final Path path,<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    final boolean overwritable, long blocksize) throws IOException {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    // Configuration already does caching for the Class lookup.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    Class&lt;? extends Writer&gt; logWriterClass =<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        conf.getClass("hbase.regionserver.hlog.writer.impl", ProtobufLogWriter.class,<a name="line.71"></a>
+<span class="sourceLineNo">072</span>            Writer.class);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    Writer writer = null;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      writer = logWriterClass.getDeclaredConstructor().newInstance();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      writer.init(fs, path, conf, overwritable, blocksize);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      return writer;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    } catch (Exception e) { <a name="line.78"></a>
+<span class="sourceLineNo">079</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        LOG.error("The RegionServer write ahead log provider for FileSystem implementations " +<a name="line.80"></a>
+<span class="sourceLineNo">081</span>            "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.81"></a>
+<span class="sourceLineNo">082</span>            "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.82"></a>
+<span class="sourceLineNo">083</span>            "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.83"></a>
+<span class="sourceLineNo">084</span>            "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      } else {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      if (writer != null) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        try{<a name="line.89"></a>
+<span class="sourceLineNo">090</span>          writer.close();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        } catch(IOException ee){<a name="line.91"></a>
+<span class="sourceLineNo">092</span>          LOG.error("cannot close log writer", ee);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      throw new IOException("cannot get log writer", e);<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><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  @Override<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  protected FSHLog createWAL() throws IOException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    return new FSHLog(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        getWALDirectoryName(factory.factoryId),<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  @Override<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>}<a name="line.110"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.Providers.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.Providers.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.Providers.html
index 36b2937..28539e5 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.Providers.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.Providers.html
@@ -343,113 +343,116 @@
 <span class="sourceLineNo">335</span><a name="line.335"></a>
 <span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
 <span class="sourceLineNo">337</span>   * Create a writer for the WAL.<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * &lt;p&gt;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * should be package-private. public only for tests and<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   * {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * @return A WAL writer. Close when done with it.<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * @throws IOException<a name="line.342"></a>
+<span class="sourceLineNo">338</span>   * Uses defaults.<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * &lt;p&gt;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * Should be package-private. public only for tests and<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * @return A WAL writer. Close when done with it.<a name="line.342"></a>
 <span class="sourceLineNo">343</span>   */<a name="line.343"></a>
 <span class="sourceLineNo">344</span>  public Writer createWALWriter(final FileSystem fs, final Path path) throws IOException {<a name="line.344"></a>
 <span class="sourceLineNo">345</span>    return FSHLogProvider.createWriter(conf, fs, path, false);<a name="line.345"></a>
 <span class="sourceLineNo">346</span>  }<a name="line.346"></a>
 <span class="sourceLineNo">347</span><a name="line.347"></a>
 <span class="sourceLineNo">348</span>  /**<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * should be package-private, visible for recovery testing.<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * @return an overwritable writer for recovered edits. caller should close.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   */<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @VisibleForTesting<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public Writer createRecoveredEditsWriter(final FileSystem fs, final Path path)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      throws IOException {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    return FSHLogProvider.createWriter(conf, fs, path, true);<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>  // These static methods are currently used where it's impractical to<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  // untangle the reliance on state in the filesystem. They rely on singleton<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  // WALFactory that just provides Reader / Writers.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  // For now, first Configuration object wins. Practically this just impacts the reader/writer class<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private static final AtomicReference&lt;WALFactory&gt; singleton = new AtomicReference&lt;&gt;();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  private static final String SINGLETON_ID = WALFactory.class.getName();<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  <a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // public only for FSHLog<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  public static WALFactory getInstance(Configuration configuration) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    WALFactory factory = singleton.get();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (null == factory) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      WALFactory temp = new WALFactory(configuration);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      if (singleton.compareAndSet(null, temp)) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        factory = temp;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      } else {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        // someone else beat us to initializing<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        try {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          temp.close();<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        } catch (IOException exception) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>          LOG.debug("failed to close temporary singleton. ignoring.", exception);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        factory = singleton.get();<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>    return factory;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  }<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>  /**<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * @return a WAL Reader, caller must close.<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public static Reader createReader(final FileSystem fs, final Path path,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      final Configuration configuration) throws IOException {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    return getInstance(configuration).createReader(fs, path);<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>  /**<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return a WAL Reader, caller must close.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  static Reader createReader(final FileSystem fs, final Path path,<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      final Configuration configuration, final CancelableProgressable reporter) throws IOException {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    return getInstance(configuration).createReader(fs, path, reporter);<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>  /**<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   * Create a reader for the given path, ignore custom reader classes from conf.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * only public pending move of {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * @return a WAL Reader, caller must close.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   */<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public static Reader createReaderIgnoreCustomClass(final FileSystem fs, final Path path,<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      final Configuration configuration) throws IOException {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return getInstance(configuration).createReader(fs, path, null, false);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @return a Writer that will overwrite files. Caller must close.<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   */<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  static Writer createRecoveredEditsWriter(final FileSystem fs, final Path path,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      final Configuration configuration)<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      throws IOException {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    return FSHLogProvider.createWriter(configuration, fs, path, true);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  }<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>   * If you already have a WALFactory, you should favor the instance method.<a name="line.427"></a>
-<span class="sourceLineNo">428</span>   * @return a writer that won't overwrite files. Caller must close.<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  @VisibleForTesting<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  public static Writer createWALWriter(final FileSystem fs, final Path path,<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      final Configuration configuration)<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      throws IOException {<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    return FSHLogProvider.createWriter(configuration, fs, path, false);<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>  public final WALProvider getWALProvider() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    return this.provider;<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>  public final WALProvider getMetaWALProvider() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return this.metaProvider.get();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>}<a name="line.444"></a>
+<span class="sourceLineNo">349</span>   * Should be package-private, visible for recovery testing.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>   * Uses defaults.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * @return an overwritable writer for recovered edits. caller should close.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   */<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  @VisibleForTesting<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  public Writer createRecoveredEditsWriter(final FileSystem fs, final Path path)<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      throws IOException {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    return FSHLogProvider.createWriter(conf, fs, path, true);<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>  // These static methods are currently used where it's impractical to<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  // untangle the reliance on state in the filesystem. They rely on singleton<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  // WALFactory that just provides Reader / Writers.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  // For now, first Configuration object wins. Practically this just impacts the reader/writer class<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private static final AtomicReference&lt;WALFactory&gt; singleton = new AtomicReference&lt;&gt;();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  private static final String SINGLETON_ID = WALFactory.class.getName();<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  <a name="line.365"></a>
+<span class="sourceLineNo">366</span>  // Public only for FSHLog<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  public static WALFactory getInstance(Configuration configuration) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    WALFactory factory = singleton.get();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    if (null == factory) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      WALFactory temp = new WALFactory(configuration);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      if (singleton.compareAndSet(null, temp)) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        factory = temp;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      } else {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        // someone else beat us to initializing<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        try {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          temp.close();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        } catch (IOException exception) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>          LOG.debug("failed to close temporary singleton. ignoring.", exception);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        factory = singleton.get();<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>    return factory;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  }<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>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.387"></a>
+<span class="sourceLineNo">388</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.388"></a>
+<span class="sourceLineNo">389</span>   * @return a WAL Reader, caller must close.<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   */<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  public static Reader createReader(final FileSystem fs, final Path path,<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      final Configuration configuration) throws IOException {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return getInstance(configuration).createReader(fs, path);<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>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @return a WAL Reader, caller must close.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  static Reader createReader(final FileSystem fs, final Path path,<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      final Configuration configuration, final CancelableProgressable reporter) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    return getInstance(configuration).createReader(fs, path, reporter);<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>   * Create a reader for the given path, ignore custom reader classes from conf.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   * only public pending move of {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * @return a WAL Reader, caller must close.<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
+<span class="sourceLineNo">412</span>  public static Reader createReaderIgnoreCustomClass(final FileSystem fs, final Path path,<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      final Configuration configuration) throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    return getInstance(configuration).createReader(fs, path, null, false);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>  /**<a name="line.417"></a>
+<span class="sourceLineNo">418</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.418"></a>
+<span class="sourceLineNo">419</span>   * Uses defaults.<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * @return a Writer that will overwrite files. Caller must close.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  static Writer createRecoveredEditsWriter(final FileSystem fs, final Path path,<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      final Configuration configuration)<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      throws IOException {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    return FSHLogProvider.createWriter(configuration, fs, path, true);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>  /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.429"></a>
+<span class="sourceLineNo">430</span>   * Uses defaults.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>   * @return a writer that won't overwrite files. Caller must close.<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   */<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  @VisibleForTesting<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public static Writer createWALWriter(final FileSystem fs, final Path path,<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      final Configuration configuration)<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      throws IOException {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    return FSHLogProvider.createWriter(configuration, fs, path, false);<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>  public final WALProvider getWALProvider() {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    return this.provider;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public final WALProvider getMetaWALProvider() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return this.metaProvider.get();<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
+<span class="sourceLineNo">447</span>}<a name="line.447"></a>
 
 
 


[18/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/apidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/CellComparator.html b/apidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
index 5685dfa..31cd218 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
@@ -59,78 +59,86 @@
 <span class="sourceLineNo">051</span>  int compare(Cell leftCell, Cell rightCell);<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>   * Lexographically compares the rows of two cells.<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * @param leftCell the left hand side cell<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * @param rightCell the right hand side cell<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   *         cells are equal<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   */<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  int compareRows(Cell leftCell, Cell rightCell);<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   * stopRow in Scan.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   * @param cell the cell<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @param bytes the byte[] representing the row to be compared with<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @param offset the offset of the byte[]<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * @param length the length of the byte[]<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   *         cells are equal<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  int compareRows(Cell cell, byte[] bytes, int offset, int length);<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  /**<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   * Lexographically compares the two cells excluding the row part. It compares family, qualifier,<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   * timestamp and the type<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   * @param leftCell the left hand side cell<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * @param rightCell the right hand side cell<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   *         cells are equal<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  int compareWithoutRow(Cell leftCell, Cell rightCell);<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  /**<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * Lexographically compares the families of the two cells<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param leftCell the left hand side cell<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @param rightCell the right hand side cell<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   *         cells are equal<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  int compareFamilies(Cell leftCell, Cell rightCell);<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * Lexographically compares the qualifiers of the two cells<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param leftCell the left hand side cell<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @param rightCell the right hand side cell<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   *         cells are equal<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  int compareQualifiers(Cell leftCell, Cell rightCell);<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * a store file.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * @param leftCell the left hand side cell<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * @param rightCell the right hand side cell<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   *         timestamp 0 if both timestamps are equal<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  int compareTimestamps(Cell leftCell, Cell rightCell);<a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  /**<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   * a store file.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * @param leftCellts the left cell's timestamp<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * @param rightCellts the right cell's timestamp<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   *         timestamp 0 if both timestamps are equal<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  int compareTimestamps(long leftCellts, long rightCellts);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>}<a name="line.125"></a>
+<span class="sourceLineNo">054</span>   * Compare cells.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * @param ignoreSequenceid True if we are to compare the key portion only and ignore<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * the sequenceid. Set to false to compare key and consider sequenceid.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * @return 0 if equal, -1 if a &amp;lt; b, and +1 if a &amp;gt; b.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  int compare(Cell leftCell, Cell rightCell, boolean ignoreSequenceid);<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>   * Lexographically compares the rows of two cells.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * @param leftCell the left hand side cell<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * @param rightCell the right hand side cell<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   *         cells are equal<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  int compareRows(Cell leftCell, Cell rightCell);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * stopRow in Scan.<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * @param cell the cell<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * @param bytes the byte[] representing the row to be compared with<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   * @param offset the offset of the byte[]<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   * @param length the length of the byte[]<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   *         cells are equal<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  int compareRows(Cell cell, byte[] bytes, int offset, int length);<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * Lexographically compares the two cells excluding the row part. It compares family, qualifier,<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * timestamp and the type<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @param leftCell the left hand side cell<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * @param rightCell the right hand side cell<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   *         cells are equal<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  int compareWithoutRow(Cell leftCell, Cell rightCell);<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>   * Lexographically compares the families of the two cells<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * @param leftCell the left hand side cell<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * @param rightCell the right hand side cell<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   *         cells are equal<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  int compareFamilies(Cell leftCell, Cell rightCell);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  /**<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * Lexographically compares the qualifiers of the two cells<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * @param leftCell the left hand side cell<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   * @param rightCell the right hand side cell<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   *         cells are equal<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  int compareQualifiers(Cell leftCell, Cell rightCell);<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * a store file.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * @param leftCell the left hand side cell<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * @param rightCell the right hand side cell<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   *         timestamp 0 if both timestamps are equal<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  int compareTimestamps(Cell leftCell, Cell rightCell);<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>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * a store file.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @param leftCellts the left cell's timestamp<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * @param rightCellts the right cell's timestamp<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   *         timestamp 0 if both timestamps are equal<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  int compareTimestamps(long leftCellts, long rightCellts);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>}<a name="line.133"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index b1f062c..2b38a02 100644
--- a/book.html
+++ b/book.html
@@ -6725,7 +6725,7 @@ Quitting...</code></pre>
 <p>hbase.master.fileSplitTimeout is now set to 10 minutes. Previously it was 30 seconds.</p>
 </li>
 <li>
-<p>hbase.regionserver.logroll.multiplier is now set to 0.5. Previously it was 0.95.</p>
+<p>hbase.regionserver.logroll.multiplier is now set to 0.5. Previously it was 0.95. This change is tied with the following doubling of block size. Combined, these two configuration changes should make for WALs of about the same size as those in hbase-1.x but there should be less incidence of small blocks because we fail to roll the WAL before we hit the blocksize threshold. See <a href="https://issues.apache.org/jira/browse/HBASE-19148">HBASE-19148</a> for discussion.</p>
 </li>
 <li>
 <p>hbase.regionserver.hlog.blocksize defaults to 2x the HDFS default block size for the WAL dir. Previously it was equal to the HDFS default block size for the WAL dir.</p>
@@ -37873,7 +37873,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-05-16 14:29:52 UTC
+Last updated 2018-05-16 18:31:46 UTC
 </div>
 </div>
 </body>


[07/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
index 269c311..8c0f827 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
@@ -186,959 +186,963 @@
 <span class="sourceLineNo">178</span>  // If &gt; than this size, roll the log.<a name="line.178"></a>
 <span class="sourceLineNo">179</span>  protected final long logrollsize;<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 more than this many logs, force flush of oldest region to oldest edit goes to disk. If too<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * many and we crash, then will take forever replaying. Keep the number of logs tidy.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  protected final int maxLogs;<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>   * This lock makes sure only one log roll runs at a time. Should not be taken while any other lock<a name="line.188"></a>
-<span class="sourceLineNo">189</span>   * is held. We don't just use synchronized because that results in bogus and tedious findbugs<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * warning when it thinks synchronized controls writer thread safety. It is held when we are<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * actually rolling the log. It is checked when we are looking to see if we should roll the log or<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * not.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   */<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  protected final ReentrantLock rollWriterLock = new ReentrantLock(true);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  // The timestamp (in ms) when the log file was created.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  protected final AtomicLong filenum = new AtomicLong(-1);<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  // Number of transactions in the current Wal.<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  protected final AtomicInteger numEntries = new AtomicInteger(0);<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /**<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   * The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   * WALEdit to background consumer thread, and the transaction id is the sequence number of the<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   * corresponding entry in queue.<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  protected volatile long highestUnsyncedTxid = -1;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * Updated to the transaction id of the last successful sync call. This can be less than<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   * {@link #highestUnsyncedTxid} for case where we have an append where a sync has not yet come in<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * for it.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   */<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  protected final AtomicLong highestSyncedTxid = new AtomicLong(0);<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>   * The total size of wal<a name="line.217"></a>
+<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * Block size to use writing files.<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  protected final long blocksize;<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  /*<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * If more than this many logs, force flush of oldest region to oldest edit goes to disk. If too<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * many and we crash, then will take forever replaying. Keep the number of logs tidy.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  protected final int maxLogs;<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * This lock makes sure only one log roll runs at a time. Should not be taken while any other lock<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * is held. We don't just use synchronized because that results in bogus and tedious findbugs<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * warning when it thinks synchronized controls writer thread safety. It is held when we are<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * actually rolling the log. It is checked when we are looking to see if we should roll the log or<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * not.<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   */<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  protected final ReentrantLock rollWriterLock = new ReentrantLock(true);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>  // The timestamp (in ms) when the log file was created.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  protected final AtomicLong filenum = new AtomicLong(-1);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  // Number of transactions in the current Wal.<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  protected final AtomicInteger numEntries = new AtomicInteger(0);<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>   * The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   * WALEdit to background consumer thread, and the transaction id is the sequence number of the<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   * corresponding entry in queue.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  protected volatile long highestUnsyncedTxid = -1;<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   * Updated to the transaction id of the last successful sync call. This can be less than<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * {@link #highestUnsyncedTxid} for case where we have an append where a sync has not yet come in<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * for it.<a name="line.217"></a>
 <span class="sourceLineNo">218</span>   */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  protected final AtomicLong totalLogSize = new AtomicLong(0);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * Current log file.<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   */<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  volatile W writer;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  // Last time to check low replication on hlog's pipeline<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private long lastTimeCheckLowReplication = EnvironmentEdgeManager.currentTime();<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  protected volatile boolean closed = false;<a name="line.228"></a>
+<span class="sourceLineNo">219</span>  protected final AtomicLong highestSyncedTxid = new AtomicLong(0);<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>   * The total size of wal<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  protected final AtomicLong totalLogSize = new AtomicLong(0);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * Current log file.<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   */<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  volatile W writer;<a name="line.228"></a>
 <span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>  protected final AtomicBoolean shutdown = new AtomicBoolean(false);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * an IllegalArgumentException if used to compare paths from different wals.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  final Comparator&lt;Path&gt; LOG_NAME_COMPARATOR =<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    (o1, o2) -&gt; Long.compare(getFileNumFromFileName(o1), getFileNumFromFileName(o2));<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>  private static final class WalProps {<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>     * Map the encoded region name to the highest sequence id. Contain all the regions it has<a name="line.241"></a>
-<span class="sourceLineNo">242</span>     * entries of<a name="line.242"></a>
-<span class="sourceLineNo">243</span>     */<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public final Map&lt;byte[], Long&gt; encodedName2HighestSequenceId;<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>     * The log file size. Notice that the size may not be accurate if we do asynchronous close in<a name="line.247"></a>
-<span class="sourceLineNo">248</span>     * sub classes.<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     */<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public final long logSize;<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>    public WalProps(Map&lt;byte[], Long&gt; encodedName2HighestSequenceId, long logSize) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      this.encodedName2HighestSequenceId = encodedName2HighestSequenceId;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      this.logSize = logSize;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>  }<a name="line.256"></a>
-<span class="sourceLineNo">257</span><a name="line.257"></a>
-<span class="sourceLineNo">258</span>  /**<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * Map of WAL log file to properties. The map is sorted by the log file creation timestamp<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * (contained in the log file name).<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  protected ConcurrentNavigableMap&lt;Path, WalProps&gt; walFile2Props =<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    new ConcurrentSkipListMap&lt;&gt;(LOG_NAME_COMPARATOR);<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>  /**<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * Map of {@link SyncFuture}s keyed by Handler objects. Used so we reuse SyncFutures.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * &lt;p&gt;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * TODO: Reuse FSWALEntry's rather than create them anew each time as we do SyncFutures here.<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * &lt;p&gt;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * TODO: Add a FSWalEntry and SyncFuture as thread locals on handlers rather than have them get<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * them from this Map?<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   */<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private final ConcurrentMap&lt;Thread, SyncFuture&gt; syncFuturesByHandler;<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * The class name of the runtime implementation, used as prefix for logging/tracing.<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * &lt;p&gt;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   * Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * refer to HBASE-17676 for more details<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * &lt;/p&gt;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   */<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  protected final String implClassName;<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  public long getFilenum() {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    return this.filenum.get();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>  /**<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * A log file has a creation timestamp (in ms) in its file name ({@link #filenum}. This helper<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * method returns the creation timestamp from a given log file. It extracts the timestamp assuming<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   * the filename is created with the {@link #computeFilename(long filenum)} method.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @return timestamp, as in the log file name.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  protected long getFileNumFromFileName(Path fileName) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    checkNotNull(fileName, "file name can't be null");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    if (!ourFiles.accept(fileName)) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      throw new IllegalArgumentException(<a name="line.297"></a>
-<span class="sourceLineNo">298</span>          "The log file " + fileName + " doesn't belong to this WAL. (" + toString() + ")");<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    final String fileNameString = fileName.toString();<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    String chompedPath = fileNameString.substring(prefixPathStr.length(),<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      (fileNameString.length() - walFileSuffix.length()));<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    return Long.parseLong(chompedPath);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  private int calculateMaxLogFiles(Configuration conf, long logRollSize) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    Pair&lt;Long, MemoryType&gt; globalMemstoreSize = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    return (int) ((globalMemstoreSize.getFirst() * 2) / logRollSize);<a name="line.308"></a>
+<span class="sourceLineNo">230</span>  // Last time to check low replication on hlog's pipeline<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  private long lastTimeCheckLowReplication = EnvironmentEdgeManager.currentTime();<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>  protected volatile boolean closed = false;<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  protected final AtomicBoolean shutdown = new AtomicBoolean(false);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   * WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * an IllegalArgumentException if used to compare paths from different wals.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  final Comparator&lt;Path&gt; LOG_NAME_COMPARATOR =<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    (o1, o2) -&gt; Long.compare(getFileNumFromFileName(o1), getFileNumFromFileName(o2));<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private static final class WalProps {<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>     * Map the encoded region name to the highest sequence id. Contain all the regions it has<a name="line.246"></a>
+<span class="sourceLineNo">247</span>     * entries of<a name="line.247"></a>
+<span class="sourceLineNo">248</span>     */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    public final Map&lt;byte[], Long&gt; encodedName2HighestSequenceId;<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>     * The log file size. Notice that the size may not be accurate if we do asynchronous close in<a name="line.252"></a>
+<span class="sourceLineNo">253</span>     * sub classes.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>     */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    public final long logSize;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>    public WalProps(Map&lt;byte[], Long&gt; encodedName2HighestSequenceId, long logSize) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      this.encodedName2HighestSequenceId = encodedName2HighestSequenceId;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      this.logSize = logSize;<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>  /**<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * Map of WAL log file to properties. The map is sorted by the log file creation timestamp<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * (contained in the log file name).<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>  protected ConcurrentNavigableMap&lt;Path, WalProps&gt; walFile2Props =<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    new ConcurrentSkipListMap&lt;&gt;(LOG_NAME_COMPARATOR);<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>   * Map of {@link SyncFuture}s keyed by Handler objects. Used so we reuse SyncFutures.<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * &lt;p&gt;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * TODO: Reuse FSWALEntry's rather than create them anew each time as we do SyncFutures here.<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * &lt;p&gt;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * TODO: Add a FSWalEntry and SyncFuture as thread locals on handlers rather than have them get<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * them from this Map?<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  private final ConcurrentMap&lt;Thread, SyncFuture&gt; syncFuturesByHandler;<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>   * The class name of the runtime implementation, used as prefix for logging/tracing.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>   * &lt;p&gt;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   * refer to HBASE-17676 for more details<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * &lt;/p&gt;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  protected final String implClassName;<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public long getFilenum() {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    return this.filenum.get();<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  }<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * A log file has a creation timestamp (in ms) in its file name ({@link #filenum}. This helper<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * method returns the creation timestamp from a given log file. It extracts the timestamp assuming<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * the filename is created with the {@link #computeFilename(long filenum)} method.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @return timestamp, as in the log file name.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  protected long getFileNumFromFileName(Path fileName) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    checkNotNull(fileName, "file name can't be null");<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    if (!ourFiles.accept(fileName)) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      throw new IllegalArgumentException(<a name="line.302"></a>
+<span class="sourceLineNo">303</span>          "The log file " + fileName + " doesn't belong to this WAL. (" + toString() + ")");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    final String fileNameString = fileName.toString();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    String chompedPath = fileNameString.substring(prefixPathStr.length(),<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      (fileNameString.length() - walFileSuffix.length()));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    return Long.parseLong(chompedPath);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>  }<a name="line.309"></a>
 <span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>  // must be power of 2<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected final int getPreallocatedEventCount() {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // Preallocate objects to use on the ring buffer. The way that appends and syncs work, we will<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    // be stuck and make no progress if the buffer is filled with appends only and there is no<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    // sync. If no sync, then the handlers will be outstanding just waiting on sync completion<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // before they return.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    int preallocatedEventCount =<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      this.conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    checkArgument(preallocatedEventCount &gt;= 0,<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      "hbase.regionserver.wal.disruptor.event.count must &gt; 0");<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    int floor = Integer.highestOneBit(preallocatedEventCount);<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    if (floor == preallocatedEventCount) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      return floor;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // max capacity is 1 &lt;&lt; 30<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (floor &gt;= 1 &lt;&lt; 29) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      return 1 &lt;&lt; 30;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return floor &lt;&lt; 1;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  protected AbstractFSWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      final String archiveDir, final Configuration conf, final List&lt;WALActionsListener&gt; listeners,<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      throws FailedLogCloseException, IOException {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.fs = fs;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.walDir = new Path(rootDir, logDir);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.walArchiveDir = new Path(rootDir, archiveDir);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    this.conf = conf;<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>    if (!fs.exists(walDir) &amp;&amp; !fs.mkdirs(walDir)) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      throw new IOException("Unable to mkdir " + walDir);<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>    if (!fs.exists(this.walArchiveDir)) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      if (!fs.mkdirs(this.walArchiveDir)) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>        throw new IOException("Unable to mkdir " + this.walArchiveDir);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      }<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    // If prefix is null||empty then just name it wal<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    this.walFilePrefix =<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      prefix == null || prefix.isEmpty() ? "wal" : URLEncoder.encode(prefix, "UTF8");<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    // we only correctly differentiate suffices when numeric ones start with '.'<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    if (suffix != null &amp;&amp; !(suffix.isEmpty()) &amp;&amp; !(suffix.startsWith(WAL_FILE_NAME_DELIMITER))) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      throw new IllegalArgumentException("WAL suffix must start with '" + WAL_FILE_NAME_DELIMITER +<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        "' but instead was '" + suffix + "'");<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    // Now that it exists, set the storage policy for the entire directory of wal files related to<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    // this FSHLog instance<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    CommonFSUtils.setStoragePolicy(fs, conf, this.walDir, HConstants.WAL_STORAGE_POLICY,<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    this.walFileSuffix = (suffix == null) ? "" : URLEncoder.encode(suffix, "UTF8");<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    this.prefixPathStr = new Path(walDir, walFilePrefix + WAL_FILE_NAME_DELIMITER).toString();<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    this.ourFiles = new PathFilter() {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      @Override<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      public boolean accept(final Path fileName) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        // The path should start with dir/&lt;prefix&gt; and end with our suffix<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        final String fileNameString = fileName.toString();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        if (!fileNameString.startsWith(prefixPathStr)) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          return false;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        if (walFileSuffix.isEmpty()) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          // in the case of the null suffix, we need to ensure the filename ends with a timestamp.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          return org.apache.commons.lang3.StringUtils<a name="line.376"></a>
-<span class="sourceLineNo">377</span>              .isNumeric(fileNameString.substring(prefixPathStr.length()));<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        } else if (!fileNameString.endsWith(walFileSuffix)) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          return false;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        return true;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      }<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    };<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    if (failIfWALExists) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      final FileStatus[] walFiles = CommonFSUtils.listStatus(fs, walDir, ourFiles);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      if (null != walFiles &amp;&amp; 0 != walFiles.length) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        throw new IOException("Target WAL already exists within directory " + walDir);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>    // Register listeners. TODO: Should this exist anymore? We have CPs?<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    if (listeners != null) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      for (WALActionsListener i : listeners) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        registerWALActionsListener(i);<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>    this.coprocessorHost = new WALCoprocessorHost(this, conf);<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // Schedule a WAL roll when the WAL is 50% of the HDFS block size. Scheduling at 50% of block<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    // size should make it so WAL rolls before we get to the end-of-block (Block transitions cost<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // some latency). In hbase-1 we did this differently. We scheduled a roll when we hit 95% of<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    // the block size but experience from the field has it that this was not enough time for the<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    // roll to happen before end-of-block. So the new accounting makes WALs of about the same<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    // size as those made in hbase-1 (to prevent surprise), we now have default block size as<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    // 2 times the DFS default: i.e. 2 * DFS default block size rolling at 50% full will generally<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    // make similar size logs to 1 * DFS default block size rolling at 95% full. See HBASE-19148.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    final long blocksize = this.conf.getLong("hbase.regionserver.hlog.blocksize",<a name="line.408"></a>
-<span class="sourceLineNo">409</span>      CommonFSUtils.getDefaultBlockSize(this.fs, this.walDir) * 2);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    this.logrollsize =<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      (long) (blocksize * conf.getFloat("hbase.regionserver.logroll.multiplier", 0.5f));<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>    boolean maxLogsDefined = conf.get("hbase.regionserver.maxlogs") != null;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    if (maxLogsDefined) {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      LOG.warn("'hbase.regionserver.maxlogs' was deprecated.");<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    this.maxLogs = conf.getInt("hbase.regionserver.maxlogs",<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      Math.max(32, calculateMaxLogFiles(conf, logrollsize)));<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>    LOG.info("WAL configuration: blocksize=" + StringUtils.byteDesc(blocksize) + ", rollsize=" +<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      StringUtils.byteDesc(this.logrollsize) + ", prefix=" + this.walFilePrefix + ", suffix=" +<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      walFileSuffix + ", logDir=" + this.walDir + ", archiveDir=" + this.walArchiveDir);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    this.slowSyncNs = TimeUnit.MILLISECONDS<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        .toNanos(conf.getInt("hbase.regionserver.hlog.slowsync.ms", DEFAULT_SLOW_SYNC_TIME_MS));<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    this.walSyncTimeoutNs = TimeUnit.MILLISECONDS<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        .toNanos(conf.getLong("hbase.regionserver.hlog.sync.timeout", DEFAULT_WAL_SYNC_TIMEOUT_MS));<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    int maxHandlersCount = conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT, 200);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    // Presize our map of SyncFutures by handler objects.<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    this.syncFuturesByHandler = new ConcurrentHashMap&lt;&gt;(maxHandlersCount);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    this.implClassName = getClass().getSimpleName();<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>  @Override<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public void registerWALActionsListener(WALActionsListener listener) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    this.listeners.add(listener);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span><a name="line.437"></a>
-<span class="sourceLineNo">438</span>  @Override<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  public boolean unregisterWALActionsListener(WALActionsListener listener) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    return this.listeners.remove(listener);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<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 WALCoprocessorHost getCoprocessorHost() {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    return coprocessorHost;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  public Long startCacheFlush(byte[] encodedRegionName, Set&lt;byte[]&gt; families) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, families);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>  @Override<a name="line.453"></a>
-<span class="sourceLineNo">454</span>  public Long startCacheFlush(byte[] encodedRegionName, Map&lt;byte[], Long&gt; familyToSeq) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, familyToSeq);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>  }<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public void completeCacheFlush(byte[] encodedRegionName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    this.sequenceIdAccounting.completeCacheFlush(encodedRegionName);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>  }<a name="line.461"></a>
-<span class="sourceLineNo">462</span><a name="line.462"></a>
-<span class="sourceLineNo">463</span>  @Override<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  public void abortCacheFlush(byte[] encodedRegionName) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    this.sequenceIdAccounting.abortCacheFlush(encodedRegionName);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>  @Override<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // Used by tests. Deprecated as too subtle for general usage.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  @Override<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName, byte[] familyName) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    // This method is used by tests and for figuring if we should flush or not because our<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    // sequenceids are too old. It is also used reporting the master our oldest sequenceid for use<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    // figuring what edits can be skipped during log recovery. getEarliestMemStoreSequenceId<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    // from this.sequenceIdAccounting is looking first in flushingOldestStoreSequenceIds, the<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    // currently flushing sequence ids, and if anything found there, it is returning these. This is<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    // the right thing to do for the reporting oldest sequenceids to master; we won't skip edits if<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    // we crash during the flush. For figuring what to flush, we might get requeued if our sequence<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    // id is old even though we are currently flushing. This may mean we do too much flushing.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName, familyName);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>  @Override<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public byte[][] rollWriter() throws FailedLogCloseException, IOException {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    return rollWriter(false);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>  }<a name="line.490"></a>
-<span class="sourceLineNo">491</span><a name="line.491"></a>
-<span class="sourceLineNo">492</span>  /**<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   * This is a convenience method that computes a new filename with a given file-number.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * @param filenum to use<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * @return Path<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   */<a name="line.496"></a>
-<span class="sourceLineNo">497</span>  protected Path computeFilename(final long filenum) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    if (filenum &lt; 0) {<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      throw new RuntimeException("WAL file number can't be &lt; 0");<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    }<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    String child = walFilePrefix + WAL_FILE_NAME_DELIMITER + filenum + walFileSuffix;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    return new Path(walDir, child);<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>  /**<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * This is a convenience method that computes a new filename with a given using the current WAL<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * file-number<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   * @return Path<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   */<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  public Path getCurrentFileName() {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    return computeFilename(this.filenum.get());<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>  /**<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * retrieve the next path to use for writing. Increments the internal filenum.<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   */<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  private Path getNewPath() throws IOException {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    this.filenum.set(System.currentTimeMillis());<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    Path newPath = getCurrentFileName();<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    while (fs.exists(newPath)) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      this.filenum.incrementAndGet();<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      newPath = getCurrentFileName();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    return newPath;<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  @VisibleForTesting<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  Path getOldPath() {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    long currentFilenum = this.filenum.get();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    Path oldPath = null;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    if (currentFilenum &gt; 0) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      // ComputeFilename will take care of meta wal filename<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      oldPath = computeFilename(currentFilenum);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    } // I presume if currentFilenum is &lt;= 0, this is first file and null for oldPath if fine?<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    return oldPath;<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>  /**<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   * Tell listeners about pre log roll.<a name="line.539"></a>
-<span class="sourceLineNo">540</span>   */<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  private void tellListenersAboutPreLogRoll(final Path oldPath, final Path newPath)<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      throws IOException {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    coprocessorHost.preWALRoll(oldPath, newPath);<a name="line.543"></a>
-<span class="sourceLineNo">544</span><a name="line.544"></a>
-<span class="sourceLineNo">545</span>    if (!this.listeners.isEmpty()) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      for (WALActionsListener i : this.listeners) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        i.preLogRoll(oldPath, newPath);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      }<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>  }<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>   * Tell listeners about post log roll.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   */<a name="line.554"></a>
-<span class="sourceLineNo">555</span>  private void tellListenersAboutPostLogRoll(final Path oldPath, final Path newPath)<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      throws IOException {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    if (!this.listeners.isEmpty()) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      for (WALActionsListener i : this.listeners) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        i.postLogRoll(oldPath, newPath);<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    }<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>    coprocessorHost.postWALRoll(oldPath, newPath);<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>  // public only until class moves to o.a.h.h.wal<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  /** @return the number of rolled log files */<a name="line.567"></a>
-<span class="sourceLineNo">568</span>  public int getNumRolledLogFiles() {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    return walFile2Props.size();<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>  // public only until class moves to o.a.h.h.wal<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  /** @return the number of log files in use */<a name="line.573"></a>
-<span class="sourceLineNo">574</span>  public int getNumLogFiles() {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    // +1 for current use log<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    return getNumRolledLogFiles() + 1;<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>  /**<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * If the number of un-archived WAL files is greater than maximum allowed, check the first<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * (oldest) WAL file, and returns those regions which should be flushed so that it can be<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   * archived.<a name="line.582"></a>
-<span class="sourceLineNo">583</span>   * @return regions (encodedRegionNames) to flush in order to archive oldest WAL file.<a name="line.583"></a>
-<span class="sourceLineNo">584</span>   */<a name="line.584"></a>
-<span class="sourceLineNo">585</span>  byte[][] findRegionsToForceFlush() throws IOException {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    byte[][] regions = null;<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    int logCount = getNumRolledLogFiles();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    if (logCount &gt; this.maxLogs &amp;&amp; logCount &gt; 0) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      Map.Entry&lt;Path, WalProps&gt; firstWALEntry = this.walFile2Props.firstEntry();<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      regions =<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        this.sequenceIdAccounting.findLower(firstWALEntry.getValue().encodedName2HighestSequenceId);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    }<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    if (regions != null) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      StringBuilder sb = new StringBuilder();<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      for (int i = 0; i &lt; regions.length; i++) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        if (i &gt; 0) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          sb.append(", ");<a name="line.597"></a>
-<span class="sourceLineNo">598</span>        }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>        sb.append(Bytes.toStringBinary(regions[i]));<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      LOG.info("Too many WALs; count=" + logCount + ", max=" + this.maxLogs +<a name="line.601"></a>
-<span class="sourceLineNo">602</span>        "; forcing flush of " + regions.length + " regions(s): " + sb.toString());<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    return regions;<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  /**<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   * Archive old logs. A WAL is eligible for archiving if all its WALEdits have been flushed.<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
-<span class="sourceLineNo">610</span>  private void cleanOldLogs() throws IOException {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    List&lt;Pair&lt;Path, Long&gt;&gt; logsToArchive = null;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    // For each log file, look at its Map of regions to highest sequence id; if all sequence ids<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // are older than what is currently in memory, the WAL can be GC'd.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    for (Map.Entry&lt;Path, WalProps&gt; e : this.walFile2Props.entrySet()) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      Path log = e.getKey();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      Map&lt;byte[], Long&gt; sequenceNums = e.getValue().encodedName2HighestSequenceId;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>      if (this.sequenceIdAccounting.areAllLower(sequenceNums)) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span>        if (logsToArchive == null) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>          logsToArchive = new ArrayList&lt;&gt;();<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        logsToArchive.add(Pair.newPair(log, e.getValue().logSize));<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        if (LOG.isTraceEnabled()) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>          LOG.trace("WAL file ready for archiving " + log);<a name="line.623"></a>
+<span class="sourceLineNo">311</span>  private int calculateMaxLogFiles(Configuration conf, long logRollSize) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    Pair&lt;Long, MemoryType&gt; globalMemstoreSize = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return (int) ((globalMemstoreSize.getFirst() * 2) / logRollSize);<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>  // must be power of 2<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  protected final int getPreallocatedEventCount() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // Preallocate objects to use on the ring buffer. The way that appends and syncs work, we will<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    // be stuck and make no progress if the buffer is filled with appends only and there is no<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // sync. If no sync, then the handlers will be outstanding just waiting on sync completion<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    // before they return.<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    int preallocatedEventCount =<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      this.conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    checkArgument(preallocatedEventCount &gt;= 0,<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      "hbase.regionserver.wal.disruptor.event.count must &gt; 0");<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    int floor = Integer.highestOneBit(preallocatedEventCount);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    if (floor == preallocatedEventCount) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      return floor;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    // max capacity is 1 &lt;&lt; 30<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (floor &gt;= 1 &lt;&lt; 29) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      return 1 &lt;&lt; 30;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    return floor &lt;&lt; 1;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  protected AbstractFSWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      final String archiveDir, final Configuration conf, final List&lt;WALActionsListener&gt; listeners,<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      throws FailedLogCloseException, IOException {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    this.fs = fs;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.walDir = new Path(rootDir, logDir);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    this.walArchiveDir = new Path(rootDir, archiveDir);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    this.conf = conf;<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if (!fs.exists(walDir) &amp;&amp; !fs.mkdirs(walDir)) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      throw new IOException("Unable to mkdir " + walDir);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>    if (!fs.exists(this.walArchiveDir)) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      if (!fs.mkdirs(this.walArchiveDir)) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        throw new IOException("Unable to mkdir " + this.walArchiveDir);<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>    // If prefix is null||empty then just name it wal<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    this.walFilePrefix =<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      prefix == null || prefix.isEmpty() ? "wal" : URLEncoder.encode(prefix, "UTF8");<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    // we only correctly differentiate suffices when numeric ones start with '.'<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    if (suffix != null &amp;&amp; !(suffix.isEmpty()) &amp;&amp; !(suffix.startsWith(WAL_FILE_NAME_DELIMITER))) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      throw new IllegalArgumentException("WAL suffix must start with '" + WAL_FILE_NAME_DELIMITER +<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        "' but instead was '" + suffix + "'");<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    // Now that it exists, set the storage policy for the entire directory of wal files related to<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // this FSHLog instance<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    CommonFSUtils.setStoragePolicy(fs, conf, this.walDir, HConstants.WAL_STORAGE_POLICY,<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    this.walFileSuffix = (suffix == null) ? "" : URLEncoder.encode(suffix, "UTF8");<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    this.prefixPathStr = new Path(walDir, walFilePrefix + WAL_FILE_NAME_DELIMITER).toString();<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>    this.ourFiles = new PathFilter() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      public boolean accept(final Path fileName) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        // The path should start with dir/&lt;prefix&gt; and end with our suffix<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        final String fileNameString = fileName.toString();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        if (!fileNameString.startsWith(prefixPathStr)) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>          return false;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        if (walFileSuffix.isEmpty()) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>          // in the case of the null suffix, we need to ensure the filename ends with a timestamp.<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          return org.apache.commons.lang3.StringUtils<a name="line.381"></a>
+<span class="sourceLineNo">382</span>              .isNumeric(fileNameString.substring(prefixPathStr.length()));<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        } else if (!fileNameString.endsWith(walFileSuffix)) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>          return false;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        return true;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    };<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    if (failIfWALExists) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      final FileStatus[] walFiles = CommonFSUtils.listStatus(fs, walDir, ourFiles);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      if (null != walFiles &amp;&amp; 0 != walFiles.length) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        throw new IOException("Target WAL already exists within directory " + walDir);<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>    // Register listeners. TODO: Should this exist anymore? We have CPs?<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    if (listeners != null) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      for (WALActionsListener i : listeners) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        registerWALActionsListener(i);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    this.coprocessorHost = new WALCoprocessorHost(this, conf);<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>    // Schedule a WAL roll when the WAL is 50% of the HDFS block size. Scheduling at 50% of block<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    // size should make it so WAL rolls before we get to the end-of-block (Block transitions cost<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    // some latency). In hbase-1 we did this differently. We scheduled a roll when we hit 95% of<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    // the block size but experience from the field has it that this was not enough time for the<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    // roll to happen before end-of-block. So the new accounting makes WALs of about the same<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    // size as those made in hbase-1 (to prevent surprise), we now have default block size as<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    // 2 times the DFS default: i.e. 2 * DFS default block size rolling at 50% full will generally<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    // make similar size logs to 1 * DFS default block size rolling at 95% full. See HBASE-19148.<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    this.blocksize = WALUtil.getWALBlockSize(this.conf, this.fs, this.walDir);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    float multiplier = conf.getFloat("hbase.regionserver.logroll.multiplier", 0.5f);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    this.logrollsize = (long)(this.blocksize * multiplier);<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    boolean maxLogsDefined = conf.get("hbase.regionserver.maxlogs") != null;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    if (maxLogsDefined) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      LOG.warn("'hbase.regionserver.maxlogs' was deprecated.");<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    this.maxLogs = conf.getInt("hbase.regionserver.maxlogs",<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      Math.max(32, calculateMaxLogFiles(conf, logrollsize)));<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>    LOG.info("WAL configuration: blocksize=" + StringUtils.byteDesc(blocksize) + ", rollsize=" +<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      StringUtils.byteDesc(this.logrollsize) + ", prefix=" + this.walFilePrefix + ", suffix=" +<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      walFileSuffix + ", logDir=" + this.walDir + ", archiveDir=" + this.walArchiveDir);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    this.slowSyncNs = TimeUnit.MILLISECONDS<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        .toNanos(conf.getInt("hbase.regionserver.hlog.slowsync.ms", DEFAULT_SLOW_SYNC_TIME_MS));<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    this.walSyncTimeoutNs = TimeUnit.MILLISECONDS<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        .toNanos(conf.getLong("hbase.regionserver.hlog.sync.timeout", DEFAULT_WAL_SYNC_TIMEOUT_MS));<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    int maxHandlersCount = conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT, 200);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    // Presize our map of SyncFutures by handler objects.<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    this.syncFuturesByHandler = new ConcurrentHashMap&lt;&gt;(maxHandlersCount);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    this.implClassName = getClass().getSimpleName();<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>  @Override<a name="line.437"></a>
+<span class="sourceLineNo">438</span>  public void registerWALActionsListener(WALActionsListener listener) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    this.listeners.add(listener);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  public boolean unregisterWALActionsListener(WALActionsListener listener) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    return this.listeners.remove(listener);<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 WALCoprocessorHost getCoprocessorHost() {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    return coprocessorHost;<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 Long startCacheFlush(byte[] encodedRegionName, Set&lt;byte[]&gt; families) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, families);<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 Long startCacheFlush(byte[] encodedRegionName, Map&lt;byte[], Long&gt; familyToSeq) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>    return this.sequenceIdAccounting.startCacheFlush(encodedRegionName, familyToSeq);<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 void completeCacheFlush(byte[] encodedRegionName) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    this.sequenceIdAccounting.completeCacheFlush(encodedRegionName);<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 void abortCacheFlush(byte[] encodedRegionName) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    this.sequenceIdAccounting.abortCacheFlush(encodedRegionName);<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>  @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>    // Used by tests. Deprecated as too subtle for general usage.<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>  @Override<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  public long getEarliestMemStoreSeqNum(byte[] encodedRegionName, byte[] familyName) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    // This method is used by tests and for figuring if we should flush or not because our<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    // sequenceids are too old. It is also used reporting the master our oldest sequenceid for use<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    // figuring what edits can be skipped during log recovery. getEarliestMemStoreSequenceId<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    // from this.sequenceIdAccounting is looking first in flushingOldestStoreSequenceIds, the<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    // currently flushing sequence ids, and if anything found there, it is returning these. This is<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    // the right thing to do for the reporting oldest sequenceids to master; we won't skip edits if<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    // we crash during the flush. For figuring what to flush, we might get requeued if our sequence<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    // id is old even though we are currently flushing. This may mean we do too much flushing.<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    return this.sequenceIdAccounting.getLowestSequenceId(encodedRegionName, familyName);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>  @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>  public byte[][] rollWriter() throws FailedLogCloseException, IOException {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    return rollWriter(false);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>  }<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>   * This is a convenience method that computes a new filename with a given file-number.<a name="line.497"></a>
+<span class="sourceLineNo">498</span>   * @param filenum to use<a name="line.498"></a>
+<span class="sourceLineNo">499</span>   * @return Path<a name="line.499"></a>
+<span class="sourceLineNo">500</span>   */<a name="line.500"></a>
+<span class="sourceLineNo">501</span>  protected Path computeFilename(final long filenum) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>    if (filenum &lt; 0) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      throw new RuntimeException("WAL file number can't be &lt; 0");<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    String child = walFilePrefix + WAL_FILE_NAME_DELIMITER + filenum + walFileSuffix;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    return new Path(walDir, child);<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>  /**<a name="line.509"></a>
+<span class="sourceLineNo">510</span>   * This is a convenience method that computes a new filename with a given using the current WAL<a name="line.510"></a>
+<span class="sourceLineNo">511</span>   * file-number<a name="line.511"></a>
+<span class="sourceLineNo">512</span>   * @return Path<a name="line.512"></a>
+<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
+<span class="sourceLineNo">514</span>  public Path getCurrentFileName() {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    return computeFilename(this.filenum.get());<a name="line.515"></a>
+<span class="sourceLineNo">516</span>  }<a name="line.516"></a>
+<span class="sourceLineNo">517</span><a name="line.517"></a>
+<span class="sourceLineNo">518</span>  /**<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   * retrieve the next path to use for writing. Increments the internal filenum.<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
+<span class="sourceLineNo">521</span>  private Path getNewPath() throws IOException {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    this.filenum.set(System.currentTimeMillis());<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    Path newPath = getCurrentFileName();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    while (fs.exists(newPath)) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      this.filenum.incrementAndGet();<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      newPath = getCurrentFileName();<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    return newPath;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  @VisibleForTesting<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  Path getOldPath() {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    long currentFilenum = this.filenum.get();<a name="line.533"></a>
+<span class="sourceLineNo">534</span>    Path oldPath = null;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    if (currentFilenum &gt; 0) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      // ComputeFilename will take care of meta wal filename<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      oldPath = computeFilename(currentFilenum);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    } // I presume if currentFilenum is &lt;= 0, this is first file and null for oldPath if fine?<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    return oldPath;<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>  /**<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * Tell listeners about pre log roll.<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   */<a name="line.544"></a>
+<span class="sourceLineNo">545</span>  private void tellListenersAboutPreLogRoll(final Path oldPath, final Path newPath)<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      throws IOException {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    coprocessorHost.preWALRoll(oldPath, newPath);<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>    if (!this.listeners.isEmpty()) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      for (WALActionsListener i : this.listeners) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>        i.preLogRoll(oldPath, newPath);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>      }<a name="line.552"></a>
+<span class="sourceLineNo">553</span>    }<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   * Tell listeners about post log roll.<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   */<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  private void tellListenersAboutPostLogRoll(final Path oldPath, final Path newPath)<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      throws IOException {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    if (!this.listeners.isEmpty()) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      for (WALActionsListener i : this.listeners) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        i.postLogRoll(oldPath, newPath);<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>    coprocessorHost.postWALRoll(oldPath, newPath);<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>  // public only until class moves to o.a.h.h.wal<a name="line.570"></a>
+<span class="sourceLineNo">571</span>  /** @return the number of rolled log files */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public int getNumRolledLogFiles() {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    return walFile2Props.size();<a name="line.573"></a>
+<span class="sourceLineNo">574</span>  }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>  // public only until class moves to o.a.h.h.wal<a name="line.576"></a>
+<span class="sourceLineNo">577</span>  /** @return the number of log files in use */<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  public int getNumLogFiles() {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    // +1 for current use log<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    return getNumRolledLogFiles() + 1;<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>   * If the number of un-archived WAL files is greater than maximum allowed, check the first<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   * (oldest) WAL file, and returns those regions which should be flushed so that it can be<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * archived.<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * @return regions (encodedRegionNames) to flush in order to archive oldest WAL file.<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   */<a name="line.588"></a>
+<span class="sourceLineNo">589</span>  byte[][] findRegionsToForceFlush() throws IOException {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    byte[][] regions = null;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    int logCount = getNumRolledLogFiles();<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    if (logCount &gt; this.maxLogs &amp;&amp; logCount &gt; 0) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      Map.Entry&lt;Path, WalProps&gt; firstWALEntry = this.walFile2Props.firstEntry();<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      regions =<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        this.sequenceIdAccounting.findLower(firstWALEntry.getValue().encodedName2HighestSequenceId);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    if (regions != null) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      StringBuilder sb = new StringBuilder();<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      for (int i = 0; i &lt; regions.length; i++) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        if (i &gt; 0) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>          sb.append(", ");<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        sb.append(Bytes.toStringBinary(regions[i]));<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      LOG.info("Too many WALs; count=" + logCount + ", max=" + this.maxLogs +<a name="line.605"></a>
+<span class="sourceLineNo">606</span>        "; forcing flush of " + regions.length + " regions(s): " + sb.toString());<a name="line.606"></a>
+<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    return regions;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  }<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>  /**<a name="line.611"></a>
+<span class="sourceLineNo">612</span>   * Archive old logs. A WAL is eligible for archiving if all its WALEdits have been flushed.<a name="line.612"></a>
+<span class="sourceLineNo"

<TRUNCATED>

[04/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.html
index 36b2937..28539e5 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/WALFactory.html
@@ -343,113 +343,116 @@
 <span class="sourceLineNo">335</span><a name="line.335"></a>
 <span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
 <span class="sourceLineNo">337</span>   * Create a writer for the WAL.<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * &lt;p&gt;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   * should be package-private. public only for tests and<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   * {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * @return A WAL writer. Close when done with it.<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * @throws IOException<a name="line.342"></a>
+<span class="sourceLineNo">338</span>   * Uses defaults.<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * &lt;p&gt;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * Should be package-private. public only for tests and<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * @return A WAL writer. Close when done with it.<a name="line.342"></a>
 <span class="sourceLineNo">343</span>   */<a name="line.343"></a>
 <span class="sourceLineNo">344</span>  public Writer createWALWriter(final FileSystem fs, final Path path) throws IOException {<a name="line.344"></a>
 <span class="sourceLineNo">345</span>    return FSHLogProvider.createWriter(conf, fs, path, false);<a name="line.345"></a>
 <span class="sourceLineNo">346</span>  }<a name="line.346"></a>
 <span class="sourceLineNo">347</span><a name="line.347"></a>
 <span class="sourceLineNo">348</span>  /**<a name="line.348"></a>
-<span class="sourceLineNo">349</span>   * should be package-private, visible for recovery testing.<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * @return an overwritable writer for recovered edits. caller should close.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   */<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @VisibleForTesting<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public Writer createRecoveredEditsWriter(final FileSystem fs, final Path path)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      throws IOException {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    return FSHLogProvider.createWriter(conf, fs, path, true);<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>  // These static methods are currently used where it's impractical to<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  // untangle the reliance on state in the filesystem. They rely on singleton<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  // WALFactory that just provides Reader / Writers.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  // For now, first Configuration object wins. Practically this just impacts the reader/writer class<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private static final AtomicReference&lt;WALFactory&gt; singleton = new AtomicReference&lt;&gt;();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  private static final String SINGLETON_ID = WALFactory.class.getName();<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  <a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // public only for FSHLog<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  public static WALFactory getInstance(Configuration configuration) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    WALFactory factory = singleton.get();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (null == factory) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      WALFactory temp = new WALFactory(configuration);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      if (singleton.compareAndSet(null, temp)) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        factory = temp;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      } else {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        // someone else beat us to initializing<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        try {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          temp.close();<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        } catch (IOException exception) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>          LOG.debug("failed to close temporary singleton. ignoring.", exception);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        factory = singleton.get();<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>    return factory;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  }<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>  /**<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * @return a WAL Reader, caller must close.<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public static Reader createReader(final FileSystem fs, final Path path,<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      final Configuration configuration) throws IOException {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    return getInstance(configuration).createReader(fs, path);<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>  /**<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return a WAL Reader, caller must close.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  static Reader createReader(final FileSystem fs, final Path path,<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      final Configuration configuration, final CancelableProgressable reporter) throws IOException {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    return getInstance(configuration).createReader(fs, path, reporter);<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>  /**<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   * Create a reader for the given path, ignore custom reader classes from conf.<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * only public pending move of {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * @return a WAL Reader, caller must close.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   */<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public static Reader createReaderIgnoreCustomClass(final FileSystem fs, final Path path,<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      final Configuration configuration) throws IOException {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    return getInstance(configuration).createReader(fs, path, null, false);<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @return a Writer that will overwrite files. Caller must close.<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   */<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  static Writer createRecoveredEditsWriter(final FileSystem fs, final Path path,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      final Configuration configuration)<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      throws IOException {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    return FSHLogProvider.createWriter(configuration, fs, path, true);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  }<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>   * If you already have a WALFactory, you should favor the instance method.<a name="line.427"></a>
-<span class="sourceLineNo">428</span>   * @return a writer that won't overwrite files. Caller must close.<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  @VisibleForTesting<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  public static Writer createWALWriter(final FileSystem fs, final Path path,<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      final Configuration configuration)<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      throws IOException {<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    return FSHLogProvider.createWriter(configuration, fs, path, false);<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>  public final WALProvider getWALProvider() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    return this.provider;<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>  public final WALProvider getMetaWALProvider() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    return this.metaProvider.get();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
-<span class="sourceLineNo">444</span>}<a name="line.444"></a>
+<span class="sourceLineNo">349</span>   * Should be package-private, visible for recovery testing.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>   * Uses defaults.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * @return an overwritable writer for recovered edits. caller should close.<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   */<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  @VisibleForTesting<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  public Writer createRecoveredEditsWriter(final FileSystem fs, final Path path)<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      throws IOException {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    return FSHLogProvider.createWriter(conf, fs, path, true);<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>  // These static methods are currently used where it's impractical to<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  // untangle the reliance on state in the filesystem. They rely on singleton<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  // WALFactory that just provides Reader / Writers.<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  // For now, first Configuration object wins. Practically this just impacts the reader/writer class<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private static final AtomicReference&lt;WALFactory&gt; singleton = new AtomicReference&lt;&gt;();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  private static final String SINGLETON_ID = WALFactory.class.getName();<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  <a name="line.365"></a>
+<span class="sourceLineNo">366</span>  // Public only for FSHLog<a name="line.366"></a>
+<span class="sourceLineNo">367</span>  public static WALFactory getInstance(Configuration configuration) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    WALFactory factory = singleton.get();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    if (null == factory) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      WALFactory temp = new WALFactory(configuration);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      if (singleton.compareAndSet(null, temp)) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        factory = temp;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      } else {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        // someone else beat us to initializing<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        try {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>          temp.close();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        } catch (IOException exception) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>          LOG.debug("failed to close temporary singleton. ignoring.", exception);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        factory = singleton.get();<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>    return factory;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  }<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>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.387"></a>
+<span class="sourceLineNo">388</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.388"></a>
+<span class="sourceLineNo">389</span>   * @return a WAL Reader, caller must close.<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   */<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  public static Reader createReader(final FileSystem fs, final Path path,<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      final Configuration configuration) throws IOException {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return getInstance(configuration).createReader(fs, path);<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>   * Create a reader for the given path, accept custom reader classes from conf.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @return a WAL Reader, caller must close.<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  static Reader createReader(final FileSystem fs, final Path path,<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      final Configuration configuration, final CancelableProgressable reporter) throws IOException {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    return getInstance(configuration).createReader(fs, path, reporter);<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>   * Create a reader for the given path, ignore custom reader classes from conf.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   * only public pending move of {@link org.apache.hadoop.hbase.regionserver.wal.Compressor}<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * @return a WAL Reader, caller must close.<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
+<span class="sourceLineNo">412</span>  public static Reader createReaderIgnoreCustomClass(final FileSystem fs, final Path path,<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      final Configuration configuration) throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    return getInstance(configuration).createReader(fs, path, null, false);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>  /**<a name="line.417"></a>
+<span class="sourceLineNo">418</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.418"></a>
+<span class="sourceLineNo">419</span>   * Uses defaults.<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * @return a Writer that will overwrite files. Caller must close.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>  static Writer createRecoveredEditsWriter(final FileSystem fs, final Path path,<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      final Configuration configuration)<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      throws IOException {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    return FSHLogProvider.createWriter(configuration, fs, path, true);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>  /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>   * If you already have a WALFactory, you should favor the instance method.<a name="line.429"></a>
+<span class="sourceLineNo">430</span>   * Uses defaults.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>   * @return a writer that won't overwrite files. Caller must close.<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   */<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  @VisibleForTesting<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public static Writer createWALWriter(final FileSystem fs, final Path path,<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      final Configuration configuration)<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      throws IOException {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    return FSHLogProvider.createWriter(configuration, fs, path, false);<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>  public final WALProvider getWALProvider() {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    return this.provider;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>  public final WALProvider getMetaWALProvider() {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    return this.metaProvider.get();<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
+<span class="sourceLineNo">447</span>}<a name="line.447"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index a13ab5a..152d9b5 100644
--- a/index.html
+++ b/index.html
@@ -378,7 +378,9 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
 <div class="section">
 <h2><a name="News"></a>News</h2>
        
-<p>June 18th, 2018 <a class="externalLink" href="https://hbase.apache.org/hbasecon-2018">HBaseCon 2018</a> @ San Jose Convention Center, San Jose, CA, USA. CFP open, see site for details!</p>
+<p>August 17th, 2018 <a class="externalLink" href="https://hbase.apache.org/hbaseconasia-2018/">HBaseCon Asia 2018</a> @ Gehua New Century Hotel, Beijing, China. CFP open, see site for details!</p>
+       
+<p>June 18th, 2018 <a class="externalLink" href="https://hbase.apache.org/hbasecon-2018">HBaseCon North America West 2018</a> @ San Jose Convention Center, San Jose, CA, USA. registration still open, see site for details!</p>
        
 <p>August 4th, 2017 <a class="externalLink" href="https://easychair.org/cfp/HBaseConAsia2017">HBaseCon Asia 2017</a> @ the Huawei Campus in Shenzhen, China</p>
        

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index e2cf167..4b331c0 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -2243,6 +2243,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.DummyWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALActionsListener.DummyWALActionsListener</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestWalAndCompactingMemStoreFlush.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestWalAndCompactingMemStoreFlush</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALCellCodecWithCompression</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALConfiguration</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">TestWALDurability</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/TestWALEntrySinkFilter.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">TestWALEntrySinkFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/TestWALEntrySinkFilter.DevNullConnection.html" title="class in org.apache.hadoop.hbase.replication.regionserver" target="classFrame">TestWALEntrySinkFilter.DevNullConnection</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 369e39a..c413f84 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -2243,6 +2243,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.DummyWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALActionsListener.DummyWALActionsListener</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestWalAndCompactingMemStoreFlush.html" title="class in org.apache.hadoop.hbase.regionserver">TestWalAndCompactingMemStoreFlush</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALCellCodecWithCompression</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALDurability</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/TestWALEntrySinkFilter.html" title="class in org.apache.hadoop.hbase.replication.regionserver">TestWALEntrySinkFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/regionserver/TestWALEntrySinkFilter.DevNullConnection.html" title="class in org.apache.hadoop.hbase.replication.regionserver">TestWALEntrySinkFilter.DevNullConnection</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 2747f8f..82f73c7 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -2341,6 +2341,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.html#before--">before()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitTransactionOnCluster</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#before--">before()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpointNoMaster.html#before--">before()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpointNoMaster.html" title="class in org.apache.hadoop.hbase.replication.regionserver">TestRegionReplicaReplicationEndpointNoMaster</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/TestRemoteTable.html#before--">before()</a></span> - Method in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/TestRemoteTable.html" title="class in org.apache.hadoop.hbase.rest.client">TestRemoteTable</a></dt>
@@ -5703,6 +5705,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALCellCodecWithCompression</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALDurability</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALReplay</a></dt>
@@ -10792,6 +10796,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestDurability.html#data--">data()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestDurability</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#data--">data()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestMultiRowResource.html#data--">data()</a></span> - Static method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestMultiRowResource.html" title="class in org.apache.hadoop.hbase.rest">TestMultiRowResource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestRegionRebalancing.html#data--">data()</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestRegionRebalancing.html" title="class in org.apache.hadoop.hbase">TestRegionRebalancing</a></dt>
@@ -20152,7 +20158,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/IOTestProvider.html#init-org.apache.hadoop.hbase.wal.WALFactory-org.apache.hadoop.conf.Configuration-java.lang.String-">init(WALFactory, Configuration, String)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/IOTestProvider.html" title="class in org.apache.hadoop.hbase.wal">IOTestProvider</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init(FileSystem, Path, Configuration, boolean)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html" title="class in org.apache.hadoop.hbase.wal">IOTestProvider.IOTestWriter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init(FileSystem, Path, Configuration, boolean, long)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/IOTestProvider.IOTestWriter.html" title="class in org.apache.hadoop.hbase.wal">IOTestProvider.IOTestWriter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TestShutdownBackupMaster.MockHMaster.html#initClusterSchemaService--">initClusterSchemaService()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestShutdownBackupMaster.MockHMaster.html" title="class in org.apache.hadoop.hbase.master">TestShutdownBackupMaster.MockHMaster</a></dt>
 <dd>&nbsp;</dd>
@@ -23481,6 +23487,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.Appender.html#log">log</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.Appender.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestLogRollingNoCluster.Appender</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.replication.master.<a href="org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.html" title="class in org.apache.hadoop.hbase.replication.master">TestTableCFsUpdater</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/TestGlobalThrottler.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/TestGlobalThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver">TestGlobalThrottler</a></dt>
@@ -26297,6 +26305,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestFSHLog</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALDurability</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.replication.master.<a href="org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.html" title="class in org.apache.hadoop.hbase.replication.master">TestTableCFsUpdater</a></dt>
@@ -42806,6 +42816,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.html#TEST_UTIL">TEST_UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALActionsListener</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#TEST_UTIL">TEST_UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html#TEST_UTIL">TEST_UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALDurability</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.html#TEST_UTIL">TEST_UTIL</a></span> - Static variable in class org.apache.hadoop.hbase.replication.master.<a href="org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.html" title="class in org.apache.hadoop.hbase.replication.master">TestTableCFsUpdater</a></dt>
@@ -44585,6 +44597,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.BlockCacheStub.html#testBlockSize">testBlockSize</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.BlockCacheStub.html" title="class in org.apache.hadoop.hbase.regionserver">TestHeapMemoryManager.BlockCacheStub</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#testBlocksizeDefaultsToTwiceHDFSBlockSize--">testBlocksizeDefaultsToTwiceHDFSBlockSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>
+<div class="block">Test blocksize change from HBASE-20520 takes on both asycnfs and old wal provider.</div>
+</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/TestBlocksRead.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestBlocksRead</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestBlocksRead.html#TestBlocksRead--">TestBlocksRead()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestBlocksRead.html" title="class in org.apache.hadoop.hbase.regionserver">TestBlocksRead</a></dt>
@@ -62727,6 +62743,12 @@
 <dd>
 <div class="block">tests the log comparator.</div>
 </dd>
+<dt><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">TestWALConfiguration</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></dt>
+<dd>
+<div class="block">Ensure configuration changes are having an effect on WAL.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#TestWALConfiguration--">TestWALConfiguration()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractTestFSWAL.html#testWALCoprocessorLoaded--">testWALCoprocessorLoaded()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractTestFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractTestFSWAL</a></dt>
 <dd>
 <div class="block">A loaded WAL coprocessor won't break existing WAL test cases.</div>
@@ -67061,6 +67083,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestDurability.html#walProvider">walProvider</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestDurability</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#walProvider">walProvider</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestWALConfiguration</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.html#walProvider">walProvider</a></span> - Variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.html" title="class in org.apache.hadoop.hbase.wal">TestBoundedRegionGroupingStrategy</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/TestSecureWAL.html#walProvider">walProvider</a></span> - Variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/TestSecureWAL.html" title="class in org.apache.hadoop.hbase.wal">TestSecureWAL</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index 7d35278..33d1514 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -5003,46 +5003,50 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSequenceIdAccounting.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestWALConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncWALReplayCompressed.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayCompressed.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSequenceIdAccounting.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestWALCellCodecWithCompression.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncWALReplayCompressed.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayCompressed.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLogRollPeriod.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollPeriod.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestWALCellCodecWithCompression.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestWALReplay.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestLogRollPeriod.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollPeriod.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMetricsWAL.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestWALReplay.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLogRollingNoCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMetricsWAL.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLogRollAbort.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestLogRollingNoCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestWALActionsListener.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestLogRollAbort.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCompressor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestCompressor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestWALActionsListener.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestCompressor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestCompressor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestDurability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestDurability.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
index 1db86f0..1a52486 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
@@ -3166,30 +3166,34 @@
 <td class="colLast"><span class="typeNameLabel">AbstractTestFSWAL.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractTestFSWAL.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestWALConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractTestLogRollPeriod.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRollPeriod.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractTestLogRolling.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRolling.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestLogRollingNoCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestLogRollAbort.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestWALActionsListener.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractTestProtobufLog.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractTestProtobufLog.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestDurability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/TestDurability.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 33caf32..c3c0108 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -570,15 +570,15 @@
 <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/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index ca2f47e..e9c1d93 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -206,8 +206,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.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestWALLockup.DodgyFSLog.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestWALLockup.DodgyFSLog.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestWALLockup.DodgyFSLog.html
index 8727b4e..57ff069 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestWALLockup.DodgyFSLog.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestWALLockup.DodgyFSLog.html
@@ -183,7 +183,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL</h3>
-<code>closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix</code></li>
+<code>blocksize, closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 05fcabc..813f8a1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -659,11 +659,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.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
index 33fdb6e..0290a71 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.MockWAL.html
@@ -186,7 +186,7 @@ extends org.apache.hadoop.hbase.regionserver.wal.FSHLog</pre>
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL</h3>
-<code>closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, LOG_NAME_COMPARATOR, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix, writer</code></li>
+<code>blocksize, closed, conf, coprocessorHost, DEFAULT_SLOW_SYNC_TIME_MS, filenum, fs, highestSyncedTxid, highestUnsyncedTxid, implClassName, listeners, LOG_NAME_COMPARATOR, logrollsize, maxLogs, numEntries, ourFiles, prefixPathStr, rollWriterLock, sequenceIdAccounting, shutdown, slowSyncNs, totalLogSize, walArchiveDir, walDir, walFile2Props, walFilePrefix, walFileSuffix, writer</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html
index 20447eb..22de905 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.DummyWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" target="_top">Frames</a></li>
@@ -350,7 +350,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.DummyWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALDurability.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.html" target="_top">Frames</a></li>


[06/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
index 0f0a4bd..5dbbaf4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html
@@ -161,103 +161,101 @@
 <span class="sourceLineNo">153</span>    return doCompress;<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>  public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable)<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      throws IOException, StreamLacksCapabilityException {<a name="line.157"></a>
+<span class="sourceLineNo">156</span>  public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable,<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      long blocksize) throws IOException, StreamLacksCapabilityException {<a name="line.157"></a>
 <span class="sourceLineNo">158</span>    this.conf = conf;<a name="line.158"></a>
 <span class="sourceLineNo">159</span>    boolean doCompress = initializeCompressionContext(conf, path);<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    this.trailerWarnSize = conf.getInt(WAL_TRAILER_WARN_SIZE, DEFAULT_WAL_TRAILER_WARN_SIZE);<a name="line.160"></a>
 <span class="sourceLineNo">161</span>    int bufferSize = FSUtils.getDefaultBufferSize(fs);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    short replication = (short) conf.getInt("hbase.regionserver.hlog.replication",<a name="line.162"></a>
 <span class="sourceLineNo">163</span>      FSUtils.getDefaultReplication(fs, path));<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    long blockSize = conf.getLong("hbase.regionserver.hlog.blocksize",<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      FSUtils.getDefaultBlockSize(fs, path));<a name="line.165"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>    initOutput(fs, path, overwritable, bufferSize, replication, blocksize);<a name="line.165"></a>
 <span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    initOutput(fs, path, overwritable, bufferSize, replication, blockSize);<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>    boolean doTagCompress = doCompress<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        &amp;&amp; conf.getBoolean(CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true);<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    length.set(writeMagicAndWALHeader(ProtobufLogReader.PB_WAL_MAGIC, buildWALHeader(conf,<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      WALHeader.newBuilder().setHasCompression(doCompress).setHasTagCompression(doTagCompress))));<a name="line.172"></a>
+<span class="sourceLineNo">167</span>    boolean doTagCompress = doCompress<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        &amp;&amp; conf.getBoolean(CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    length.set(writeMagicAndWALHeader(ProtobufLogReader.PB_WAL_MAGIC, buildWALHeader(conf,<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      WALHeader.newBuilder().setHasCompression(doCompress).setHasTagCompression(doTagCompress))));<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>    initAfterHeader(doCompress);<a name="line.172"></a>
 <span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    initAfterHeader(doCompress);<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    // instantiate trailer to default value.<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    trailer = WALTrailer.newBuilder().build();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    if (LOG.isTraceEnabled()) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      LOG.trace("Initialized protobuf WAL=" + path + ", compression=" + doCompress);<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><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  private void initAfterHeader0(boolean doCompress) throws IOException {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    WALCellCodec codec = getCodec(conf, this.compressionContext);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    this.cellEncoder = codec.getEncoder(getOutputStreamForCellEncoder());<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    if (doCompress) {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      this.compressor = codec.getByteStringCompressor();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    }<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  protected void initAfterHeader(boolean doCompress) throws IOException {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    initAfterHeader0(doCompress);<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>  // should be called in sub classes's initAfterHeader method to init SecureWALCellCodec.<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  protected final void secureInitAfterHeader(boolean doCompress, Encryptor encryptor)<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      throws IOException {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    if (conf.getBoolean(HConstants.ENABLE_WAL_ENCRYPTION, false) &amp;&amp; encryptor != null) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      WALCellCodec codec = SecureWALCellCodec.getCodec(this.conf, encryptor);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      this.cellEncoder = codec.getEncoder(getOutputStreamForCellEncoder());<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // We do not support compression<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      this.compressionContext = null;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    } else {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      initAfterHeader0(doCompress);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>  void setWALTrailer(WALTrailer walTrailer) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.trailer = walTrailer;<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>  public long getLength() {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    return length.get();<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>  private WALTrailer buildWALTrailer(WALTrailer.Builder builder) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    return builder.build();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  protected void writeWALTrailer() {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    try {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      int trailerSize = 0;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      if (this.trailer == null) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        // use default trailer.<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        LOG.warn("WALTrailer is null. Continuing with default.");<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        this.trailer = buildWALTrailer(WALTrailer.newBuilder());<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        trailerSize = this.trailer.getSerializedSize();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      } else if ((trailerSize = this.trailer.getSerializedSize()) &gt; this.trailerWarnSize) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        // continue writing after warning the user.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        LOG.warn("Please investigate WALTrailer usage. Trailer size &gt; maximum size : " + trailerSize<a name="line.230"></a>
-<span class="sourceLineNo">231</span>            + " &gt; " + this.trailerWarnSize);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      length.set(writeWALTrailerAndMagic(trailer, ProtobufLogReader.PB_WAL_COMPLETE_MAGIC));<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      this.trailerWritten = true;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    } catch (IOException ioe) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      LOG.warn("Failed to write trailer, non-fatal, continuing...", ioe);<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><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  protected abstract void initOutput(FileSystem fs, Path path, boolean overwritable, int bufferSize,<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      short replication, long blockSize) throws IOException, StreamLacksCapabilityException;<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>   * return the file length after written.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  protected abstract long writeMagicAndWALHeader(byte[] magic, WALHeader header) throws IOException;<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  protected abstract long writeWALTrailerAndMagic(WALTrailer trailer, byte[] magic)<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      throws IOException;<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>  protected abstract OutputStream getOutputStreamForCellEncoder();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>}<a name="line.252"></a>
+<span class="sourceLineNo">174</span>    // instantiate trailer to default value.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    trailer = WALTrailer.newBuilder().build();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    if (LOG.isTraceEnabled()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      LOG.trace("Initialized protobuf WAL=" + path + ", compression=" + doCompress);<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><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  private void initAfterHeader0(boolean doCompress) throws IOException {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    WALCellCodec codec = getCodec(conf, this.compressionContext);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    this.cellEncoder = codec.getEncoder(getOutputStreamForCellEncoder());<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    if (doCompress) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      this.compressor = codec.getByteStringCompressor();<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>  protected void initAfterHeader(boolean doCompress) throws IOException {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    initAfterHeader0(doCompress);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>  // should be called in sub classes's initAfterHeader method to init SecureWALCellCodec.<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  protected final void secureInitAfterHeader(boolean doCompress, Encryptor encryptor)<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      throws IOException {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (conf.getBoolean(HConstants.ENABLE_WAL_ENCRYPTION, false) &amp;&amp; encryptor != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      WALCellCodec codec = SecureWALCellCodec.getCodec(this.conf, encryptor);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      this.cellEncoder = codec.getEncoder(getOutputStreamForCellEncoder());<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      // We do not support compression<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      this.compressionContext = null;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    } else {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      initAfterHeader0(doCompress);<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><a name="line.205"></a>
+<span class="sourceLineNo">206</span>  void setWALTrailer(WALTrailer walTrailer) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    this.trailer = walTrailer;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  public long getLength() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    return length.get();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>  private WALTrailer buildWALTrailer(WALTrailer.Builder builder) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    return builder.build();<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>  protected void writeWALTrailer() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    try {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      int trailerSize = 0;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      if (this.trailer == null) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        // use default trailer.<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        LOG.warn("WALTrailer is null. Continuing with default.");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        this.trailer = buildWALTrailer(WALTrailer.newBuilder());<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        trailerSize = this.trailer.getSerializedSize();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      } else if ((trailerSize = this.trailer.getSerializedSize()) &gt; this.trailerWarnSize) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        // continue writing after warning the user.<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        LOG.warn("Please investigate WALTrailer usage. Trailer size &gt; maximum size : " + trailerSize<a name="line.228"></a>
+<span class="sourceLineNo">229</span>            + " &gt; " + this.trailerWarnSize);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      }<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      length.set(writeWALTrailerAndMagic(trailer, ProtobufLogReader.PB_WAL_COMPLETE_MAGIC));<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      this.trailerWritten = true;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    } catch (IOException ioe) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      LOG.warn("Failed to write trailer, non-fatal, continuing...", ioe);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    }<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>  protected abstract void initOutput(FileSystem fs, Path path, boolean overwritable, int bufferSize,<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      short replication, long blockSize) throws IOException, StreamLacksCapabilityException;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>  /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * return the file length after written.<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  protected abstract long writeMagicAndWALHeader(byte[] magic, WALHeader header) throws IOException;<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>  protected abstract long writeWALTrailerAndMagic(WALTrailer trailer, byte[] magic)<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      throws IOException;<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  protected abstract OutputStream getOutputStreamForCellEncoder();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>}<a name="line.250"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
index 8f1a32e..cd4fe54 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
@@ -617,8 +617,8 @@
 <span class="sourceLineNo">609</span><a name="line.609"></a>
 <span class="sourceLineNo">610</span>  @Override<a name="line.610"></a>
 <span class="sourceLineNo">611</span>  protected AsyncWriter createWriterInstance(Path path) throws IOException {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    return AsyncFSWALProvider.createAsyncWriter(conf, fs, path, false, eventLoopGroup,<a name="line.612"></a>
-<span class="sourceLineNo">613</span>      channelClass);<a name="line.613"></a>
+<span class="sourceLineNo">612</span>    return AsyncFSWALProvider.createAsyncWriter(conf, fs, path, false,<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        this.blocksize, eventLoopGroup, channelClass);<a name="line.613"></a>
 <span class="sourceLineNo">614</span>  }<a name="line.614"></a>
 <span class="sourceLineNo">615</span><a name="line.615"></a>
 <span class="sourceLineNo">616</span>  private void waitForSafePoint() {<a name="line.616"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html
index 03c8b000..bef8cd4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html
@@ -283,7 +283,7 @@
 <span class="sourceLineNo">275</span>   */<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
 <span class="sourceLineNo">277</span>  protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false);<a name="line.278"></a>
+<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false, this.blocksize);<a name="line.278"></a>
 <span class="sourceLineNo">279</span>    if (writer instanceof ProtobufLogWriter) {<a name="line.279"></a>
 <span class="sourceLineNo">280</span>      preemptiveSync((ProtobufLogWriter) writer);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    }<a name="line.281"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferExceptionHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferExceptionHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferExceptionHandler.html
index 03c8b000..bef8cd4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferExceptionHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferExceptionHandler.html
@@ -283,7 +283,7 @@
 <span class="sourceLineNo">275</span>   */<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
 <span class="sourceLineNo">277</span>  protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false);<a name="line.278"></a>
+<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false, this.blocksize);<a name="line.278"></a>
 <span class="sourceLineNo">279</span>    if (writer instanceof ProtobufLogWriter) {<a name="line.279"></a>
 <span class="sourceLineNo">280</span>      preemptiveSync((ProtobufLogWriter) writer);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    }<a name="line.281"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SafePointZigZagLatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SafePointZigZagLatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SafePointZigZagLatch.html
index 03c8b000..bef8cd4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SafePointZigZagLatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SafePointZigZagLatch.html
@@ -283,7 +283,7 @@
 <span class="sourceLineNo">275</span>   */<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
 <span class="sourceLineNo">277</span>  protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false);<a name="line.278"></a>
+<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false, this.blocksize);<a name="line.278"></a>
 <span class="sourceLineNo">279</span>    if (writer instanceof ProtobufLogWriter) {<a name="line.279"></a>
 <span class="sourceLineNo">280</span>      preemptiveSync((ProtobufLogWriter) writer);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    }<a name="line.281"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html
index 03c8b000..bef8cd4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html
@@ -283,7 +283,7 @@
 <span class="sourceLineNo">275</span>   */<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
 <span class="sourceLineNo">277</span>  protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false);<a name="line.278"></a>
+<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false, this.blocksize);<a name="line.278"></a>
 <span class="sourceLineNo">279</span>    if (writer instanceof ProtobufLogWriter) {<a name="line.279"></a>
 <span class="sourceLineNo">280</span>      preemptiveSync((ProtobufLogWriter) writer);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    }<a name="line.281"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
index 03c8b000..bef8cd4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html
@@ -283,7 +283,7 @@
 <span class="sourceLineNo">275</span>   */<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
 <span class="sourceLineNo">277</span>  protected Writer createWriterInstance(final Path path) throws IOException {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false);<a name="line.278"></a>
+<span class="sourceLineNo">278</span>    Writer writer = FSHLogProvider.createWriter(conf, fs, path, false, this.blocksize);<a name="line.278"></a>
 <span class="sourceLineNo">279</span>    if (writer instanceof ProtobufLogWriter) {<a name="line.279"></a>
 <span class="sourceLineNo">280</span>      preemptiveSync((ProtobufLogWriter) writer);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    }<a name="line.281"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
index 3581481..2349af4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/WALUtil.html
@@ -30,148 +30,164 @@
 <span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.NavigableMap;<a name="line.23"></a>
 <span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.wal.WALEdit;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.wal.WALKeyImpl;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.slf4j.Logger;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.slf4j.LoggerFactory;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hbase.thirdparty.com.google.protobuf.TextFormat;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor;<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> * Helper methods to ease Region Server integration with the Write Ahead Log (WAL).<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * Note that methods in this class specifically should not require access to anything<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * other than the API found in {@link WAL}. For internal use only.<a name="line.42"></a>
-<span class="sourceLineNo">043</span> */<a name="line.43"></a>
-<span class="sourceLineNo">044</span>@InterfaceAudience.Private<a name="line.44"></a>
-<span class="sourceLineNo">045</span>public class WALUtil {<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  private static final Logger LOG = LoggerFactory.getLogger(WALUtil.class);<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  private WALUtil() {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    // Shut down construction of this class.<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  }<a name="line.50"></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.fs.FileSystem;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.fs.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.wal.WALEdit;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.wal.WALKeyImpl;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.slf4j.Logger;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.slf4j.LoggerFactory;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.com.google.protobuf.TextFormat;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor;<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> * Helper methods to ease Region Server integration with the Write Ahead Log (WAL).<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * Note that methods in this class specifically should not require access to anything<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * other than the API found in {@link WAL}. For internal use only.<a name="line.46"></a>
+<span class="sourceLineNo">047</span> */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>@InterfaceAudience.Private<a name="line.48"></a>
+<span class="sourceLineNo">049</span>public class WALUtil {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private static final Logger LOG = LoggerFactory.getLogger(WALUtil.class);<a name="line.50"></a>
 <span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * Write the marker that a compaction has succeeded and is about to be committed.<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * This provides info to the HMaster to allow it to recover the compaction if this regionserver<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * dies in the middle. It also prevents the compaction from finishing if this regionserver has<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * already lost its lease on the log.<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   *<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   * &lt;p&gt;This write is for internal use only. Not for external client consumption.<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * @param mvcc Used by WAL to get sequence Id for the waledit.<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public static WALKeyImpl writeCompactionMarker(WAL wal,<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      NavigableMap&lt;byte[], Integer&gt; replicationScope, RegionInfo hri, final CompactionDescriptor c,<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      MultiVersionConcurrencyControl mvcc)<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  throws IOException {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    WALKeyImpl walKey =<a name="line.65"></a>
-<span class="sourceLineNo">066</span>        writeMarker(wal, replicationScope, hri, WALEdit.createCompaction(hri, c), mvcc);<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    if (LOG.isTraceEnabled()) {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      LOG.trace("Appended compaction marker " + TextFormat.shortDebugString(c));<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    }<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    return walKey;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<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>   * Write a flush marker indicating a start / abort or a complete of a region flush<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   *<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   * &lt;p&gt;This write is for internal use only. Not for external client consumption.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public static WALKeyImpl writeFlushMarker(WAL wal, NavigableMap&lt;byte[], Integer&gt; replicationScope,<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      RegionInfo hri, final FlushDescriptor f, boolean sync, MultiVersionConcurrencyControl mvcc)<a name="line.79"></a>
-<span class="sourceLineNo">080</span>          throws IOException {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    WALKeyImpl walKey = doFullAppendTransaction(wal, replicationScope, hri,<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        WALEdit.createFlushWALEdit(hri, f), mvcc, sync);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    if (LOG.isTraceEnabled()) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      LOG.trace("Appended flush marker " + TextFormat.shortDebugString(f));<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    return walKey;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  /**<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * Write a region open marker indicating that the region is opened.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * This write is for internal use only. Not for external client consumption.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   */<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public static WALKeyImpl writeRegionEventMarker(WAL wal,<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      NavigableMap&lt;byte[], Integer&gt; replicationScope, RegionInfo hri,<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      final RegionEventDescriptor r, final MultiVersionConcurrencyControl mvcc)<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  throws IOException {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    WALKeyImpl walKey = writeMarker(wal, replicationScope, hri,<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        WALEdit.createRegionEventWALEdit(hri, r), mvcc);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    if (LOG.isTraceEnabled()) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      LOG.trace("Appended region event marker " + TextFormat.shortDebugString(r));<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    return walKey;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  }<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /**<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * Write a log marker that a bulk load has succeeded and is about to be committed.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * This write is for internal use only. Not for external client consumption.<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * @param wal The log to write into.<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * @param replicationScope The replication scope of the families in the HRegion<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * @param hri A description of the region in the table that we are bulk loading into.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @param desc A protocol buffers based description of the client's bulk loading request<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * @return walKey with sequenceid filled out for this bulk load marker<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * @throws IOException We will throw an IOException if we can not append to the HLog.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  public static WALKeyImpl writeBulkLoadMarkerAndSync(final WAL wal,<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      final NavigableMap&lt;byte[], Integer&gt; replicationScope, final RegionInfo hri,<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      final WALProtos.BulkLoadDescriptor desc, final MultiVersionConcurrencyControl mvcc)<a name="line.117"></a>
-<span class="sourceLineNo">118</span>          throws IOException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    WALKeyImpl walKey =<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        writeMarker(wal, replicationScope, hri, WALEdit.createBulkLoadEvent(hri, desc), mvcc);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    if (LOG.isTraceEnabled()) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      LOG.trace("Appended Bulk Load marker " + TextFormat.shortDebugString(desc));<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    return walKey;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  private static WALKeyImpl writeMarker(final WAL wal,<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      final NavigableMap&lt;byte[], Integer&gt; replicationScope, final RegionInfo hri,<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      final WALEdit edit, final MultiVersionConcurrencyControl mvcc)<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  throws IOException {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // If sync == true in below, then timeout is not used; safe to pass UNSPECIFIED_TIMEOUT<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return doFullAppendTransaction(wal, replicationScope, hri, edit, mvcc, true);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * A 'full' WAL transaction involves starting an mvcc transaction followed by an append,<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * an optional sync, and then a call to complete the mvcc transaction. This method does it all.<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * Good for case of adding a single edit or marker to the WAL.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   *<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   * &lt;p&gt;This write is for internal use only. Not for external client consumption.<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   * @return WALKeyImpl that was added to the WAL.<a name="line.141"></a>
-<span class="sourceLineNo">142</span>   */<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public static WALKeyImpl doFullAppendTransaction(final WAL wal,<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      final NavigableMap&lt;byte[], Integer&gt; replicationScope, final RegionInfo hri,<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      final WALEdit edit, final MultiVersionConcurrencyControl mvcc, final boolean sync)<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  throws IOException {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // TODO: Pass in current time to use?<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    WALKeyImpl walKey = new WALKeyImpl(hri.getEncodedNameAsBytes(), hri.getTable(),<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        System.currentTimeMillis(), mvcc, replicationScope);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    long trx = MultiVersionConcurrencyControl.NONE;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    try {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      trx = wal.append(hri, walKey, edit, false);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      if (sync) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        wal.sync(trx);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      }<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      // Call complete only here because these are markers only. They are not for clients to read.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      mvcc.complete(walKey.getWriteEntry());<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    } catch (IOException ioe) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      if (walKey.getWriteEntry() != null) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        mvcc.complete(walKey.getWriteEntry());<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      }<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      throw ioe;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    return walKey;<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">052</span>  private WALUtil() {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    // Shut down construction of this class.<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>  /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * Write the marker that a compaction has succeeded and is about to be committed.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   * This provides info to the HMaster to allow it to recover the compaction if this regionserver<a name="line.58"></a>
+<span class="sourceLineNo">059</span>   * dies in the middle. It also prevents the compaction from finishing if this regionserver has<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   * already lost its lease on the log.<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   *<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   * &lt;p&gt;This write is for internal use only. Not for external client consumption.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * @param mvcc Used by WAL to get sequence Id for the waledit.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  public static WALKeyImpl writeCompactionMarker(WAL wal,<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      NavigableMap&lt;byte[], Integer&gt; replicationScope, RegionInfo hri, final CompactionDescriptor c,<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      MultiVersionConcurrencyControl mvcc)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  throws IOException {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    WALKeyImpl walKey =<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        writeMarker(wal, replicationScope, hri, WALEdit.createCompaction(hri, c), mvcc);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    if (LOG.isTraceEnabled()) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      LOG.trace("Appended compaction marker " + TextFormat.shortDebugString(c));<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    return walKey;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<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>   * Write a flush marker indicating a start / abort or a complete of a region flush<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   *<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * &lt;p&gt;This write is for internal use only. Not for external client consumption.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public static WALKeyImpl writeFlushMarker(WAL wal, NavigableMap&lt;byte[], Integer&gt; replicationScope,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      RegionInfo hri, final FlushDescriptor f, boolean sync, MultiVersionConcurrencyControl mvcc)<a name="line.83"></a>
+<span class="sourceLineNo">084</span>          throws IOException {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    WALKeyImpl walKey = doFullAppendTransaction(wal, replicationScope, hri,<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        WALEdit.createFlushWALEdit(hri, f), mvcc, sync);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    if (LOG.isTraceEnabled()) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      LOG.trace("Appended flush marker " + TextFormat.shortDebugString(f));<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    return walKey;<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>  /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * Write a region open marker indicating that the region is opened.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * This write is for internal use only. Not for external client consumption.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  public static WALKeyImpl writeRegionEventMarker(WAL wal,<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      NavigableMap&lt;byte[], Integer&gt; replicationScope, RegionInfo hri,<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      final RegionEventDescriptor r, final MultiVersionConcurrencyControl mvcc)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  throws IOException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    WALKeyImpl walKey = writeMarker(wal, replicationScope, hri,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        WALEdit.createRegionEventWALEdit(hri, r), mvcc);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    if (LOG.isTraceEnabled()) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      LOG.trace("Appended region event marker " + TextFormat.shortDebugString(r));<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    return walKey;<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>   * Write a log marker that a bulk load has succeeded and is about to be committed.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * This write is for internal use only. Not for external client consumption.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * @param wal The log to write into.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * @param replicationScope The replication scope of the families in the HRegion<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * @param hri A description of the region in the table that we are bulk loading into.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * @param desc A protocol buffers based description of the client's bulk loading request<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * @return walKey with sequenceid filled out for this bulk load marker<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * @throws IOException We will throw an IOException if we can not append to the HLog.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public static WALKeyImpl writeBulkLoadMarkerAndSync(final WAL wal,<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      final NavigableMap&lt;byte[], Integer&gt; replicationScope, final RegionInfo hri,<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      final WALProtos.BulkLoadDescriptor desc, final MultiVersionConcurrencyControl mvcc)<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          throws IOException {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    WALKeyImpl walKey =<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        writeMarker(wal, replicationScope, hri, WALEdit.createBulkLoadEvent(hri, desc), mvcc);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    if (LOG.isTraceEnabled()) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      LOG.trace("Appended Bulk Load marker " + TextFormat.shortDebugString(desc));<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    return walKey;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private static WALKeyImpl writeMarker(final WAL wal,<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      final NavigableMap&lt;byte[], Integer&gt; replicationScope, final RegionInfo hri,<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      final WALEdit edit, final MultiVersionConcurrencyControl mvcc)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  throws IOException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // If sync == true in below, then timeout is not used; safe to pass UNSPECIFIED_TIMEOUT<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    return doFullAppendTransaction(wal, replicationScope, hri, edit, mvcc, true);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<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>   * A 'full' WAL transaction involves starting an mvcc transaction followed by an append,<a name="line.140"></a>
+<span class="sourceLineNo">141</span>   * an optional sync, and then a call to complete the mvcc transaction. This method does it all.<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   * Good for case of adding a single edit or marker to the WAL.<a name="line.142"></a>
+<span class="sourceLineNo">143</span>   *<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   * &lt;p&gt;This write is for internal use only. Not for external client consumption.<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   * @return WALKeyImpl that was added to the WAL.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  public static WALKeyImpl doFullAppendTransaction(final WAL wal,<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      final NavigableMap&lt;byte[], Integer&gt; replicationScope, final RegionInfo hri,<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      final WALEdit edit, final MultiVersionConcurrencyControl mvcc, final boolean sync)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  throws IOException {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    // TODO: Pass in current time to use?<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    WALKeyImpl walKey = new WALKeyImpl(hri.getEncodedNameAsBytes(), hri.getTable(),<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        System.currentTimeMillis(), mvcc, replicationScope);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    long trx = MultiVersionConcurrencyControl.NONE;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    try {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      trx = wal.append(hri, walKey, edit, false);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      if (sync) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        wal.sync(trx);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      // Call complete only here because these are markers only. They are not for clients to read.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      mvcc.complete(walKey.getWriteEntry());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    } catch (IOException ioe) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      if (walKey.getWriteEntry() != null) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        mvcc.complete(walKey.getWriteEntry());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      throw ioe;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    return walKey;<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>   * Blocksize returned here is 2x the default HDFS blocksize unless explicitly set in<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * Configuration. Works in tandem with hbase.regionserver.logroll.multiplier. See comment in<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * AbstractFSWAL in Constructor where we set blocksize and logrollsize for why.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   * @return Blocksize to use writing WALs.<a name="line.175"></a>
+<span class="sourceLineNo">176</span>   */<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  public static long getWALBlockSize(Configuration conf, FileSystem fs, Path dir)<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      throws IOException {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    return conf.getLong("hbase.regionserver.hlog.blocksize",<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        CommonFSUtils.getDefaultBlockSize(fs, dir) * 2);<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
index 69ebb17..bb0a0c6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
@@ -32,95 +32,106 @@
 <span class="sourceLineNo">024</span>import org.apache.hadoop.fs.Path;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.regionserver.wal.AsyncProtobufLogWriter;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.yetus.audience.InterfaceStability;<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>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoopGroup;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>/**<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.42"></a>
-<span class="sourceLineNo">043</span> */<a name="line.43"></a>
-<span class="sourceLineNo">044</span>@InterfaceAudience.Private<a name="line.44"></a>
-<span class="sourceLineNo">045</span>@InterfaceStability.Evolving<a name="line.45"></a>
-<span class="sourceLineNo">046</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  private static final Logger LOG = LoggerFactory.getLogger(AsyncFSWALProvider.class);<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  // Only public so classes back in regionserver.wal can access<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.53"></a>
-<span class="sourceLineNo">054</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.54"></a>
-<span class="sourceLineNo">055</span>     *         meet the needs of the given Writer implementation.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>     */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.57"></a>
-<span class="sourceLineNo">058</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  private EventLoopGroup eventLoopGroup;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @Override<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>        getWALDirectoryName(factory.factoryId),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        eventLoopGroup, channelClass);<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  @Override<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.75"></a>
-<span class="sourceLineNo">076</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    } else {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.81"></a>
-<span class="sourceLineNo">082</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      channelClass = NioSocketChannel.class;<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><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * public because of AsyncFSWAL. Should be package-private<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      boolean overwritable, EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throws IOException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    // Configuration already does caching for the Class lookup.<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    try {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoopGroup.class, Class.class)<a name="line.97"></a>
-<span class="sourceLineNo">098</span>          .newInstance(eventLoopGroup, channelClass);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      writer.init(fs, path, conf, overwritable);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      return writer;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    } catch (Exception e) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.103"></a>
-<span class="sourceLineNo">104</span>          "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.104"></a>
-<span class="sourceLineNo">105</span>          "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.105"></a>
-<span class="sourceLineNo">106</span>          "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>          "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      } else {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      throw new IOException("cannot get log writer", e);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>}<a name="line.115"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.regionserver.wal.WALUtil;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.CommonFSUtils;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.util.Pair;<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.apache.yetus.audience.InterfaceStability;<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.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.io.netty.channel.Channel;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoopGroup;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>/**<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>@InterfaceAudience.Private<a name="line.45"></a>
+<span class="sourceLineNo">046</span>@InterfaceStability.Evolving<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private static final Logger LOG = LoggerFactory.getLogger(AsyncFSWALProvider.class);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // Only public so classes back in regionserver.wal can access<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.54"></a>
+<span class="sourceLineNo">055</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.55"></a>
+<span class="sourceLineNo">056</span>     *         meet the needs of the given Writer implementation.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>     */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable, long blocksize)<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<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>  private EventLoopGroup eventLoopGroup;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        getWALDirectoryName(factory.factoryId),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        eventLoopGroup, channelClass);<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>  @Override<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      channelClass = NioSocketChannel.class;<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><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * Public because of AsyncFSWAL. Should be package-private<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      boolean overwritable, EventLoopGroup eventLoopGroup,<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    return createAsyncWriter(conf, fs, path, overwritable, WALUtil.getWALBlockSize(conf, fs, path),<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        eventLoopGroup, channelClass);<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>  /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * Public because of AsyncFSWAL. Should be package-private<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      boolean overwritable, long blocksize, EventLoopGroup eventLoopGroup,<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      Class&lt;? extends Channel&gt; channelClass) throws IOException {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    // Configuration already does caching for the Class lookup.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    try {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoopGroup.class, Class.class)<a name="line.108"></a>
+<span class="sourceLineNo">109</span>          .newInstance(eventLoopGroup, channelClass);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      writer.init(fs, path, conf, overwritable, blocksize);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      return writer;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    } catch (Exception e) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.114"></a>
+<span class="sourceLineNo">115</span>          "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.115"></a>
+<span class="sourceLineNo">116</span>          "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.116"></a>
+<span class="sourceLineNo">117</span>          "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      throw new IOException("cannot get log writer", e);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>}<a name="line.126"></a>
 
 
 


[17/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 4941a53..a82e052 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -281,10 +281,10 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>3612</td>
+<td>3613</td>
 <td>0</td>
 <td>0</td>
-<td>15867</td></tr></table></div>
+<td>15865</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -324,7575 +324,7585 @@
 <td>0</td>
 <td>4</td></tr>
 <tr class="b">
-<td><a href="#org.apache.hadoop.hbase.CellComparatorImpl.java">org/apache/hadoop/hbase/CellComparatorImpl.java</a></td>
+<td><a href="#org.apache.hadoop.hbase.CellComparator.java">org/apache/hadoop/hbase/CellComparator.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>1</td></tr>
 <tr class="a">
-<td><a href="#org.apache.hadoop.hbase.CellScanner.java">org/apache/hadoop/hbase/CellScanner.java</a></td>
+<td><a href="#org.apache.hadoop.hbase.CellComparatorImpl.java">org/apache/hadoop/hbase/CellComparatorImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
 <tr class="b">
+<td><a href="#org.apache.hadoop.hbase.CellScanner.java">org/apache/hadoop/hbase/CellScanner.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.CellUtil.java">org/apache/hadoop/hbase/CellUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>67</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.ChoreService.java">org/apache/hadoop/hbase/ChoreService.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.ClassFinder.java">org/apache/hadoop/hbase/ClassFinder.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.ClusterId.java">org/apache/hadoop/hbase/ClusterId.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.ClusterManager.java">org/apache/hadoop/hbase/ClusterManager.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.ClusterStatus.java">org/apache/hadoop/hbase/ClusterStatus.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.CompoundConfiguration.java">org/apache/hadoop/hbase/CompoundConfiguration.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.CoordinatedStateManager.java">org/apache/hadoop/hbase/CoordinatedStateManager.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.Coprocessor.java">org/apache/hadoop/hbase/Coprocessor.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.DistributedHBaseCluster.java">org/apache/hadoop/hbase/DistributedHBaseCluster.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.DoNotRetryIOException.java">org/apache/hadoop/hbase/DoNotRetryIOException.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.DroppedSnapshotException.java">org/apache/hadoop/hbase/DroppedSnapshotException.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.ExtendedCell.java">org/apache/hadoop/hbase/ExtendedCell.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.GenericTestUtils.java">org/apache/hadoop/hbase/GenericTestUtils.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.HBaseClassTestRuleChecker.java">org/apache/hadoop/hbase/HBaseClassTestRuleChecker.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.HBaseCluster.java">org/apache/hadoop/hbase/HBaseCluster.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.HBaseClusterManager.java">org/apache/hadoop/hbase/HBaseClusterManager.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.HBaseCommonTestingUtility.java">org/apache/hadoop/hbase/HBaseCommonTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.HBaseConfiguration.java">org/apache/hadoop/hbase/HBaseConfiguration.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.HBaseTestCase.java">org/apache/hadoop/hbase/HBaseTestCase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.HBaseTestingUtility.java">org/apache/hadoop/hbase/HBaseTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>259</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.HColumnDescriptor.java">org/apache/hadoop/hbase/HColumnDescriptor.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.HFilePerformanceEvaluation.java">org/apache/hadoop/hbase/HFilePerformanceEvaluation.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.HRegionInfo.java">org/apache/hadoop/hbase/HRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>55</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.HRegionLocation.java">org/apache/hadoop/hbase/HRegionLocation.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.HTableDescriptor.java">org/apache/hadoop/hbase/HTableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>36</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.HTestConst.java">org/apache/hadoop/hbase/HTestConst.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.HadoopShimsImpl.java">org/apache/hadoop/hbase/HadoopShimsImpl.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.HealthChecker.java">org/apache/hadoop/hbase/HealthChecker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.IndividualBytesFieldCell.java">org/apache/hadoop/hbase/IndividualBytesFieldCell.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.IntegrationTestBackupRestore.java">org/apache/hadoop/hbase/IntegrationTestBackupRestore.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.IntegrationTestBase.java">org/apache/hadoop/hbase/IntegrationTestBase.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.IntegrationTestDDLMasterFailover.java">org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>53</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.IntegrationTestIngest.java">org/apache/hadoop/hbase/IntegrationTestIngest.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.IntegrationTestIngestWithACL.java">org/apache/hadoop/hbase/IntegrationTestIngestWithACL.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.IntegrationTestIngestWithEncryption.java">org/apache/hadoop/hbase/IntegrationTestIngestWithEncryption.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.IntegrationTestIngestWithMOB.java">org/apache/hadoop/hbase/IntegrationTestIngestWithMOB.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.IntegrationTestIngestWithVisibilityLabels.java">org/apache/hadoop/hbase/IntegrationTestIngestWithVisibilityLabels.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.IntegrationTestManyRegions.java">org/apache/hadoop/hbase/IntegrationTestManyRegions.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.IntegrationTestMetaReplicas.java">org/apache/hadoop/hbase/IntegrationTestMetaReplicas.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.IntegrationTestRegionReplicaPerf.java">org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.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.IntegrationTestRegionReplicaReplication.java">org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.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.IntegrationTestingUtility.java">org/apache/hadoop/hbase/IntegrationTestingUtility.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.KeyValue.java">org/apache/hadoop/hbase/KeyValue.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>117</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.KeyValueTestUtil.java">org/apache/hadoop/hbase/KeyValueTestUtil.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.KeyValueUtil.java">org/apache/hadoop/hbase/KeyValueUtil.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.LocalHBaseCluster.java">org/apache/hadoop/hbase/LocalHBaseCluster.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.MetaMockingUtil.java">org/apache/hadoop/hbase/MetaMockingUtil.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.MetaMutationAnnotation.java">org/apache/hadoop/hbase/MetaMutationAnnotation.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.MetaTableAccessor.java">org/apache/hadoop/hbase/MetaTableAccessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>63</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.MiniHBaseCluster.java">org/apache/hadoop/hbase/MiniHBaseCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.MockRegionServerServices.java">org/apache/hadoop/hbase/MockRegionServerServices.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.MultithreadedTestUtil.java">org/apache/hadoop/hbase/MultithreadedTestUtil.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.NamespaceDescriptor.java">org/apache/hadoop/hbase/NamespaceDescriptor.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.NotAllMetaRegionsOnlineException.java">org/apache/hadoop/hbase/NotAllMetaRegionsOnlineException.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.NotServingRegionException.java">org/apache/hadoop/hbase/NotServingRegionException.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.PerformanceEvaluation.java">org/apache/hadoop/hbase/PerformanceEvaluation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>37</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.PerformanceEvaluationCommons.java">org/apache/hadoop/hbase/PerformanceEvaluationCommons.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.PrivateCellUtil.java">org/apache/hadoop/hbase/PrivateCellUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>67</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.QosTestHelper.java">org/apache/hadoop/hbase/QosTestHelper.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.RESTApiClusterManager.java">org/apache/hadoop/hbase/RESTApiClusterManager.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.RegionLoad.java">org/apache/hadoop/hbase/RegionLoad.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.RegionLocations.java">org/apache/hadoop/hbase/RegionLocations.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.RegionStateListener.java">org/apache/hadoop/hbase/RegionStateListener.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.ResourceChecker.java">org/apache/hadoop/hbase/ResourceChecker.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.ScanPerformanceEvaluation.java">org/apache/hadoop/hbase/ScanPerformanceEvaluation.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.ScheduledChore.java">org/apache/hadoop/hbase/ScheduledChore.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.Server.java">org/apache/hadoop/hbase/Server.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.ServerLoad.java">org/apache/hadoop/hbase/ServerLoad.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.ServerName.java">org/apache/hadoop/hbase/ServerName.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.SplitLogCounters.java">org/apache/hadoop/hbase/SplitLogCounters.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.SplitLogTask.java">org/apache/hadoop/hbase/SplitLogTask.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.StripeCompactionsPerformanceEvaluation.java">org/apache/hadoop/hbase/StripeCompactionsPerformanceEvaluation.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.TableDescriptors.java">org/apache/hadoop/hbase/TableDescriptors.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.TableInfoMissingException.java">org/apache/hadoop/hbase/TableInfoMissingException.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.TableName.java">org/apache/hadoop/hbase/TableName.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.TableNotDisabledException.java">org/apache/hadoop/hbase/TableNotDisabledException.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.TableNotEnabledException.java">org/apache/hadoop/hbase/TableNotEnabledException.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.TableNotFoundException.java">org/apache/hadoop/hbase/TableNotFoundException.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.TagType.java">org/apache/hadoop/hbase/TagType.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.TestCheckTestClasses.java">org/apache/hadoop/hbase/TestCheckTestClasses.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.TestClassFinder.java">org/apache/hadoop/hbase/TestClassFinder.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.TestClientClusterStatus.java">org/apache/hadoop/hbase/TestClientClusterStatus.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.TestClientOperationTimeout.java">org/apache/hadoop/hbase/TestClientOperationTimeout.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.TestClusterPortAssignment.java">org/apache/hadoop/hbase/TestClusterPortAssignment.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.TestFSTableDescriptorForceCreation.java">org/apache/hadoop/hbase/TestFSTableDescriptorForceCreation.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.TestGlobalMemStoreSize.java">org/apache/hadoop/hbase/TestGlobalMemStoreSize.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.TestHBaseConfiguration.java">org/apache/hadoop/hbase/TestHBaseConfiguration.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.TestHBaseTestingUtility.java">org/apache/hadoop/hbase/TestHBaseTestingUtility.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.TestHColumnDescriptor.java">org/apache/hadoop/hbase/TestHColumnDescriptor.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.TestHColumnDescriptorDefaultVersions.java">org/apache/hadoop/hbase/TestHColumnDescriptorDefaultVersions.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.TestHTableDescriptor.java">org/apache/hadoop/hbase/TestHTableDescriptor.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.TestIOFencing.java">org/apache/hadoop/hbase/TestIOFencing.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.TestInfoServers.java">org/apache/hadoop/hbase/TestInfoServers.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.TestJMXConnectorServer.java">org/apache/hadoop/hbase/TestJMXConnectorServer.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.TestKeyValue.java">org/apache/hadoop/hbase/TestKeyValue.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.TestLocalHBaseCluster.java">org/apache/hadoop/hbase/TestLocalHBaseCluster.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.TestMetaTableAccessor.java">org/apache/hadoop/hbase/TestMetaTableAccessor.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.TestMetaTableAccessorNoCluster.java">org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.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.TestMetaTableLocator.java">org/apache/hadoop/hbase/TestMetaTableLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>33</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMovedRegionsCleaner.java">org/apache/hadoop/hbase/TestMovedRegionsCleaner.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.TestMultiVersions.java">org/apache/hadoop/hbase/TestMultiVersions.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.TestNamespace.java">org/apache/hadoop/hbase/TestNamespace.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.TestNodeHealthCheckChore.java">org/apache/hadoop/hbase/TestNodeHealthCheckChore.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.TestPartialResultsFromClientSide.java">org/apache/hadoop/hbase/TestPartialResultsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>38</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestPerformanceEvaluation.java">org/apache/hadoop/hbase/TestPerformanceEvaluation.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.TestRegionRebalancing.java">org/apache/hadoop/hbase/TestRegionRebalancing.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.TestSerialization.java">org/apache/hadoop/hbase/TestSerialization.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.TestServerSideScanMetricsFromClientSide.java">org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.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.TestStochasticBalancerJmxMetrics.java">org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.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.TestTagRewriteCell.java">org/apache/hadoop/hbase/TestTagRewriteCell.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.TestTimeout.java">org/apache/hadoop/hbase/TestTimeout.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.TimestampTestBase.java">org/apache/hadoop/hbase/TimestampTestBase.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.UnknownRegionException.java">org/apache/hadoop/hbase/UnknownRegionException.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.Waiter.java">org/apache/hadoop/hbase/Waiter.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.ZKNamespaceManager.java">org/apache/hadoop/hbase/ZKNamespaceManager.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.ZNodeClearer.java">org/apache/hadoop/hbase/ZNodeClearer.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.backup.FailedArchiveException.java">org/apache/hadoop/hbase/backup/FailedArchiveException.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.backup.HFileArchiver.java">org/apache/hadoop/hbase/backup/HFileArchiver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupMerge.java">org/apache/hadoop/hbase/backup/TestBackupMerge.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.backup.TestHFileArchiving.java">org/apache/hadoop/hbase/backup/TestHFileArchiving.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.example.HFileArchiveManager.java">org/apache/hadoop/hbase/backup/example/HFileArchiveManager.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.backup.example.LongTermArchivingHFileCleaner.java">org/apache/hadoop/hbase/backup/example/LongTermArchivingHFileCleaner.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.backup.example.TableHFileArchiveTracker.java">org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.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.backup.example.TestZooKeeperTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.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.backup.example.ZKTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/ZKTableArchiveClient.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.backup.impl.BackupManager.java">org/apache/hadoop/hbase/backup/impl/BackupManager.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.backup.impl.BackupSystemTable.java">org/apache/hadoop/hbase/backup/impl/BackupSystemTable.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.chaos.actions.Action.java">org/apache/hadoop/hbase/chaos/actions/Action.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.chaos.actions.ChangeCompressionAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.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.chaos.actions.ChangeEncodingAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.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.chaos.actions.ChangeSplitPolicyAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.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.chaos.actions.ChangeVersionsAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.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.chaos.actions.RestartRandomDataNodeAction.java">org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.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.chaos.actions.RollingBatchRestartRsAction.java">org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.SplitAllRegionOfTableAction.java">org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.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.chaos.actions.TruncateTableAction.java">org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.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.chaos.factories.MasterKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.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.chaos.factories.MobNoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.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.chaos.factories.MobSlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MonkeyConstants.java">org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.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.chaos.factories.MonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.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.chaos.factories.NoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.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.chaos.factories.ServerKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.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.chaos.factories.SlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>42</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.StressAssignmentManagerMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey.java">org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.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.chaos.policies.PeriodicPolicy.java">org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.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.chaos.policies.TwoConcurrentActionPolicy.java">org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.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.client.AbstractClientScanner.java">org/apache/hadoop/hbase/client/AbstractClientScanner.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.client.AbstractResponse.java">org/apache/hadoop/hbase/client/AbstractResponse.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.client.Action.java">org/apache/hadoop/hbase/client/Action.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.client.Admin.java">org/apache/hadoop/hbase/client/Admin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>98</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Append.java">org/apache/hadoop/hbase/client/Append.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.client.AsyncAdmin.java">org/apache/hadoop/hbase/client/AsyncAdmin.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.client.AsyncAdminBuilder.java">org/apache/hadoop/hbase/client/AsyncAdminBuilder.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.client.AsyncAdminRequestRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncAdminRequestRetryingCaller.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.client.AsyncBatchRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.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.client.AsyncClientScanner.java">org/apache/hadoop/hbase/client/AsyncClientScanner.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.client.AsyncConnectionConfiguration.java">org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.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.client.AsyncConnectionImpl.java">org/apache/hadoop/hbase/client/AsyncConnectionImpl.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.client.AsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/AsyncHBaseAdmin.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.client.AsyncMasterRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncMasterRequestRpcRetryingCaller.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.client.AsyncMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncMetaRegionLocator.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.client.AsyncNonMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.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.client.AsyncProcess.java">org/apache/hadoop/hbase/client/AsyncProcess.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.client.AsyncProcessTask.java">org/apache/hadoop/hbase/client/AsyncProcessTask.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.client.AsyncRegionLocator.java">org/apache/hadoop/hbase/client/AsyncRegionLocator.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.client.AsyncRegistryFactory.java">org/apache/hadoop/hbase/client/AsyncRegistryFactory.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.client.AsyncRequestFuture.java">org/apache/hadoop/hbase/client/AsyncRequestFuture.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.client.AsyncRequestFutureImpl.java">org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCaller.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.client.AsyncRpcRetryingCallerFactory.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.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.client.AsyncScanSingleRegionRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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.client.AsyncServerRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncServerRequestRpcRetryingCaller.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.client.AsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncSingleRequestRpcRetryingCaller.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.client.AsyncTableImpl.java">org/apache/hadoop/hbase/client/AsyncTableImpl.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.client.AsyncTableResultScanner.java">org/apache/hadoop/hbase/client/AsyncTableResultScanner.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.client.BatchErrors.java">org/apache/hadoop/hbase/client/BatchErrors.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.client.BatchScanResultCache.java">org/apache/hadoop/hbase/client/BatchScanResultCache.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.client.BufferingScanResultConsumer.java">org/apache/hadoop/hbase/client/BufferingScanResultConsumer.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.client.CancellableRegionServerCallable.java">org/apache/hadoop/hbase/client/CancellableRegionServerCallable.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.client.ClientAsyncPrefetchScanner.java">org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.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.client.ClientIdGenerator.java">org/apache/hadoop/hbase/client/ClientIdGenerator.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.client.ClientScanner.java">org/apache/hadoop/hbase/client/ClientScanner.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.client.ClientServiceCallable.java">org/apache/hadoop/hbase/client/ClientServiceCallable.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.client.ClientSideRegionScanner.java">org/apache/hadoop/hbase/client/ClientSideRegionScanner.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.client.ClientSimpleScanner.java">org/apache/hadoop/hbase/client/ClientSimpleScanner.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.client.ClientUtil.java">org/apache/hadoop/hbase/client/ClientUtil.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.client.ColumnCountOnRowFilter.java">org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.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.client.ColumnFamilyDescriptor.java">org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>54</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.CompactType.java">org/apache/hadoop/hbase/client/CompactType.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.client.CompleteScanResultCache.java">org/apache/hadoop/hbase/client/CompleteScanResultCache.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.client.ConnectionFactory.java">org/apache/hadoop/hbase/client/ConnectionFactory.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.client.ConnectionImplementation.java">org/apache/hadoop/hbase/client/ConnectionImplementation.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.client.ConnectionUtils.java">org/apache/hadoop/hbase/client/ConnectionUtils.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.client.DelayingRunner.java">org/apache/hadoop/hbase/client/DelayingRunner.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.client.Delete.java">org/apache/hadoop/hbase/client/Delete.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.client.Get.java">org/apache/hadoop/hbase/client/Get.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.client.HBaseAdmin.java">org/apache/hadoop/hbase/client/HBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>72</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HConnectionTestingUtility.java">org/apache/hadoop/hbase/client/HConnectionTestingUtility.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.client.HRegionLocator.java">org/apache/hadoop/hbase/client/HRegionLocator.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.client.HTable.java">org/apache/hadoop/hbase/client/HTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>44</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HTableMultiplexer.java">org/apache/hadoop/hbase/client/HTableMultiplexer.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.client.ImmutableHColumnDescriptor.java">org/apache/hadoop/hbase/client/ImmutableHColumnDescriptor.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.client.ImmutableHRegionInfo.java">org/apache/hadoop/hbase/client/ImmutableHRegionInfo.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.client.ImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/ImmutableHTableDescriptor.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.client.MasterCallable.java">org/apache/hadoop/hbase/client/MasterCallable.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.client.MasterCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/MasterCoprocessorRpcChannelImpl.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.client.MasterKeepAliveConnection.java">org/apache/hadoop/hbase/client/MasterKeepAliveConnection.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.client.MetaCache.java">org/apache/hadoop/hbase/client/MetaCache.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.client.MetricsConnection.java">org/apache/hadoop/hbase/client/MetricsConnection.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.client.MultiAction.java">org/apache/hadoop/hbase/client/MultiAction.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.client.MultiResponse.java">org/apache/hadoop/hbase/client/MultiResponse.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.client.MultiServerCallable.java">org/apache/hadoop/hbase/client/MultiServerCallable.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.client.Mutation.java">org/apache/hadoop/hbase/client/Mutation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.NoOpRetryableCallerInterceptor.java">org/apache/hadoop/hbase/client/NoOpRetryableCallerInterceptor.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.client.NoncedRegionServerCallable.java">org/apache/hadoop/hbase/client/NoncedRegionServerCallable.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.client.Operation.java">org/apache/hadoop/hbase/client/Operation.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.client.PackagePrivateFieldAccessor.java">org/apache/hadoop/hbase/client/PackagePrivateFieldAccessor.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.client.PreemptiveFastFailInterceptor.java">org/apache/hadoop/hbase/client/PreemptiveFastFailInterceptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Put.java">org/apache/hadoop/hbase/client/Put.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.client.Query.java">org/apache/hadoop/hbase/client/Query.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.client.QuotaStatusCalls.java">org/apache/hadoop/hbase/client/QuotaStatusCalls.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.client.RawAsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>88</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionAdminServiceCallable.java">org/apache/hadoop/hbase/client/RegionAdminServiceCallable.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.client.RegionCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannel.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.client.RegionCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannelImpl.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.client.RegionCoprocessorServiceExec.java">org/apache/hadoop/hbase/client/RegionCoprocessorServiceExec.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.client.RegionInfo.java">org/apache/hadoop/hbase/client/RegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>55</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfoBuilder.java">org/apache/hadoop/hbase/client/RegionInfoBuilder.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.client.RegionInfoDisplay.java">org/apache/hadoop/hbase/client/RegionInfoDisplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionLocator.java">org/apache/hadoop/hbase/client/RegionLocator.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.client.RegionReplicaUtil.java">org/apache/hadoop/hbase/client/RegionReplicaUtil.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.client.RegionServerCallable.java">org/apache/hadoop/hbase/client/RegionServerCallable.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.client.RegionServerCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionServerCoprocessorRpcChannelImpl.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.client.RequestController.java">org/apache/hadoop/hbase/client/RequestController.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.client.RequestControllerFactory.java">org/apache/hadoop/hbase/client/RequestControllerFactory.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.client.Result.java">org/apache/hadoop/hbase/client/Result.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ResultBoundedCompletionService.java">org/apache/hadoop/hbase/client/ResultBoundedCompletionService.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.client.ResultScanner.java">org/apache/hadoop/hbase/client/ResultScanner.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.client.RetriesExhaustedException.java">org/apache/hadoop/hbase/client/RetriesExhaustedException.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.client.RetriesExhaustedWithDetailsException.java">org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.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.client.RetryingCallerInterceptor.java">org/apache/hadoop/hbase/client/RetryingCallerInterceptor.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.client.ReversedClientScanner.java">org/apache/hadoop/hbase/client/ReversedClientScanner.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.client.ReversedScannerCallable.java">org/apache/hadoop/hbase/client/ReversedScannerCallable.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.client.RowAccess.java">org/apache/hadoop/hbase/client/RowAccess.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.client.RowMutations.java">org/apache/hadoop/hbase/client/RowMutations.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.client.RpcRetryingCaller.java">org/apache/hadoop/hbase/client/RpcRetryingCaller.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.client.RpcRetryingCallerImpl.java">org/apache/hadoop/hbase/client/RpcRetryingCallerImpl.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.client.RpcRetryingCallerWithReadReplicas.java">org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.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.client.Scan.java">org/apache/hadoop/hbase/client/Scan.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.client.ScannerCallable.java">org/apache/hadoop/hbase/client/ScannerCallable.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.client.ScannerCallableWithReplicas.java">org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.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.client.SecureBulkLoadClient.java">org/apache/hadoop/hbase/client/SecureBulkLoadClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ServerStatisticTracker.java">org/apache/hadoop/hbase/client/ServerStatisticTracker.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.client.ShortCircuitMasterConnection.java">org/apache/hadoop/hbase/client/ShortCircuitMasterConnection.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.client.SimpleRequestController.java">org/apache/hadoop/hbase/client/SimpleRequestController.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.client.SimpleScanResultConsumer.java">org/apache/hadoop/hbase/client/SimpleScanResultConsumer.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.client.SyncCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/SyncCoprocessorRpcChannel.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.client.Table.java">org/apache/hadoop/hbase/client/Table.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.client.TableDescriptor.java">org/apache/hadoop/hbase/client/TableDescriptor.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.client.TableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TableDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>32</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TableState.java">org/apache/hadoop/hbase/client/TableState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>35</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin1.java">org/apache/hadoop/hbase/client/TestAdmin1.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>38</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin2.java">org/apache/hadoop/hbase/client/TestAdmin2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAppendFromClientSide.java">org/apache/hadoop/hbase/client/TestAppendFromClientSide.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.client.TestAsyncClusterAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.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.client.TestAsyncNamespaceAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.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.client.TestAsyncProcess.java">org/apache/hadoop/hbase/client/TestAsyncProcess.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncQuotaAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.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.client.TestAsyncRegionAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.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.client.TestAsyncRegionAdminApi2.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.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.client.TestAsyncReplicationAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.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.client.TestAsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.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.client.TestAsyncTable.java">org/apache/hadoop/hbase/client/TestAsyncTable.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.client.TestAsyncTableAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.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.client.TestAsyncTableAdminApi2.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.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.client.TestAsyncTableAdminApi3.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi3.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.client.TestAsyncTableScanMetrics.java">org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.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.client.TestAsyncTableScanner.java">org/apache/hadoop/hbase/client/TestAsyncTableScanner.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.client.TestAttributes.java">org/apache/hadoop/hbase/client/TestAttributes.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.client.TestAvoidCellReferencesIntoShippedBlocks.java">org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.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.client.TestBlockEvictionFromClient.java">org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.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.client.TestBufferedMutator.java">org/apache/hadoop/hbase/client/TestBufferedMutator.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.client.TestCheckAndMutate.java">org/apache/hadoop/hbase/client/TestCheckAndMutate.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.client.TestClientExponentialBackoff.java">org/apache/hadoop/hbase/client/TestClientExponentialBackoff.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.client.TestClientNoCluster.java">org/apache/hadoop/hbase/client/TestClientNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>33</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientPushback.java">org/apache/hadoop/hbase/client/TestClientPushback.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.client.TestClientScanner.java">org/apache/hadoop/hbase/client/TestClientScanner.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.client.TestClientTimeouts.java">org/apache/hadoop/hbase/client/TestClientTimeouts.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.client.TestCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.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.client.TestColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.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.client.TestConnectionImplementation.java">org/apache/hadoop/hbase/client/TestConnectionImplementation.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.client.TestEnableTable.java">org/apache/hadoop/hbase/client/TestEnableTable.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.client.TestFastFail.java">org/apache/hadoop/hbase/client/TestFastFail.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.client.TestFromClientSide.java">org/apache/hadoop/hbase/client/TestFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>71</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSide3.java">org/apache/hadoop/hbase/client/TestFromClientSide3.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSideNoCodec.java">org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.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.client.TestFromClientSideScanExcpetion.java">org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.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.client.TestGet.java">org/apache/hadoop/hbase/client/TestGet.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.client.TestHBaseAdminNoCluster.java">org/apache/hadoop/hbase/client/TestHBaseAdminNoCluster.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.client.TestHTableMultiplexer.java">org/apache/hadoop/hbase/client/TestHTableMultiplexer.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.client.TestHTableMultiplexerFlushCache.java">org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.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.client.TestImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/TestImmutableHTableDescriptor.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.client.TestIncrementsFromClientSide.java">org/apache/hadoop/hbase/client/TestIncrementsFromClientSide.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.client.TestIntraRowPagination.java">org/apache/hadoop/hbase/client/TestIntraRowPagination.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.client.TestLeaseRenewal.java">org/apache/hadoop/hbase/client/TestLeaseRenewal.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.client.TestLimitedScanWithFilter.java">org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.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.client.TestMetaCache.java">org/apache/hadoop/hbase/client/TestMetaCache.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.client.TestMetricsConnection.java">org/apache/hadoop/hbase/client/TestMetricsConnection.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.client.TestMobCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.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.client.TestMultiParallel.java">org/apache/hadoop/hbase/client/TestMultiParallel.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.client.TestMultipleTimestamps.java">org/apache/hadoop/hbase/client/TestMultipleTimestamps.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>30</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestOperation.java">org/apache/hadoop/hbase/client/TestOperation.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.client.TestPutDeleteEtcCellIteration.java">org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.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.client.TestPutWithDelete.java">org/apache/hadoop/hbase/client/TestPutWithDelete.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.client.TestRawAsyncTableLimitedScanWithFilter.java">org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.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.client.TestRawAsyncTableScan.java">org/apache/hadoop/hbase/client/TestRawAsyncTableScan.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.client.TestReplicaWithCluster.java">org/apache/hadoop/hbase/client/TestReplicaWithCluster.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.client.TestReplicasClient.java">org/apache/hadoop/hbase/client/TestReplicasClient.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.client.TestRestoreSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.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.client.TestResult.java">org/apache/hadoop/hbase/client/TestResult.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.client.TestResultSizeEstimation.java">org/apache/hadoop/hbase/client/TestResultSizeEstimation.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.client.TestReversedScannerCallable.java">org/apache/hadoop/hbase/client/TestReversedScannerCallable.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.client.TestScan.java">org/apache/hadoop/hbase/client/TestScan.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.client.TestScannerTimeout.java">org/apache/hadoop/hbase/client/TestScannerTimeout.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.client.TestScannersFromClientSide.java">org/apache/hadoop/hbase/client/TestScannersFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestScannersFromClientSide2.java">org/apache/hadoop/hbase/client/TestScannersFromClientSide2.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.client.TestServerBusyException.java">org/apache/hadoop/hbase/client/TestServerBusyException.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.client.TestSmallReversedScanner.java">org/apache/hadoop/hbase/client/TestSmallReversedScanner.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.client.TestSnapshotCloneIndependence.java">org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.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.client.TestSnapshotFromAdmin.java">org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.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.client.TestSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestSnapshotFromClient.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.client.TestSnapshotMetadata.java">org/apache/hadoop/hbase/client/TestSnapshotMetadata.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.client.TestSplitOrMergeStatus.java">org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.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.client.TestTableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.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.client.TestTableFavoredNodes.java">org/apache/hadoop/hbase/client/TestTableFavoredNodes.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.client.TestTableSnapshotScanner.java">org/apache/hadoop/hbase/client/TestTableSnapshotScanner.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.client.TestTimestampsFilter.java">org/apache/hadoop/hbase/client/TestTimestampsFilter.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.client.VersionInfoUtil.java">org/apache/hadoop/hbase/client/VersionInfoUtil.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.client.backoff.ClientBackoffPolicyFactory.java">org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.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.client.backoff.ServerStatistics.java">org/apache/hadoop/hbase/client/backoff/ServerStatistics.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.client.coprocessor.AggregationClient.java">org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>94</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.coprocessor.AggregationHelper.java">org/apache/hadoop/hbase/client/coprocessor/AggregationHelper.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.client.coprocessor.AsyncAggregationClient.java">org/apache/hadoop/hbase/client/coprocessor/AsyncAggregationClient.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.client.coprocessor.BigDecimalColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/BigDecimalColumnInterpreter.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.client.coprocessor.DoubleColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/DoubleColumnInterpreter.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.client.coprocessor.LongColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/LongColumnInterpreter.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.client.coprocessor.RowProcessorClient.java">org/apache/hadoop/hbase/client/coprocessor/RowProcessorClient.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.client.coprocessor.package-info.java">org/apache/hadoop/hbase/client/coprocessor/package-info.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.client.example.RefreshHFilesClient.java">org/apache/hadoop/hbase/client/example/RefreshHFilesClient.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.client.locking.EntityLock.java">org/apache/hadoop/hbase/client/locking/EntityLock.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.client.locking.TestEntityLocks.java">org/apache/hadoop/hbase/client/locking/TestEntityLocks.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.client.metrics.ScanMetrics.java">org/apache/hadoop/hbase/client/metrics/ScanMetrics.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.client.metrics.ServerSideScanMetrics.java">org/apache/hadoop/hbase/client/metrics/ServerSideScanMetrics.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.client.replication.ReplicationAdmin.java">org/apache/hadoop/hbase/client/replication/ReplicationAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>33</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil.java">org/apache/hadoop/hbase/client/replication/ReplicationPeerConfigUtil.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.client.replication.TableCFs.java">org/apache/hadoop/hbase/client/replication/TableCFs.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.client.replication.TestReplicationAdmin.java">org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.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.codec.BaseDecoder.java">org/apache/hadoop/hbase/codec/BaseDecoder.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.codec.BaseEncoder.java">org/apache/hadoop/hbase/codec/BaseEncoder.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.codec.CellCodec.java">org/apache/hadoop/hbase/codec/CellCodec.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.codec.CellCodecWithTags.java">org/apache/hadoop/hbase/codec/CellCodecWithTags.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.codec.CodecPerformance.java">org/apache/hadoop/hbase/codec/CodecPerformance.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.codec.MessageCodec.java">org/apache/hadoop/hbase/codec/MessageCodec.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.codec.TestCellCodecWithTags.java">org/apache/hadoop/hbase/codec/TestCellCodecWithTags.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.codec.TestCellMessageCodec.java">org/apache/hadoop/hbase/codec/TestCellMessageCodec.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.codec.TestKeyValueCodecWithTags.java">org/apache/hadoop/hbase/codec/TestKeyValueCodecWithTags.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.conf.ConfigurationManager.java">org/apache/hadoop/hbase/conf/ConfigurationManager.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.constraint.BaseConstraint.java">org/apache/hadoop/hbase/constraint/BaseConstraint.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.constraint.CheckConfigurationConstraint.java">org/apache/hadoop/hbase/constraint/CheckConfigurationConstraint.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.constraint.Constraint.java">org/apache/hadoop/hbase/constraint/Constraint.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.constraint.ConstraintException.java">org/apache/hadoop/hbase/constraint/ConstraintException.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.constraint.ConstraintProcessor.java">org/apache/hadoop/hbase/constraint/ConstraintProcessor.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.constraint.Constraints.java">org/apache/hadoop/hbase/constraint/Constraints.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.constraint.TestConstraint.java">org/apache/hadoop/hbase/constraint/TestConstraint.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.constraint.TestConstraints.java">org/apache/hadoop/hbase/constraint/TestConstraints.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.constraint.package-info.java">org/apache/hadoop/hbase/constraint/package-info.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>61</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.coordination.SplitLogManagerCoordination.java">org/apache/hadoop/hbase/coordination/SplitLogManagerCoordination.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.coordination.SplitLogWorkerCoordination.java">org/apache/hadoop/hbase/coordination/SplitLogWorkerCoordination.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.coordination.ZKSplitLogManagerCoordination.java">org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.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.coordination.ZkCoordinatedStateManager.java">org/apache/hadoop/hbase/coordination/ZkCoordinatedStateManager.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.coordination.ZkSplitLogWorkerCoordination.java">org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.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.coprocessor.AggregateImplementation.java">org/apache/hadoop/hbase/coprocessor/AggregateImplementation.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.coprocessor.BaseEnvironment.java">org/apache/hadoop/hbase/coprocessor/BaseEnvironment.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.coprocessor.BaseRowProcessorEndpoint.java">org/apache/hadoop/hbase/coprocessor/BaseRowProcessorEndpoint.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.coprocessor.BulkLoadObserver.java">org/apache/hadoop/hbase/coprocessor/BulkLoadObserver.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.coprocessor.ColumnAggregationEndpoint.java">org/apache/hadoop/hbase/coprocessor/ColumnAggregationEndpoint.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.coprocessor.ColumnAggregationEndpointNullResponse.java">org/apache/hadoop/hbase/coprocessor/ColumnAggregationEndpointNullResponse.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.coprocessor.ColumnAggregationEndpointWithErrors.java">org/apache/hadoop/hbase/coprocessor/ColumnAggregationEndpointWithErrors.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.coprocessor.ColumnInterpreter.java">org/apache/hadoop/hbase/coprocessor/ColumnInterpreter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.coprocessor.CoprocessorException.java">org/apache/hadoop/hbase/coprocessor/CoprocessorException.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.coprocessor.CoprocessorHost.java">org/apache/hadoop/hbase/coprocessor/CoprocessorHost.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.coprocessor.CoprocessorService.java">org/apache/hadoop/hbase/coprocessor/CoprocessorService.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.coprocessor.CoprocessorServiceBackwardCompatiblity.java">org/apache/hadoop/hbase/coprocessor/CoprocessorServiceBackwardCompatiblity.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.coprocessor.CoreCoprocessor.java">org/apache/hadoop/hbase/coprocessor/CoreCoprocessor.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.coprocessor.EndpointObserver.java">org/apache/hadoop/hbase/coprocessor/EndpointObserver.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.coprocessor.Export.java">org/apache/hadoop/hbase/coprocessor/Export.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.coprocessor.HasMasterServices.java">org/apache/hadoop/hbase/coprocessor/HasMasterServices.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.coprocessor.HasRegionServerServices.java">org/apache/hadoop/hbase/coprocessor/HasRegionServerServices.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.coprocessor.MasterCoprocessor.java">org/apache/hadoop/hbase/coprocessor/MasterCoprocessor.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.coprocessor.MasterObserver.java">org/apache/hadoop/hbase/coprocessor/MasterObserver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.coprocessor.MetricsCoprocessor.java">org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.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.coprocessor.MultiRowMutationEndpoint.java">org/apache/hadoop/hbase/coprocessor/MultiRowMutationEndpoint.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.coprocessor.ObserverContext.java">org/apache/hadoop/hbase/coprocessor/ObserverContext.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.coprocessor.ObserverContextImpl.java">org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.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.coprocessor.ProtobufCoprocessorService.java">org/apache/hadoop/hbase/coprocessor/ProtobufCoprocessorService.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.coprocessor.RegionCoprocessor.java">org/apache/hadoop/hbase/coprocessor/RegionCoprocessor.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.coprocessor.RegionCoprocessorEnvironment.java">org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.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.coprocessor.RegionObserver.java">org/apache/hadoop/hbase/coprocessor/RegionObserver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>22</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessor.java">org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessor.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.coprocessor.RegionServerObserver.java">org/apache/hadoop/hbase/coprocessor/RegionServerObserver.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.coprocessor.SimpleRegionObserver.java">org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.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.coprocessor.SingletonCoprocessorService.java">org/apache/hadoop/hbas

<TRUNCATED>

[15/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/backup/util/BackupUtils.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/util/BackupUtils.html b/devapidocs/org/apache/hadoop/hbase/backup/util/BackupUtils.html
index 459dc8e..0775e45 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/util/BackupUtils.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/util/BackupUtils.html
@@ -911,7 +911,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getHistory</h4>
-<pre>public static&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/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.607">getHistory</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&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/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.608">getHistory</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                           int&nbsp;n,
                                           org.apache.hadoop.fs.Path&nbsp;backupRootPath,
                                           <a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.Filter.html" title="interface in org.apache.hadoop.hbase.backup">BackupInfo.Filter</a>...&nbsp;filters)
@@ -928,7 +928,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>loadBackupInfo</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.629">loadBackupInfo</a>(org.apache.hadoop.fs.Path&nbsp;backupRootPath,
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/BackupInfo.html" title="class in org.apache.hadoop.hbase.backup">BackupInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.630">loadBackupInfo</a>(org.apache.hadoop.fs.Path&nbsp;backupRootPath,
                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;backupId,
                                         org.apache.hadoop.fs.FileSystem&nbsp;fs)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -944,7 +944,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createRestoreRequest</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/RestoreRequest.html" title="class in org.apache.hadoop.hbase.backup">RestoreRequest</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.656">createRestoreRequest</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;backupRootDir,
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/backup/RestoreRequest.html" title="class in org.apache.hadoop.hbase.backup">RestoreRequest</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.657">createRestoreRequest</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;backupRootDir,
                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;backupId,
                                                   boolean&nbsp;check,
                                                   <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&nbsp;fromTables,
@@ -970,7 +970,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>validate</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.665">validate</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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest</a>&gt;&nbsp;backupManifestMap,
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.666">validate</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/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/backup/impl/BackupManifest.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupManifest</a>&gt;&nbsp;backupManifestMap,
                                org.apache.hadoop.conf.Configuration&nbsp;conf)
                         throws <a href="https://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>
@@ -985,7 +985,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getBulkOutputDir</h4>
-<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.693">getBulkOutputDir</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;tableName,
+<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.694">getBulkOutputDir</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;tableName,
                                                          org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                          boolean&nbsp;deleteOnExit)
                                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1001,7 +1001,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getBulkOutputDir</h4>
-<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.707">getBulkOutputDir</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;tableName,
+<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.708">getBulkOutputDir</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;tableName,
                                                          org.apache.hadoop.conf.Configuration&nbsp;conf)
                                                   throws <a href="https://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>
@@ -1016,7 +1016,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileNameCompatibleString</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/backup/util/BackupUtils.html#line.711">getFileNameCompatibleString</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</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/backup/util/BackupUtils.html#line.712">getFileNameCompatibleString</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
 </li>
 </ul>
 <a name="failed-int-">
@@ -1025,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>failed</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.715">failed</a>(int&nbsp;result)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.716">failed</a>(int&nbsp;result)</pre>
 </li>
 </ul>
 <a name="succeeded-int-">
@@ -1034,7 +1034,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>succeeded</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.719">succeeded</a>(int&nbsp;result)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.720">succeeded</a>(int&nbsp;result)</pre>
 </li>
 </ul>
 <a name="createLoader-org.apache.hadoop.conf.Configuration-">
@@ -1043,7 +1043,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createLoader</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.tool">LoadIncrementalHFiles</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.723">createLoader</a>(org.apache.hadoop.conf.Configuration&nbsp;config)
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.tool">LoadIncrementalHFiles</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/backup/util/BackupUtils.html#line.724">createLoader</a>(org.apache.hadoop.conf.Configuration&nbsp;config)
                                           throws <a href="https://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>
@@ -1057,7 +1057,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>findMostRecentBackupId</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/backup/util/BackupUtils.html#line.744">findMostRecentBackupId</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;backupIds)</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/backup/util/BackupUtils.html#line.745">findMostRecentBackupId</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;backupIds)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/class-use/ByteBufferKeyValue.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ByteBufferKeyValue.html b/devapidocs/org/apache/hadoop/hbase/class-use/ByteBufferKeyValue.html
index 4924972..211b4dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ByteBufferKeyValue.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ByteBufferKeyValue.html
@@ -122,7 +122,7 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>private int</code></td>
+<td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparatorImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-org.apache.hadoop.hbase.ByteBufferKeyValue-">compareByteBufferKeyValue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;left,
                          <a href="../../../../../org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a>&nbsp;right)</code>
 <div class="block">Specialized comparator for the ByteBufferKeyValue type exclusivesly.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html b/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
index b842300..4a6ec6b 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/Cell.html
@@ -808,12 +808,26 @@ service.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+       <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell,
+       boolean&nbsp;ignoreSequenceid)</code>
+<div class="block">Compare cells.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparatorImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
        <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b,
        boolean&nbsp;ignoreSequenceid)</code>
 <div class="block">Compare cells.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">CellComparatorImpl.MetaCellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparatorImpl.MetaCellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
+       <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b,
+       boolean&nbsp;ignoreSequenceid)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#compare-org.apache.hadoop.hbase.CellComparator-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator,
@@ -1080,9 +1094,7 @@ service.</div>
 <tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparatorImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparatorImpl.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
-                 <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>
-<div class="block">Compares cell's timestamps in DESCENDING order.</div>
-</td>
+                 <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static int</code></td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 8a35374..2c472af 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -550,23 +550,23 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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.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/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/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/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/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 ae0124e..ce950b0 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/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>
+<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 4aaab52..c825b39 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -183,14 +183,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.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/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/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/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/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/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/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 340ec84..7ebec9e 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -274,11 +274,11 @@
 <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/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.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 29a79fd..7600159 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -349,9 +349,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.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>
+<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 f1985a3..a07a1d8 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -293,8 +293,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.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/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/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index ad40e69..eb945fb 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -197,8 +197,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 6b8dd75..3d42576 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -346,10 +346,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/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/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/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 550d779..0fa081d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -209,8 +209,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.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 3e1ea7f..9eb46aa 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -125,8 +125,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/ec5d5242/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 17db7fb..161b0f4 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -441,19 +441,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/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/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/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/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/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/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/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/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/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/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 bbbf765..b9eb757 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -212,11 +212,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 81ff477..da8242e 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -229,13 +229,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/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/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/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/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 3c4e00b..cea34ef 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -703,20 +703,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/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/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/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/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/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.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/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 858ccf6..3bd22b5 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
index 52c3413..e316a28 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
@@ -107,7 +107,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.238">AbstractFSWAL.WalProps</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.243">AbstractFSWAL.WalProps</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>
@@ -193,7 +193,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>encodedName2HighestSequenceId</h4>
-<pre>public 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/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.244">encodedName2HighestSequenceId</a></pre>
+<pre>public 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/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.249">encodedName2HighestSequenceId</a></pre>
 <div class="block">Map the encoded region name to the highest sequence id. Contain all the regions it has
  entries of</div>
 </li>
@@ -204,7 +204,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>logSize</h4>
-<pre>public final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.250">logSize</a></pre>
+<pre>public final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.255">logSize</a></pre>
 <div class="block">The log file size. Notice that the size may not be accurate if we do asynchronous close in
  sub classes.</div>
 </li>
@@ -223,7 +223,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WalProps</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.252">WalProps</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/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;encodedName2HighestSequenceId,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.257">WalProps</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/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;encodedName2HighestSequenceId,
                 long&nbsp;logSize)</pre>
 </li>
 </ul>


[12/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 51f7d2b..10115ef 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -532,14 +532,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/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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.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/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/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/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.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/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
index 7064720..e7c005e 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.51">AsyncFSWALProvider.AsyncWriter</a>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.52">AsyncFSWALProvider.AsyncWriter</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a></pre>
 </li>
 </ul>
@@ -135,10 +135,11 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWri
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
     org.apache.hadoop.fs.Path&nbsp;path,
     org.apache.hadoop.conf.Configuration&nbsp;c,
-    boolean&nbsp;overwritable)</code>&nbsp;</td>
+    boolean&nbsp;overwritable,
+    long&nbsp;blocksize)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -176,16 +177,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWri
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">
+<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>init</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#line.57">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#line.58">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
           org.apache.hadoop.fs.Path&nbsp;path,
           org.apache.hadoop.conf.Configuration&nbsp;c,
-          boolean&nbsp;overwritable)
+          boolean&nbsp;overwritable,
+          long&nbsp;blocksize)
    throws <a href="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/util/CommonFSUtils.StreamLacksCapabilityException.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils.StreamLacksCapabilityException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
index a49c481..76cf0b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10};
+var methods = {"i0":9,"i1":9,"i2":10,"i3":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";
@@ -120,7 +120,7 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre>@InterfaceAudience.Private
  @InterfaceStability.Evolving
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.46">AsyncFSWALProvider</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.47">AsyncFSWALProvider</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AbstractFSWALProvider</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a>&gt;</pre>
 <div class="block">A WAL provider that use <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>AsyncFSWAL</code></a>.</div>
 </li>
@@ -233,14 +233,26 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
                  boolean&nbsp;overwritable,
                  org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                  <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.apache.hbase.thirdparty.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>
-<div class="block">public because of AsyncFSWAL.</div>
+<div class="block">Public because of AsyncFSWAL.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup-java.lang.Class-">createAsyncWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                 org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                 org.apache.hadoop.fs.Path&nbsp;path,
+                 boolean&nbsp;overwritable,
+                 long&nbsp;blocksize,
+                 org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
+                 <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.apache.hbase.thirdparty.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>
+<div class="block">Public because of AsyncFSWAL.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createWAL--">createWAL</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#doInit-org.apache.hadoop.conf.Configuration-">doInit</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
@@ -286,7 +298,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <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/wal/AsyncFSWALProvider.html#line.48">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.49">LOG</a></pre>
 </li>
 </ul>
 <a name="eventLoopGroup">
@@ -295,7 +307,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>eventLoopGroup</h4>
-<pre>private&nbsp;org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.61">eventLoopGroup</a></pre>
+<pre>private&nbsp;org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.62">eventLoopGroup</a></pre>
 </li>
 </ul>
 <a name="channelClass">
@@ -304,7 +316,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockListLast">
 <li class="blockList">
 <h4>channelClass</h4>
-<pre>private&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;? extends org.apache.hbase.thirdparty.io.netty.channel.Channel&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.63">channelClass</a></pre>
+<pre>private&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;? extends org.apache.hbase.thirdparty.io.netty.channel.Channel&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.64">channelClass</a></pre>
 </li>
 </ul>
 </li>
@@ -321,7 +333,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncFSWALProvider</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.46">AsyncFSWALProvider</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.47">AsyncFSWALProvider</a>()</pre>
 </li>
 </ul>
 </li>
@@ -338,7 +350,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>createWAL</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.65">createWAL</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.66">createWAL</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>
@@ -354,7 +366,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>doInit</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.74">doInit</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.75">doInit</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                throws <a href="https://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>
@@ -367,17 +379,38 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <a name="createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup-java.lang.Class-">
 <!--   -->
 </a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createAsyncWriter</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.91">createAsyncWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                                                               org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                                                               org.apache.hadoop.fs.Path&nbsp;path,
+                                                               boolean&nbsp;overwritable,
+                                                               org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
+                                                               <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.apache.hbase.thirdparty.io.netty.channel.Channel&gt;&nbsp;channelClass)
+                                                        throws <a href="https://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">Public because of AsyncFSWAL. Should be package-private</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup-java.lang.Class-">
+<!--   -->
+</a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createAsyncWriter</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.90">createAsyncWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.101">createAsyncWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                                org.apache.hadoop.fs.Path&nbsp;path,
                                                                boolean&nbsp;overwritable,
+                                                               long&nbsp;blocksize,
                                                                org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                                                                <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.apache.hbase.thirdparty.io.netty.channel.Channel&gt;&nbsp;channelClass)
                                                         throws <a href="https://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">public because of AsyncFSWAL. Should be package-private</div>
+<div class="block">Public because of AsyncFSWAL. Should be package-private</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html b/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
index d530fa4..aeae902 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.44">FSHLogProvider.Writer</a>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.46">FSHLogProvider.Writer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a></pre>
 </li>
 </ul>
@@ -135,10 +135,11 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.h
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">init</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
     org.apache.hadoop.fs.Path&nbsp;path,
     org.apache.hadoop.conf.Configuration&nbsp;c,
-    boolean&nbsp;overwritable)</code>&nbsp;</td>
+    boolean&nbsp;overwritable,
+    long&nbsp;blocksize)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -176,16 +177,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.h
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-">
+<a name="init-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-boolean-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>init</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#line.50">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html#line.52">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
           org.apache.hadoop.fs.Path&nbsp;path,
           org.apache.hadoop.conf.Configuration&nbsp;c,
-          boolean&nbsp;overwritable)
+          boolean&nbsp;overwritable,
+          long&nbsp;blocksize)
    throws <a href="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/util/CommonFSUtils.StreamLacksCapabilityException.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils.StreamLacksCapabilityException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.html b/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.html
index 5a30b9d..9ff7c1f 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/FSHLogProvider.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":10};
+var methods = {"i0":10,"i1":9,"i2":9,"i3":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";
@@ -120,7 +120,7 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre>@InterfaceAudience.Private
  @InterfaceStability.Evolving
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.39">FSHLogProvider</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.41">FSHLogProvider</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AbstractFSWALProvider</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog</a>&gt;</pre>
 <div class="block">A WAL provider that use <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSHLog</code></a>.</div>
 </li>
@@ -227,10 +227,20 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
             org.apache.hadoop.fs.FileSystem&nbsp;fs,
             org.apache.hadoop.fs.Path&nbsp;path,
             boolean&nbsp;overwritable)</code>
-<div class="block">public because of FSHLog.</div>
+<div class="block">Public because of FSHLog.</div>
 </td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.html#createWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-">createWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+            org.apache.hadoop.fs.FileSystem&nbsp;fs,
+            org.apache.hadoop.fs.Path&nbsp;path,
+            boolean&nbsp;overwritable,
+            long&nbsp;blocksize)</code>
+<div class="block">Public because of FSHLog.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.html#doInit-org.apache.hadoop.conf.Configuration-">doInit</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
@@ -276,7 +286,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.41">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.43">LOG</a></pre>
 </li>
 </ul>
 </li>
@@ -293,7 +303,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FSHLogProvider</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.39">FSHLogProvider</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.41">FSHLogProvider</a>()</pre>
 </li>
 </ul>
 </li>
@@ -310,12 +320,31 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriter</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.57">createWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.59">createWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                  org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                  org.apache.hadoop.fs.Path&nbsp;path,
                                                  boolean&nbsp;overwritable)
                                           throws <a href="https://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">public because of FSHLog. Should be package-private</div>
+<div class="block">Public because of FSHLog. Should be package-private</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createWriter</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.67">createWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                                                 org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                                                 org.apache.hadoop.fs.Path&nbsp;path,
+                                                 boolean&nbsp;overwritable,
+                                                 long&nbsp;blocksize)
+                                          throws <a href="https://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">Public because of FSHLog. Should be package-private</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
@@ -328,7 +357,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>createWAL</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.89">createWAL</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.100">createWAL</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>
@@ -344,7 +373,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doInit</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.97">doInit</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/FSHLogProvider.html#line.108">doInit</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                throws <a href="https://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/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/WALFactory.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/WALFactory.html b/devapidocs/org/apache/hadoop/hbase/wal/WALFactory.html
index 92e78ec..ed1e28c 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/WALFactory.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/WALFactory.html
@@ -322,7 +322,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html#createRecoveredEditsWriter-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">createRecoveredEditsWriter</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                           org.apache.hadoop.fs.Path&nbsp;path)</code>
-<div class="block">should be package-private, visible for recovery testing.</div>
+<div class="block">Should be package-private, visible for recovery testing.</div>
 </td>
 </tr>
 <tr id="i9" class="rowColor">
@@ -528,7 +528,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>singleton</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.362">singleton</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.363">singleton</a></pre>
 </li>
 </ul>
 <a name="SINGLETON_ID">
@@ -537,7 +537,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SINGLETON_ID</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/wal/WALFactory.html#line.363">SINGLETON_ID</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/wal/WALFactory.html#line.364">SINGLETON_ID</a></pre>
 </li>
 </ul>
 </li>
@@ -764,8 +764,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                           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">Create a writer for the WAL.
+ Uses defaults.
  <p>
- should be package-private. public only for tests and
+ Should be package-private. public only for tests and
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/Compressor.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>Compressor</code></a></div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -781,10 +782,11 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createRecoveredEditsWriter</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.353">createRecoveredEditsWriter</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.354">createRecoveredEditsWriter</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                      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">should be package-private, visible for recovery testing.</div>
+<div class="block">Should be package-private, visible for recovery testing.
+ Uses defaults.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>an overwritable writer for recovered edits. caller should close.</dd>
@@ -799,7 +801,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getInstance</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.366">getInstance</a>(org.apache.hadoop.conf.Configuration&nbsp;configuration)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.367">getInstance</a>(org.apache.hadoop.conf.Configuration&nbsp;configuration)</pre>
 </li>
 </ul>
 <a name="createReader-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.conf.Configuration-">
@@ -808,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>createReader</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.Reader.html" title="interface in org.apache.hadoop.hbase.wal">WAL.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.390">createReader</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.Reader.html" title="interface in org.apache.hadoop.hbase.wal">WAL.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.391">createReader</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                       org.apache.hadoop.fs.Path&nbsp;path,
                                       org.apache.hadoop.conf.Configuration&nbsp;configuration)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -828,7 +830,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createReader</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.Reader.html" title="interface in org.apache.hadoop.hbase.wal">WAL.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.400">createReader</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.Reader.html" title="interface in org.apache.hadoop.hbase.wal">WAL.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.401">createReader</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                org.apache.hadoop.fs.Path&nbsp;path,
                                org.apache.hadoop.conf.Configuration&nbsp;configuration,
                                <a href="../../../../../org/apache/hadoop/hbase/util/CancelableProgressable.html" title="interface in org.apache.hadoop.hbase.util">CancelableProgressable</a>&nbsp;reporter)
@@ -849,7 +851,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createReaderIgnoreCustomClass</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.Reader.html" title="interface in org.apache.hadoop.hbase.wal">WAL.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.411">createReaderIgnoreCustomClass</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.Reader.html" title="interface in org.apache.hadoop.hbase.wal">WAL.Reader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.412">createReaderIgnoreCustomClass</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                        org.apache.hadoop.fs.Path&nbsp;path,
                                                        org.apache.hadoop.conf.Configuration&nbsp;configuration)
                                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -870,11 +872,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createRecoveredEditsWriter</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.420">createRecoveredEditsWriter</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.422">createRecoveredEditsWriter</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                      org.apache.hadoop.fs.Path&nbsp;path,
                                                      org.apache.hadoop.conf.Configuration&nbsp;configuration)
                                               throws <a href="https://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">If you already have a WALFactory, you should favor the instance method.</div>
+<div class="block">If you already have a WALFactory, you should favor the instance method.
+ Uses defaults.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a Writer that will overwrite files. Caller must close.</dd>
@@ -889,11 +892,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createWALWriter</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.431">createWALWriter</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.434">createWALWriter</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                  org.apache.hadoop.fs.Path&nbsp;path,
                                                  org.apache.hadoop.conf.Configuration&nbsp;configuration)
                                           throws <a href="https://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">If you already have a WALFactory, you should favor the instance method.</div>
+<div class="block">If you already have a WALFactory, you should favor the instance method.
+ Uses defaults.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a writer that won't overwrite files. Caller must close.</dd>
@@ -908,7 +912,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALProvider</h4>
-<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.437">getWALProvider</a>()</pre>
+<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.440">getWALProvider</a>()</pre>
 </li>
 </ul>
 <a name="getMetaWALProvider--">
@@ -917,7 +921,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMetaWALProvider</h4>
-<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.441">getMetaWALProvider</a>()</pre>
+<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/WALFactory.html#line.444">getMetaWALProvider</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html b/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
index 066fc1e..98265c0 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
@@ -138,7 +138,19 @@
                  boolean&nbsp;overwritable,
                  org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                  <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.apache.hbase.thirdparty.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>
-<div class="block">public because of AsyncFSWAL.</div>
+<div class="block">Public because of AsyncFSWAL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncFSWALProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup-java.lang.Class-">createAsyncWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                 org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                 org.apache.hadoop.fs.Path&nbsp;path,
+                 boolean&nbsp;overwritable,
+                 long&nbsp;blocksize,
+                 org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
+                 <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.apache.hbase.thirdparty.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>
+<div class="block">Public because of AsyncFSWAL.</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/class-use/FSHLogProvider.Writer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/class-use/FSHLogProvider.Writer.html b/devapidocs/org/apache/hadoop/hbase/wal/class-use/FSHLogProvider.Writer.html
index c384c08..17268ba 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/class-use/FSHLogProvider.Writer.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/class-use/FSHLogProvider.Writer.html
@@ -136,7 +136,17 @@
             org.apache.hadoop.fs.FileSystem&nbsp;fs,
             org.apache.hadoop.fs.Path&nbsp;path,
             boolean&nbsp;overwritable)</code>
-<div class="block">public because of FSHLog.</div>
+<div class="block">Public because of FSHLog.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">FSHLogProvider.Writer</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FSHLogProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/FSHLogProvider.html#createWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-long-">createWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+            org.apache.hadoop.fs.FileSystem&nbsp;fs,
+            org.apache.hadoop.fs.Path&nbsp;path,
+            boolean&nbsp;overwritable,
+            long&nbsp;blocksize)</code>
+<div class="block">Public because of FSHLog.</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/org/apache/hadoop/hbase/wal/class-use/WALProvider.Writer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/class-use/WALProvider.Writer.html b/devapidocs/org/apache/hadoop/hbase/wal/class-use/WALProvider.Writer.html
index af224d2..15d8832 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/class-use/WALProvider.Writer.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/class-use/WALProvider.Writer.html
@@ -196,7 +196,7 @@
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a></code></td>
 <td class="colLast"><span class="typeNameLabel">WALFactory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/WALFactory.html#createRecoveredEditsWriter-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">createRecoveredEditsWriter</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                           org.apache.hadoop.fs.Path&nbsp;path)</code>
-<div class="block">should be package-private, visible for recovery testing.</div>
+<div class="block">Should be package-private, visible for recovery testing.</div>
 </td>
 </tr>
 <tr class="rowColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 c0e28b4..9ec5b35 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -189,8 +189,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/CellComparator.html b/devapidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
index 5685dfa..31cd218 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/CellComparator.html
@@ -59,78 +59,86 @@
 <span class="sourceLineNo">051</span>  int compare(Cell leftCell, Cell rightCell);<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>   * Lexographically compares the rows of two cells.<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * @param leftCell the left hand side cell<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * @param rightCell the right hand side cell<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   *         cells are equal<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   */<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  int compareRows(Cell leftCell, Cell rightCell);<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   * stopRow in Scan.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   * @param cell the cell<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @param bytes the byte[] representing the row to be compared with<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @param offset the offset of the byte[]<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * @param length the length of the byte[]<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   *         cells are equal<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  int compareRows(Cell cell, byte[] bytes, int offset, int length);<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  /**<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   * Lexographically compares the two cells excluding the row part. It compares family, qualifier,<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   * timestamp and the type<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   * @param leftCell the left hand side cell<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * @param rightCell the right hand side cell<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   *         cells are equal<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  int compareWithoutRow(Cell leftCell, Cell rightCell);<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  /**<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * Lexographically compares the families of the two cells<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param leftCell the left hand side cell<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @param rightCell the right hand side cell<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   *         cells are equal<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  int compareFamilies(Cell leftCell, Cell rightCell);<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * Lexographically compares the qualifiers of the two cells<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param leftCell the left hand side cell<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @param rightCell the right hand side cell<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   *         cells are equal<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  int compareQualifiers(Cell leftCell, Cell rightCell);<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * a store file.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   * @param leftCell the left hand side cell<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * @param rightCell the right hand side cell<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   *         timestamp 0 if both timestamps are equal<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  int compareTimestamps(Cell leftCell, Cell rightCell);<a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  /**<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   * a store file.<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * @param leftCellts the left cell's timestamp<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * @param rightCellts the right cell's timestamp<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   *         timestamp 0 if both timestamps are equal<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  int compareTimestamps(long leftCellts, long rightCellts);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>}<a name="line.125"></a>
+<span class="sourceLineNo">054</span>   * Compare cells.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * @param ignoreSequenceid True if we are to compare the key portion only and ignore<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * the sequenceid. Set to false to compare key and consider sequenceid.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * @return 0 if equal, -1 if a &amp;lt; b, and +1 if a &amp;gt; b.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  int compare(Cell leftCell, Cell rightCell, boolean ignoreSequenceid);<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>   * Lexographically compares the rows of two cells.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * @param leftCell the left hand side cell<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * @param rightCell the right hand side cell<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   *         cells are equal<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  int compareRows(Cell leftCell, Cell rightCell);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * stopRow in Scan.<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * @param cell the cell<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * @param bytes the byte[] representing the row to be compared with<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   * @param offset the offset of the byte[]<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   * @param length the length of the byte[]<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   *         cells are equal<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  int compareRows(Cell cell, byte[] bytes, int offset, int length);<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * Lexographically compares the two cells excluding the row part. It compares family, qualifier,<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * timestamp and the type<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @param leftCell the left hand side cell<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * @param rightCell the right hand side cell<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   *         cells are equal<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  int compareWithoutRow(Cell leftCell, Cell rightCell);<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>   * Lexographically compares the families of the two cells<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * @param leftCell the left hand side cell<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * @param rightCell the right hand side cell<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   *         cells are equal<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  int compareFamilies(Cell leftCell, Cell rightCell);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  /**<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * Lexographically compares the qualifiers of the two cells<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * @param leftCell the left hand side cell<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   * @param rightCell the right hand side cell<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   * @return greater than 0 if leftCell is bigger, less than 0 if rightCell is bigger, 0 if both<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   *         cells are equal<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  int compareQualifiers(Cell leftCell, Cell rightCell);<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * a store file.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * @param leftCell the left hand side cell<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * @param rightCell the right hand side cell<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   *         timestamp 0 if both timestamps are equal<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  int compareTimestamps(Cell leftCell, Cell rightCell);<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>   * Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * when we iterate over a memstore and newer versions are the first we trip over when reading from<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * a store file.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @param leftCellts the left cell's timestamp<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * @param rightCellts the right cell's timestamp<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp -1 if left's timestamp &amp;gt; right's<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   *         timestamp 0 if both timestamps are equal<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  int compareTimestamps(long leftCellts, long rightCellts);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>}<a name="line.133"></a>
 
 
 


[19/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 9a3be99..0978d66 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -1895,6 +1895,10 @@
 <dd>
 <div class="block">Lexographically compares two cells.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare(Cell, Cell, boolean)</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a></dt>
+<dd>
+<div class="block">Compare cells.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CellUtil.html#compare-org.apache.hadoop.hbase.CellComparator-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compare(CellComparator, Cell, byte[], int, int)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CellUtil.html" title="class in org.apache.hadoop.hbase">CellUtil</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/apidocs/org/apache/hadoop/hbase/CellComparator.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/CellComparator.html b/apidocs/org/apache/hadoop/hbase/CellComparator.html
index 77d9568..b9da729 100644
--- a/apidocs/org/apache/hadoop/hbase/CellComparator.html
+++ b/apidocs/org/apache/hadoop/hbase/CellComparator.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":17};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":17};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -138,19 +138,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell,
+       boolean&nbsp;ignoreSequenceid)</code>
+<div class="block">Compare cells.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareFamilies-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareFamilies</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the families of the two cells</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareQualifiers-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareQualifiers</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the qualifiers of the two cells</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compareRows</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
            byte[]&nbsp;bytes,
@@ -160,35 +168,35 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
  stopRow in Scan.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
            <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the rows of two cells.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Compares cell's timestamps in DESCENDING order.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-long-long-">compareTimestamps</a></span>(long&nbsp;leftCellts,
                  long&nbsp;rightCellts)</code>
 <div class="block">Compares cell's timestamps in DESCENDING order.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/CellComparator.html#compareWithoutRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareWithoutRow</a></span>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the two cells excluding the row part.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>static <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/CellComparator.html#getInstance--">getInstance</a></span>()</code>
 <div class="block">A comparator for ordering cells in user-space tables.</div>
@@ -252,13 +260,32 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 </dl>
 </li>
 </ul>
+<a name="compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compare</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.59">compare</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+            <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell,
+            boolean&nbsp;ignoreSequenceid)</pre>
+<div class="block">Compare cells.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ignoreSequenceid</code> - True if we are to compare the key portion only and ignore
+ the sequenceid. Set to false to compare key and consider sequenceid.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>0 if equal, -1 if a &lt; b, and +1 if a &gt; b.</dd>
+</dl>
+</li>
+</ul>
 <a name="compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.60">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.68">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                 <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the rows of two cells.</div>
 <dl>
@@ -277,7 +304,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareRows</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.72">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.80">compareRows</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                 byte[]&nbsp;bytes,
                 int&nbsp;offset,
                 int&nbsp;length)</pre>
@@ -301,7 +328,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareWithoutRow</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.82">compareWithoutRow</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.90">compareWithoutRow</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the two cells excluding the row part. It compares family, qualifier,
  timestamp and the type</div>
@@ -321,7 +348,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareFamilies</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.91">compareFamilies</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.99">compareFamilies</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                     <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the families of the two cells</div>
 <dl>
@@ -340,7 +367,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareQualifiers</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.100">compareQualifiers</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.108">compareQualifiers</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Lexographically compares the qualifiers of the two cells</div>
 <dl>
@@ -359,7 +386,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTimestamps</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.112">compareTimestamps</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.120">compareTimestamps</a>(<a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                       <a href="../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</pre>
 <div class="block">Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of
  newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found
@@ -381,7 +408,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compareTimestamps</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.124">compareTimestamps</a>(long&nbsp;leftCellts,
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/CellComparator.html#line.132">compareTimestamps</a>(long&nbsp;leftCellts,
                       long&nbsp;rightCellts)</pre>
 <div class="block">Compares cell's timestamps in DESCENDING order. The below older timestamps sorting ahead of
  newer timestamps looks wrong but it is intentional. This way, newer timestamps are first found

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/Cell.html b/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
index b755439..5cca62a 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/Cell.html
@@ -313,6 +313,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compare-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-">compare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
+       <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell,
+       boolean&nbsp;ignoreSequenceid)</code>
+<div class="block">Compare cells.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#compare-org.apache.hadoop.hbase.CellComparator-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compare</a></span>(<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;left,
@@ -324,7 +332,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#compareColumns-org.apache.hadoop.hbase.Cell-byte:A-int-int-int-int-">compareColumns</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
               byte[]&nbsp;right,
@@ -335,7 +343,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Compares the cell's column (family and qualifier) with the given byte[]</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#compareFamilies-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compareFamilies</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                byte[]&nbsp;right,
@@ -344,14 +352,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Compares the cell's family with the given byte[]</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compareFamilies-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareFamilies</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the families of the two cells</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#compareQualifiers-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compareQualifiers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                  byte[]&nbsp;right,
@@ -360,14 +368,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Compares the cell's qualifier with the given byte[]</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compareQualifiers-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareQualifiers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the qualifiers of the two cells</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-byte:A-int-int-">compareRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
            byte[]&nbsp;bytes,
@@ -377,28 +385,28 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  stopRow in Scan.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compareRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
            <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the rows of two cells.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compareTimestamps-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareTimestamps</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Compares cell's timestamps in DESCENDING order.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellComparator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellComparator.html#compareWithoutRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">compareWithoutRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;leftCell,
                  <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;rightCell)</code>
 <div class="block">Lexographically compares the two cells excluding the row part.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyFamilyTo-org.apache.hadoop.hbase.Cell-byte:A-int-">copyFamilyTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
             byte[]&nbsp;destination,
@@ -406,7 +414,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the family to the given byte[]</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyFamilyTo-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-">copyFamilyTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
             <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;destination,
@@ -414,7 +422,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the family to the given bytebuffer</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyQualifierTo-org.apache.hadoop.hbase.Cell-byte:A-int-">copyQualifierTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                byte[]&nbsp;destination,
@@ -422,7 +430,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the qualifier to the given byte[]</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyQualifierTo-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-">copyQualifierTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                <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;destination,
@@ -430,13 +438,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the qualifier to the given bytebuffer</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyRow-org.apache.hadoop.hbase.Cell-">copyRow</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">Copies the row to a new byte[]</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyRowTo-org.apache.hadoop.hbase.Cell-byte:A-int-">copyRowTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
          byte[]&nbsp;destination,
@@ -444,7 +452,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the row to the given byte[]</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyRowTo-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-">copyRowTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
          <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;destination,
@@ -452,7 +460,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the row to the given bytebuffer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyTagTo-org.apache.hadoop.hbase.Cell-byte:A-int-">copyTagTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
          byte[]&nbsp;destination,
@@ -462,7 +470,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyTagTo-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-">copyTagTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
          <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;destination,
@@ -472,7 +480,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyValueTo-org.apache.hadoop.hbase.Cell-byte:A-int-">copyValueTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
            byte[]&nbsp;destination,
@@ -480,7 +488,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the value to the given byte[]</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#copyValueTo-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-">copyValueTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
            <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;destination,
@@ -488,7 +496,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Copies the value to the given bytebuffer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#createCell-org.apache.hadoop.hbase.Cell-byte:A-">createCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
           byte[]&nbsp;tags)</code>
@@ -497,7 +505,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#createCell-org.apache.hadoop.hbase.Cell-byte:A-byte:A-">createCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
           byte[]&nbsp;value,
@@ -507,7 +515,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#createCell-org.apache.hadoop.hbase.Cell-java.util.List-">createCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
           <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.Tag&gt;&nbsp;tags)</code>
@@ -516,18 +524,18 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#createCellScanner-org.apache.hadoop.hbase.Cell:A-">createCellScanner</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>[]&nbsp;cellArray)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#equals-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">equals</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
       <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b)</code>
 <div class="block">equals</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#equalsIgnoreMvccVersion-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">equalsIgnoreMvccVersion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
                        <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b)</code>
@@ -536,7 +544,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#estimatedHeapSizeOf-org.apache.hadoop.hbase.Cell-">estimatedHeapSizeOf</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -544,7 +552,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#estimatedSerializedSizeOf-org.apache.hadoop.hbase.Cell-">estimatedSerializedSizeOf</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -552,7 +560,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#estimatedSerializedSizeOfKey-org.apache.hadoop.hbase.Cell-">estimatedSerializedSizeOfKey</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -560,7 +568,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#fillFamilyRange-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.util.ByteRange-">fillFamilyRange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;range)</code>
@@ -569,7 +577,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#fillQualifierRange-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.util.ByteRange-">fillQualifierRange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                   <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;range)</code>
@@ -578,7 +586,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#fillRowRange-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.util.ByteRange-">fillRowRange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
             <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;range)</code>
@@ -587,7 +595,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#fillTagRange-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.util.ByteRange-">fillTagRange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
             <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;range)</code>
@@ -596,7 +604,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#fillValueRange-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.util.ByteRange-">fillValueRange</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
               <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&nbsp;range)</code>
@@ -605,7 +613,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#findCommonPrefixInFlatKey-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-boolean-boolean-">findCommonPrefixInFlatKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c1,
                          <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c2,
@@ -616,11 +624,11 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </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"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getCellKeyAsString-org.apache.hadoop.hbase.Cell-">getCellKeyAsString</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 class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getCellKeySerializedAsKeyValueKey-org.apache.hadoop.hbase.Cell-">getCellKeySerializedAsKeyValueKey</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -628,7 +636,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <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></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getQualifierBufferShallowCopy-org.apache.hadoop.hbase.Cell-">getQualifierBufferShallowCopy</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -636,14 +644,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static byte</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getRowByte-org.apache.hadoop.hbase.Cell-int-">getRowByte</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
           int&nbsp;index)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static org.apache.hadoop.hbase.Tag</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getTag-org.apache.hadoop.hbase.Cell-byte-">getTag</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
       byte&nbsp;type)</code>
@@ -653,7 +661,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getTagArray-org.apache.hadoop.hbase.Cell-">getTagArray</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -661,7 +669,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>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;org.apache.hadoop.hbase.Tag&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getTags-org.apache.hadoop.hbase.Cell-">getTags</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -670,7 +678,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </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/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#getValueBufferShallowCopy-org.apache.hadoop.hbase.Cell-">getValueBufferShallowCopy</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -678,11 +686,11 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isDelete-org.apache.hadoop.hbase.Cell-">isDelete</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 class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isDeleteColumnOrFamily-org.apache.hadoop.hbase.Cell-">isDeleteColumnOrFamily</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -690,7 +698,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isDeleteColumns-org.apache.hadoop.hbase.Cell-">isDeleteColumns</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -698,7 +706,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isDeleteColumnVersion-org.apache.hadoop.hbase.Cell-">isDeleteColumnVersion</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -706,7 +714,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isDeleteFamily-org.apache.hadoop.hbase.Cell-">isDeleteFamily</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -714,7 +722,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isDeleteFamilyVersion-org.apache.hadoop.hbase.Cell-">isDeleteFamilyVersion</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -722,7 +730,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isDeleteType-org.apache.hadoop.hbase.Cell-">isDeleteType</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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -730,17 +738,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#isPut-org.apache.hadoop.hbase.Cell-">isPut</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 class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingColumn-org.apache.hadoop.hbase.Cell-byte:A-byte:A-">matchingColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
               byte[]&nbsp;fam,
               byte[]&nbsp;qual)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingColumn-org.apache.hadoop.hbase.Cell-byte:A-int-int-byte:A-int-int-">matchingColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
               byte[]&nbsp;fam,
@@ -754,17 +762,17 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingColumn-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
               <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingFamily-org.apache.hadoop.hbase.Cell-byte:A-">matchingFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
               byte[]&nbsp;buf)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingFamily-org.apache.hadoop.hbase.Cell-byte:A-int-int-">matchingFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
               byte[]&nbsp;buf,
@@ -775,12 +783,12 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingFamily-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
               <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingQualifier-org.apache.hadoop.hbase.Cell-byte:A-">matchingQualifier</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                  byte[]&nbsp;buf)</code>
@@ -788,7 +796,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  byte[] are equal</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingQualifier-org.apache.hadoop.hbase.Cell-byte:A-int-int-">matchingQualifier</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                  byte[]&nbsp;buf,
@@ -799,12 +807,12 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingQualifier-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingQualifier</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                  <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingRow-org.apache.hadoop.hbase.Cell-byte:A-">matchingRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
            byte[]&nbsp;buf)</code>
@@ -814,14 +822,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingRow-org.apache.hadoop.hbase.Cell-byte:A-int-int-">matchingRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
            byte[]&nbsp;buf,
            int&nbsp;offset,
            int&nbsp;length)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingRow-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
            <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>
@@ -831,36 +839,36 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingRowColumn-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingRowColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                  <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>
 <div class="block">Compares the row and column of two keyvalues for equality</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingRowColumnBytes-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingRowColumnBytes</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
                       <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingRows-org.apache.hadoop.hbase.Cell-byte:A-">matchingRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
             byte[]&nbsp;buf)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingRows-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingRows</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
             <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>
 <div class="block">Compares the row of two keyvalues for equality</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingTimestamp-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingTimestamp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
                  <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingType-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingType</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;a,
             <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;b)</code>
@@ -869,24 +877,24 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingValue-org.apache.hadoop.hbase.Cell-byte:A-">matchingValue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
              byte[]&nbsp;buf)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingValue-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-">matchingValue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
              <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#matchingValue-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-int-int-">matchingValue</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;left,
              <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;right,
              int&nbsp;lvlength,
              int&nbsp;rvlength)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#setSequenceId-org.apache.hadoop.hbase.Cell-long-">setSequenceId</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
              long&nbsp;seqId)</code>
@@ -895,7 +903,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#setTimestamp-org.apache.hadoop.hbase.Cell-byte:A-int-">setTimestamp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
             byte[]&nbsp;ts,
@@ -905,7 +913,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#setTimestamp-org.apache.hadoop.hbase.Cell-long-">setTimestamp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
             long&nbsp;ts)</code>
@@ -914,14 +922,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </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"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#toString-org.apache.hadoop.hbase.Cell-boolean-">toString</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
         boolean&nbsp;verbose)</code>
 <div class="block">Returns a string representation of the cell</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#updateLatestStamp-org.apache.hadoop.hbase.Cell-byte:A-int-">updateLatestStamp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                  byte[]&nbsp;ts,
@@ -931,7 +939,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#updateLatestStamp-org.apache.hadoop.hbase.Cell-long-">updateLatestStamp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                  long&nbsp;ts)</code>
@@ -940,7 +948,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#writeFlatKey-org.apache.hadoop.hbase.Cell-java.io.OutputStream-">writeFlatKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out)</code>
@@ -949,7 +957,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#writeQualifierSkippingBytes-java.io.DataOutputStream-org.apache.hadoop.hbase.Cell-int-int-">writeQualifierSkippingBytes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html?is-external=true" title="class or interface in java.io">DataOutputStream</a>&nbsp;out,
                            <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
@@ -960,7 +968,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#writeRowKeyExcludingCommon-org.apache.hadoop.hbase.Cell-short-int-java.io.DataOutputStream-">writeRowKeyExcludingCommon</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                           short&nbsp;rLen,
@@ -971,7 +979,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">CellUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/CellUtil.html#writeRowSkippingBytes-java.io.DataOutputStream-org.apache.hadoop.hbase.Cell-short-int-">writeRowSkippingBytes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutputStream.html?is-external=true" title="class or interface in java.io">DataOutputStream</a>&nbsp;out,
                      <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,


[21/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.


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

Branch: refs/heads/asf-site
Commit: ec5d5242a2b3f0d3cb5a499fb89296345c536f0f
Parents: 71ce3ea
Author: jenkins <bu...@apache.org>
Authored: Wed May 16 18:49:23 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Wed May 16 18:49:23 2018 +0000

----------------------------------------------------------------------
 apache_hbase_reference_guide.pdf                | 26586 ++++++------
 apidocs/index-all.html                          |     4 +
 .../org/apache/hadoop/hbase/CellComparator.html |    57 +-
 .../org/apache/hadoop/hbase/class-use/Cell.html |   172 +-
 .../org/apache/hadoop/hbase/CellComparator.html |   152 +-
 book.html                                       |     4 +-
 checkstyle-aggregate.html                       | 38564 +++++++++--------
 checkstyle.rss                                  |    26 +-
 devapidocs/constant-values.html                 |     6 +-
 devapidocs/index-all.html                       |    49 +-
 .../org/apache/hadoop/hbase/CellComparator.html |    57 +-
 .../CellComparatorImpl.MetaCellComparator.html  |    65 +-
 .../apache/hadoop/hbase/CellComparatorImpl.html |   100 +-
 .../impl/IncrementalTableBackupClient.html      |    10 +-
 .../hadoop/hbase/backup/package-tree.html       |     4 +-
 .../hadoop/hbase/backup/util/BackupUtils.html   |    22 +-
 .../hbase/class-use/ByteBufferKeyValue.html     |     2 +-
 .../org/apache/hadoop/hbase/class-use/Cell.html |    18 +-
 .../hadoop/hbase/client/package-tree.html       |    22 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |     8 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     4 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     4 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     2 +-
 .../hbase/master/balancer/package-tree.html     |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     2 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../hadoop/hbase/monitoring/package-tree.html   |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    14 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     6 +-
 .../hadoop/hbase/quotas/package-tree.html       |     6 +-
 .../hadoop/hbase/regionserver/package-tree.html |    16 +-
 .../regionserver/querymatcher/package-tree.html |     4 +-
 .../wal/AbstractFSWAL.WalProps.html             |     8 +-
 .../hbase/regionserver/wal/AbstractFSWAL.html   |   232 +-
 .../wal/AbstractProtobufLogWriter.html          |    32 +-
 .../hbase/regionserver/wal/AsyncFSWAL.html      |     2 +-
 .../wal/AsyncProtobufLogWriter.html             |     4 +-
 .../hadoop/hbase/regionserver/wal/FSHLog.html   |     2 +-
 .../regionserver/wal/ProtobufLogWriter.html     |     4 +-
 .../wal/SecureAsyncProtobufLogWriter.html       |     4 +-
 .../wal/SecureProtobufLogWriter.html            |     4 +-
 .../hadoop/hbase/regionserver/wal/WALUtil.html  |    60 +-
 .../hbase/regionserver/wal/package-tree.html    |     2 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |     2 +-
 .../hbase/security/access/package-tree.html     |     4 +-
 .../hadoop/hbase/security/package-tree.html     |     4 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 ...nFSUtils.StreamLacksCapabilityException.html |    15 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../wal/AsyncFSWALProvider.AsyncWriter.html     |    14 +-
 .../hadoop/hbase/wal/AsyncFSWALProvider.html    |    57 +-
 .../hadoop/hbase/wal/FSHLogProvider.Writer.html |    14 +-
 .../apache/hadoop/hbase/wal/FSHLogProvider.html |    47 +-
 .../org/apache/hadoop/hbase/wal/WALFactory.html |    36 +-
 .../AsyncFSWALProvider.AsyncWriter.html         |    14 +-
 .../wal/class-use/FSHLogProvider.Writer.html    |    12 +-
 .../hbase/wal/class-use/WALProvider.Writer.html |     2 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../org/apache/hadoop/hbase/CellComparator.html |   152 +-
 .../CellComparatorImpl.MetaCellComparator.html  |   690 +-
 .../apache/hadoop/hbase/CellComparatorImpl.html |   690 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../impl/IncrementalTableBackupClient.html      |   159 +-
 .../hadoop/hbase/backup/util/BackupUtils.html   |   381 +-
 .../wal/AbstractFSWAL.WalProps.html             |  1880 +-
 .../hbase/regionserver/wal/AbstractFSWAL.html   |  1880 +-
 .../wal/AbstractProtobufLogWriter.html          |   176 +-
 .../hbase/regionserver/wal/AsyncFSWAL.html      |     4 +-
 .../wal/FSHLog.RingBufferEventHandler.html      |     2 +-
 .../wal/FSHLog.RingBufferExceptionHandler.html  |     2 +-
 .../wal/FSHLog.SafePointZigZagLatch.html        |     2 +-
 .../regionserver/wal/FSHLog.SyncRunner.html     |     2 +-
 .../hadoop/hbase/regionserver/wal/FSHLog.html   |     2 +-
 .../hadoop/hbase/regionserver/wal/WALUtil.html  |   298 +-
 .../wal/AsyncFSWALProvider.AsyncWriter.html     |   189 +-
 .../hadoop/hbase/wal/AsyncFSWALProvider.html    |   189 +-
 .../hadoop/hbase/wal/FSHLogProvider.Writer.html |   155 +-
 .../apache/hadoop/hbase/wal/FSHLogProvider.html |   155 +-
 .../hadoop/hbase/wal/WALFactory.Providers.html  |   205 +-
 .../org/apache/hadoop/hbase/wal/WALFactory.html |   205 +-
 index.html                                      |     4 +-
 testdevapidocs/allclasses-frame.html            |     1 +
 testdevapidocs/allclasses-noframe.html          |     1 +
 testdevapidocs/index-all.html                   |    26 +-
 .../hbase/class-use/HBaseClassTestRule.html     |    24 +-
 .../hbase/class-use/HBaseTestingUtility.html    |    16 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    10 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../regionserver/TestWALLockup.DodgyFSLog.html  |     2 +-
 .../hadoop/hbase/regionserver/package-tree.html |     6 +-
 .../wal/AbstractTestWALReplay.MockWAL.html      |     2 +-
 .../wal/TestWALCellCodecWithCompression.html    |     4 +-
 .../regionserver/wal/TestWALConfiguration.html  |   398 +
 .../regionserver/wal/TestWALDurability.html     |     4 +-
 .../wal/class-use/TestWALConfiguration.html     |   125 +
 .../hbase/regionserver/wal/package-frame.html   |     1 +
 .../hbase/regionserver/wal/package-summary.html |    12 +-
 .../hbase/regionserver/wal/package-tree.html    |     1 +
 .../apache/hadoop/hbase/test/package-tree.html  |     4 +-
 .../apache/hadoop/hbase/wal/FaultyFSLog.html    |     2 +-
 .../hbase/wal/IOTestProvider.IOTestWAL.html     |    14 +-
 .../hbase/wal/IOTestProvider.IOTestWriter.html  |    26 +-
 .../apache/hadoop/hbase/wal/IOTestProvider.html |    19 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 testdevapidocs/overview-tree.html               |     1 +
 ...bstractTestWALReplay.CustomStoreFlusher.html |     2 +-
 .../wal/AbstractTestWALReplay.MockWAL.html      |     2 +-
 .../wal/AbstractTestWALReplay.TestFlusher.html  |     2 +-
 .../regionserver/wal/AbstractTestWALReplay.html |     2 +-
 .../regionserver/wal/TestWALConfiguration.html  |   172 +
 .../wal/IOTestProvider.AllowedOperations.html   |   391 +-
 .../hbase/wal/IOTestProvider.IOTestWAL.html     |   391 +-
 .../hbase/wal/IOTestProvider.IOTestWriter.html  |   391 +-
 .../apache/hadoop/hbase/wal/IOTestProvider.html |   391 +-
 116 files changed, 38852 insertions(+), 37608 deletions(-)
----------------------------------------------------------------------



[10/21] hbase-site git commit: Published site at 2c32272dfa40dbf574343901c2ddea9319ca0bd5.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.html
index b727931..05d2c3c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/CellComparatorImpl.html
@@ -71,41 +71,41 @@
 <span class="sourceLineNo">063</span><a name="line.63"></a>
 <span class="sourceLineNo">064</span>  /**<a name="line.64"></a>
 <span class="sourceLineNo">065</span>   * Compare cells.<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @param a<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @param b<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * @param ignoreSequenceid True if we are to compare the key portion only and ignore<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * the sequenceid. Set to false to compare key and consider sequenceid.<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * @return 0 if equal, -1 if a &amp;lt; b, and +1 if a &amp;gt; b.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public final int compare(final Cell a, final Cell b, boolean ignoreSequenceid) {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    int diff = 0;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    if (a instanceof ByteBufferKeyValue &amp;&amp; b instanceof ByteBufferKeyValue) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      diff = compareByteBufferKeyValue((ByteBufferKeyValue)a, (ByteBufferKeyValue)b);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      if (diff != 0) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        return diff;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    } else {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      diff = compareRows(a, b);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      if (diff != 0) {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        return diff;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>      diff = compareWithoutRow(a, b);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      if (diff != 0) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>        return diff;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      }<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>    // Negate following comparisons so later edits show up first mvccVersion: later sorts first<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return ignoreSequenceid? diff: Longs.compare(b.getSequenceId(), a.getSequenceId());<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<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>   * Specialized comparator for the ByteBufferKeyValue type exclusivesly.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * Caches deserialized lengths of rows and families, etc., and reuses them where it can<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * (ByteBufferKeyValue has been changed to be amenable to our providing pre-made lengths, etc.)<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  private final int compareByteBufferKeyValue(ByteBufferKeyValue left, ByteBufferKeyValue right) {<a name="line.100"></a>
+<span class="sourceLineNo">066</span>   * @param ignoreSequenceid True if we are to compare the key portion only and ignore<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   *  the sequenceid. Set to false to compare key and consider sequenceid.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * @return 0 if equal, -1 if a &amp;lt; b, and +1 if a &amp;gt; b.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  @Override<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public int compare(final Cell a, final Cell b, boolean ignoreSequenceid) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    int diff = 0;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    if (a instanceof ByteBufferKeyValue &amp;&amp; b instanceof ByteBufferKeyValue) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      diff = compareByteBufferKeyValue((ByteBufferKeyValue)a, (ByteBufferKeyValue)b);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      if (diff != 0) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        return diff;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    } else {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      diff = compareRows(a, b);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      if (diff != 0) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        return diff;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>      diff = compareWithoutRow(a, b);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      if (diff != 0) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        return diff;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    // Negate following comparisons so later edits show up first mvccVersion: later sorts first<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return ignoreSequenceid? diff: Longs.compare(b.getSequenceId(), a.getSequenceId());<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * Specialized comparator for the ByteBufferKeyValue type exclusivesly.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   * Caches deserialized lengths of rows and families, etc., and reuses them where it can<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * (ByteBufferKeyValue has been changed to be amenable to our providing pre-made lengths, etc.)<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private static final int compareByteBufferKeyValue(ByteBufferKeyValue left,<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      ByteBufferKeyValue right) {<a name="line.100"></a>
 <span class="sourceLineNo">101</span>    // Compare Rows. Cache row length.<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    int leftRowLength = left.getRowLength();<a name="line.102"></a>
 <span class="sourceLineNo">103</span>    int rightRowLength = right.getRowLength();<a name="line.103"></a>
@@ -142,40 +142,40 @@
 <span class="sourceLineNo">134</span>    if (rightFamilyLength + rightQualifierLength == 0 &amp;&amp; rightType == Type.Minimum.getCode()) {<a name="line.134"></a>
 <span class="sourceLineNo">135</span>      return -1;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    // Compare families.<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    int leftFamilyPosition = left.getFamilyPosition(leftFamilyLengthPosition);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    int rightFamilyPosition = right.getFamilyPosition(rightFamilyLengthPosition);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    diff = ByteBufferUtils.compareTo(<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        left.getFamilyByteBuffer(), leftFamilyPosition, leftFamilyLength,<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        right.getFamilyByteBuffer(), rightFamilyPosition, rightFamilyLength);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    if (diff != 0) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return diff;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    // Compare qualifiers<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    diff = ByteBufferUtils.compareTo(left.getQualifierByteBuffer(),<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        left.getQualifierPosition(leftFamilyPosition, leftFamilyLength), leftQualifierLength,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        right.getQualifierByteBuffer(),<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        right.getQualifierPosition(rightFamilyPosition, rightFamilyLength),<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        rightQualifierLength);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    if (diff != 0) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      return diff;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    // Timestamps.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    diff = compareTimestamps(left.getTimestamp(leftKeyLength), right.getTimestamp(rightKeyLength));<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    if (diff != 0) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      return diff;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    // everything.<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    return (0xff &amp; rightType) - (0xff &amp; leftType);<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>  /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * Compares the family and qualifier part of the cell<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @param left the left cell<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @param right the right cell<a name="line.170"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>    // Compare families.<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    int leftFamilyPosition = left.getFamilyPosition(leftFamilyLengthPosition);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    int rightFamilyPosition = right.getFamilyPosition(rightFamilyLengthPosition);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    diff = ByteBufferUtils.compareTo(<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        left.getFamilyByteBuffer(), leftFamilyPosition, leftFamilyLength,<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        right.getFamilyByteBuffer(), rightFamilyPosition, rightFamilyLength);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    if (diff != 0) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      return diff;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // Compare qualifiers<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    diff = ByteBufferUtils.compareTo(left.getQualifierByteBuffer(),<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        left.getQualifierPosition(leftFamilyPosition, leftFamilyLength), leftQualifierLength,<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        right.getQualifierByteBuffer(),<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        right.getQualifierPosition(rightFamilyPosition, rightFamilyLength),<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        rightQualifierLength);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    if (diff != 0) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      return diff;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    // Timestamps.<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    diff = compareTimestampsInternal(left.getTimestamp(leftKeyLength),<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        right.getTimestamp(rightKeyLength));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    if (diff != 0) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return diff;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // everything.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    return (0xff &amp; rightType) - (0xff &amp; leftType);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<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>   * Compares the family and qualifier part of the cell<a name="line.170"></a>
 <span class="sourceLineNo">171</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.171"></a>
 <span class="sourceLineNo">172</span>   */<a name="line.172"></a>
 <span class="sourceLineNo">173</span>  public final int compareColumns(final Cell left, final Cell right) {<a name="line.173"></a>
@@ -188,289 +188,279 @@
 <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>   * Compare the families of left and right cell<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * @param left<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * @param right<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Override<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public final int compareFamilies(Cell left, Cell right) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.190"></a>
-<span class="sourceLineNo">191</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.191"></a>
-<span class="sourceLineNo">192</span>          ((ByteBufferExtendedCell) right).getFamilyByteBuffer(),<a name="line.192"></a>
-<span class="sourceLineNo">193</span>          ((ByteBufferExtendedCell) right).getFamilyPosition(), right.getFamilyLength());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.196"></a>
-<span class="sourceLineNo">197</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.197"></a>
-<span class="sourceLineNo">198</span>          right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      // see what FindBugs says<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      return ByteBufferUtils.compareTo(<a name="line.205"></a>
-<span class="sourceLineNo">206</span>          left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.206"></a>
-<span class="sourceLineNo">207</span>          ((ByteBufferExtendedCell)right).getFamilyByteBuffer(),<a name="line.207"></a>
-<span class="sourceLineNo">208</span>          ((ByteBufferExtendedCell)right).getFamilyPosition(), right.getFamilyLength());<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    return Bytes.compareTo(left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * Compare the qualifiers part of the left and right cells.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @param left<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * @param right<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  @Override<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  public final int compareQualifiers(Cell left, Cell right) {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      return ByteBufferUtils<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          .compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.224"></a>
-<span class="sourceLineNo">225</span>              ((ByteBufferExtendedCell) left).getQualifierPosition(),<a name="line.225"></a>
-<span class="sourceLineNo">226</span>              left.getQualifierLength(), ((ByteBufferExtendedCell) right).getQualifierByteBuffer(),<a name="line.226"></a>
-<span class="sourceLineNo">227</span>              ((ByteBufferExtendedCell) right).getQualifierPosition(),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>              right.getQualifierLength());<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.231"></a>
-<span class="sourceLineNo">232</span>          ((ByteBufferExtendedCell) left).getQualifierPosition(), left.getQualifierLength(),<a name="line.232"></a>
-<span class="sourceLineNo">233</span>          right.getQualifierArray(), right.getQualifierOffset(), right.getQualifierLength());<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      // see what FindBugs says<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      return ByteBufferUtils.compareTo(left.getQualifierArray(),<a name="line.240"></a>
-<span class="sourceLineNo">241</span>          left.getQualifierOffset(), left.getQualifierLength(),<a name="line.241"></a>
-<span class="sourceLineNo">242</span>          ((ByteBufferExtendedCell)right).getQualifierByteBuffer(),<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          ((ByteBufferExtendedCell)right).getQualifierPosition(), right.getQualifierLength());<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    return Bytes.compareTo(left.getQualifierArray(), left.getQualifierOffset(),<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        left.getQualifierLength(), right.getQualifierArray(), right.getQualifierOffset(),<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        right.getQualifierLength());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * Compares the rows of the left and right cell.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * For the hbase:meta case this method is overridden such that it can handle hbase:meta cells.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * The caller should ensure using the appropriate comparator for hbase:meta.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<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 int compareRows(final Cell left, final Cell right) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    return compareRows(left, left.getRowLength(), right, right.getRowLength());<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>  int compareRows(final Cell left, int leftRowLength, final Cell right, int rightRowLength) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    // left and right can be exactly the same at the beginning of a row<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    if (left == right) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      return 0;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.267"></a>
-<span class="sourceLineNo">268</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.268"></a>
-<span class="sourceLineNo">269</span>          ((ByteBufferExtendedCell) right).getRowByteBuffer(),<a name="line.269"></a>
-<span class="sourceLineNo">270</span>          ((ByteBufferExtendedCell) right).getRowPosition(), rightRowLength);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.273"></a>
-<span class="sourceLineNo">274</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          right.getRowArray(), right.getRowOffset(), rightRowLength);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      // see what FindBugs says<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      return ByteBufferUtils.compareTo(left.getRowArray(), left.getRowOffset(), leftRowLength,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          ((ByteBufferExtendedCell)right).getRowByteBuffer(),<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          ((ByteBufferExtendedCell)right).getRowPosition(), rightRowLength);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        right.getRowArray(), right.getRowOffset(), right.getRowLength());<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>  /**<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * stopRow in Scan. This should be used with context where for hbase:meta<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   * cells the {{@link #META_COMPARATOR} should be used<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   *<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * @param left<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   *          the cell to be compared<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * @param right<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   *          the kv serialized byte[] to be compared with<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * @param roffset<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   *          the offset in the byte[]<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * @param rlength<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   *          the length in the byte[]<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   * @return 0 if both cell and the byte[] are equal, 1 if the cell is bigger<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   *         than byte[], -1 otherwise<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 int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          ((ByteBufferExtendedCell) left).getRowPosition(), left.getRowLength(), right,<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          roffset, rlength);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        roffset, rlength);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Override<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public final int compareWithoutRow(final Cell left, final Cell right) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    // If the column is not specified, the "minimum" key type appears the<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    // latest in the sorted order, regardless of the timestamp. This is used<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    // for specifying the last key/value in a given row, because there is no<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    // "lexicographically last column" (it would be infinitely long). The<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    // "maximum" key type does not need this behavior.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // Copied from KeyValue. This is bad in that we can't do memcmp w/ special rules like this.<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    int lFamLength = left.getFamilyLength();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    int rFamLength = right.getFamilyLength();<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    int lQualLength = left.getQualifierLength();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    int rQualLength = right.getQualifierLength();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    if (lFamLength + lQualLength == 0<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          &amp;&amp; left.getTypeByte() == Type.Minimum.getCode()) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      // left is "bigger", i.e. it appears later in the sorted order<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      return 1;<a name="line.332"></a>
+<span class="sourceLineNo">183</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  public final int compareFamilies(Cell left, Cell right) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.188"></a>
+<span class="sourceLineNo">189</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          ((ByteBufferExtendedCell) right).getFamilyByteBuffer(),<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          ((ByteBufferExtendedCell) right).getFamilyPosition(), right.getFamilyLength());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getFamilyByteBuffer(),<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          ((ByteBufferExtendedCell) left).getFamilyPosition(), left.getFamilyLength(),<a name="line.195"></a>
+<span class="sourceLineNo">196</span>          right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      // see what FindBugs says<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      return ByteBufferUtils.compareTo(<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.204"></a>
+<span class="sourceLineNo">205</span>          ((ByteBufferExtendedCell)right).getFamilyByteBuffer(),<a name="line.205"></a>
+<span class="sourceLineNo">206</span>          ((ByteBufferExtendedCell)right).getFamilyPosition(), right.getFamilyLength());<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    return Bytes.compareTo(left.getFamilyArray(), left.getFamilyOffset(), left.getFamilyLength(),<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        right.getFamilyArray(), right.getFamilyOffset(), right.getFamilyLength());<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>  /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * Compare the qualifiers part of the left and right cells.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<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 final int compareQualifiers(Cell left, Cell right) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      return ByteBufferUtils<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          .compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.220"></a>
+<span class="sourceLineNo">221</span>              ((ByteBufferExtendedCell) left).getQualifierPosition(),<a name="line.221"></a>
+<span class="sourceLineNo">222</span>              left.getQualifierLength(), ((ByteBufferExtendedCell) right).getQualifierByteBuffer(),<a name="line.222"></a>
+<span class="sourceLineNo">223</span>              ((ByteBufferExtendedCell) right).getQualifierPosition(),<a name="line.223"></a>
+<span class="sourceLineNo">224</span>              right.getQualifierLength());<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getQualifierByteBuffer(),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          ((ByteBufferExtendedCell) left).getQualifierPosition(), left.getQualifierLength(),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          right.getQualifierArray(), right.getQualifierOffset(), right.getQualifierLength());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    }<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      // see what FindBugs says<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      return ByteBufferUtils.compareTo(left.getQualifierArray(),<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          left.getQualifierOffset(), left.getQualifierLength(),<a name="line.237"></a>
+<span class="sourceLineNo">238</span>          ((ByteBufferExtendedCell)right).getQualifierByteBuffer(),<a name="line.238"></a>
+<span class="sourceLineNo">239</span>          ((ByteBufferExtendedCell)right).getQualifierPosition(), right.getQualifierLength());<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    }<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    return Bytes.compareTo(left.getQualifierArray(), left.getQualifierOffset(),<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        left.getQualifierLength(), right.getQualifierArray(), right.getQualifierOffset(),<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        right.getQualifierLength());<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>   * Compares the rows of the left and right cell.<a name="line.247"></a>
+<span class="sourceLineNo">248</span>   * For the hbase:meta case this method is overridden such that it can handle hbase:meta cells.<a name="line.248"></a>
+<span class="sourceLineNo">249</span>   * The caller should ensure using the appropriate comparator for hbase:meta.<a name="line.249"></a>
+<span class="sourceLineNo">250</span>   * @return 0 if both cells are equal, 1 if left cell is bigger than right, -1 otherwise<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 int compareRows(final Cell left, final Cell right) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    return compareRows(left, left.getRowLength(), right, right.getRowLength());<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>  int compareRows(final Cell left, int leftRowLength, final Cell right, int rightRowLength) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // left and right can be exactly the same at the beginning of a row<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    if (left == right) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      return 0;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    if (left instanceof ByteBufferExtendedCell &amp;&amp; right instanceof ByteBufferExtendedCell) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.263"></a>
+<span class="sourceLineNo">264</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.264"></a>
+<span class="sourceLineNo">265</span>          ((ByteBufferExtendedCell) right).getRowByteBuffer(),<a name="line.265"></a>
+<span class="sourceLineNo">266</span>          ((ByteBufferExtendedCell) right).getRowPosition(), rightRowLength);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          ((ByteBufferExtendedCell) left).getRowPosition(), leftRowLength,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          right.getRowArray(), right.getRowOffset(), rightRowLength);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    if (right instanceof ByteBufferExtendedCell) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      // Notice how we flip the order of the compare here. We used to negate the return value but<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      // see what FindBugs says<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      // http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      // It suggest flipping the order to get same effect and 'safer'.<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      return ByteBufferUtils.compareTo(left.getRowArray(), left.getRowOffset(), leftRowLength,<a name="line.278"></a>
+<span class="sourceLineNo">279</span>          ((ByteBufferExtendedCell)right).getRowByteBuffer(),<a name="line.279"></a>
+<span class="sourceLineNo">280</span>          ((ByteBufferExtendedCell)right).getRowPosition(), rightRowLength);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        right.getRowArray(), right.getRowOffset(), right.getRowLength());<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>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Compares the row part of the cell with a simple plain byte[] like the<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * stopRow in Scan. This should be used with context where for hbase:meta<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   * cells the {{@link #META_COMPARATOR} should be used<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   *<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   * @param left<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   *          the cell to be compared<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * @param right<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   *          the kv serialized byte[] to be compared with<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * @param roffset<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   *          the offset in the byte[]<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @param rlength<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   *          the length in the byte[]<a name="line.298"></a>
+<span class="sourceLineNo">299</span>   * @return 0 if both cell and the byte[] are equal, 1 if the cell is bigger<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   *         than byte[], -1 otherwise<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 int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    if (left instanceof ByteBufferExtendedCell) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      return ByteBufferUtils.compareTo(((ByteBufferExtendedCell) left).getRowByteBuffer(),<a name="line.305"></a>
+<span class="sourceLineNo">306</span>          ((ByteBufferExtendedCell) left).getRowPosition(), left.getRowLength(), right,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          roffset, rlength);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        roffset, rlength);<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>  @Override<a name="line.313"></a>
+<span class="sourceLineNo">314</span>  public final int compareWithoutRow(final Cell left, final Cell right) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    // If the column is not specified, the "minimum" key type appears the<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    // latest in the sorted order, regardless of the timestamp. This is used<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    // for specifying the last key/value in a given row, because there is no<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // "lexicographically last column" (it would be infinitely long). The<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    // "maximum" key type does not need this behavior.<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // Copied from KeyValue. This is bad in that we can't do memcmp w/ special rules like this.<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    int lFamLength = left.getFamilyLength();<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    int rFamLength = right.getFamilyLength();<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    int lQualLength = left.getQualifierLength();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    int rQualLength = right.getQualifierLength();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    if (lFamLength + lQualLength == 0<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          &amp;&amp; left.getTypeByte() == Type.Minimum.getCode()) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      // left is "bigger", i.e. it appears later in the sorted order<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      return 1;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    if (rFamLength + rQualLength == 0<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        &amp;&amp; right.getTypeByte() == Type.Minimum.getCode()) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      return -1;<a name="line.332"></a>
 <span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    if (rFamLength + rQualLength == 0<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        &amp;&amp; right.getTypeByte() == Type.Minimum.getCode()) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      return -1;<a name="line.336"></a>
+<span class="sourceLineNo">334</span>    if (lFamLength != rFamLength) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      // comparing column family is enough.<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      return compareFamilies(left, right);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (lFamLength != rFamLength) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      // comparing column family is enough.<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      return compareFamilies(left, right);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    // Compare cf:qualifier<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    int diff = compareColumns(left, right);<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    if (diff != 0) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return diff;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    diff = compareTimestamps(left, right);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    if (diff != 0) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      return diff;<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>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    // everything.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return (0xff &amp; right.getTypeByte()) - (0xff &amp; left.getTypeByte());<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  /**<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   * Compares cell's timestamps in DESCENDING order.<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * The below older timestamps sorting ahead of newer timestamps looks<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * wrong but it is intentional. This way, newer timestamps are first<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * found when we iterate over a memstore and newer versions are the<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * first we trip over when reading from a store file.<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   * @return 1 if left's timestamp &amp;lt; right's timestamp<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   *         -1 if left's timestamp &amp;gt; right's timestamp<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   *         0 if both timestamps are equal<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  @Override<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public int compareTimestamps(final Cell left, final Cell right) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    return compareTimestamps(left.getTimestamp(), right.getTimestamp());<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  }<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>  /**<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * Compares timestamps in DESCENDING order.<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * The below older timestamps sorting ahead of newer timestamps looks<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * wrong but it is intentional. This way, newer timestamps are first<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * found when we iterate over a memstore and newer versions are the<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * first we trip over when reading from a store file.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * @return 1 if left timestamp &amp;lt; right timestamp<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   *         -1 if left timestamp &amp;gt; right timestamp<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   *         0 if both timestamps are equal<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   */<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  @Override<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  public int compareTimestamps(final long ltimestamp, final long rtimestamp) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    if (ltimestamp &lt; rtimestamp) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      return 1;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    } else if (ltimestamp &gt; rtimestamp) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      return -1;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    return 0;<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>   * A {@link CellComparatorImpl} for &lt;code&gt;hbase:meta&lt;/code&gt; catalog table<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * {@link KeyValue}s.<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  public static class MetaCellComparator extends CellComparatorImpl {<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>    @Override<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    public int compareRows(final Cell left, final Cell right) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          right.getRowArray(), right.getRowOffset(), right.getRowLength());<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    }<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>    @Override<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    public int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          roffset, rlength);<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>    private int compareRows(byte[] left, int loffset, int llength, byte[] right, int roffset,<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        int rlength) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      int leftDelimiter = Bytes.searchDelimiterIndex(left, loffset, llength, HConstants.DELIMITER);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      int rightDelimiter = Bytes<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          .searchDelimiterIndex(right, roffset, rlength, HConstants.DELIMITER);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      // Compare up to the delimiter<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      int lpart = (leftDelimiter &lt; 0 ? llength : leftDelimiter - loffset);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int rpart = (rightDelimiter &lt; 0 ? rlength : rightDelimiter - roffset);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      int result = Bytes.compareTo(left, loffset, lpart, right, roffset, rpart);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      if (result != 0) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        return result;<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      } else {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>          return -1;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          return 1;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          return 0;<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>      // Compare middle bit of the row.<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      // Move past delimiter<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      leftDelimiter++;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      rightDelimiter++;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      int leftFarDelimiter = Bytes.searchDelimiterIndexInReverse(left, leftDelimiter, llength<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          - (leftDelimiter - loffset), HConstants.DELIMITER);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      int rightFarDelimiter = Bytes.searchDelimiterIndexInReverse(right, rightDelimiter, rlength<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          - (rightDelimiter - roffset), HConstants.DELIMITER);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      // Now compare middlesection of row.<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      lpart = (leftFarDelimiter &lt; 0 ? llength + loffset : leftFarDelimiter) - leftDelimiter;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      rpart = (rightFarDelimiter &lt; 0 ? rlength + roffset : rightFarDelimiter) - rightDelimiter;<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      result = Bytes.compareTo(left, leftDelimiter, lpart, right, rightDelimiter, rpart);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      if (result != 0) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        return result;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      } else {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          return -1;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>          return 1;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          return 0;<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>      // Compare last part of row, the rowid.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      leftFarDelimiter++;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      rightFarDelimiter++;<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      result = Bytes.compareTo(left, leftFarDelimiter, llength - (leftFarDelimiter - loffset),<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          right, rightFarDelimiter, rlength - (rightFarDelimiter - roffset));<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return result;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>}<a name="line.465"></a>
+<span class="sourceLineNo">338</span>    // Compare cf:qualifier<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    int diff = compareColumns(left, right);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    if (diff != 0) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      return diff;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    diff = compareTimestamps(left, right);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    if (diff != 0) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      return diff;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>    // Compare types. Let the delete types sort ahead of puts; i.e. types<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // of higher numbers sort before those of lesser numbers. Maximum (255)<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    // appears ahead of everything, and minimum (0) appears after<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    // everything.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    return (0xff &amp; right.getTypeByte()) - (0xff &amp; left.getTypeByte());<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>  @Override<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  public int compareTimestamps(final Cell left, final Cell right) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    return compareTimestampsInternal(left.getTimestamp(), right.getTimestamp());<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  @Override<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  public int compareTimestamps(final long ltimestamp, final long rtimestamp) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    return compareTimestampsInternal(ltimestamp, rtimestamp);<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>  private static final int compareTimestampsInternal(final long ltimestamp, final long rtimestamp) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    // Swap the times so sort is newest to oldest, descending.<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    return Long.compare(rtimestamp, ltimestamp);<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>  /**<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   * A {@link CellComparatorImpl} for &lt;code&gt;hbase:meta&lt;/code&gt; catalog table<a name="line.372"></a>
+<span class="sourceLineNo">373</span>   * {@link KeyValue}s.<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public static class MetaCellComparator extends CellComparatorImpl {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    @Override<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    public int compareRows(final Cell left, final Cell right) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>          right.getRowArray(), right.getRowOffset(), right.getRowLength());<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>    @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    public int compareRows(Cell left, byte[] right, int roffset, int rlength) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      return compareRows(left.getRowArray(), left.getRowOffset(), left.getRowLength(), right,<a name="line.384"></a>
+<span class="sourceLineNo">385</span>          roffset, rlength);<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>    @Override<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    public int compare(final Cell a, final Cell b, boolean ignoreSequenceid) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      int diff = compareRows(a, b);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      if (diff != 0) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        return diff;<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>      diff = compareWithoutRow(a, b);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      if (diff != 0) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        return diff;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>      // Negate following comparisons so later edits show up first mvccVersion: later sorts first<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      return ignoreSequenceid? diff: Longs.compare(b.getSequenceId(), a.getSequenceId());<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>    private static int compareRows(byte[] left, int loffset, int llength, byte[] right, int roffset,<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        int rlength) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      int leftDelimiter = Bytes.searchDelimiterIndex(left, loffset, llength, HConstants.DELIMITER);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      int rightDelimiter = Bytes<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          .searchDelimiterIndex(right, roffset, rlength, HConstants.DELIMITER);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      // Compare up to the delimiter<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      int lpart = (leftDelimiter &lt; 0 ? llength : leftDelimiter - loffset);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      int rpart = (rightDelimiter &lt; 0 ? rlength : rightDelimiter - roffset);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      int result = Bytes.compareTo(left, loffset, lpart, right, roffset, rpart);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      if (result != 0) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        return result;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      } else {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>          return -1;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          return 1;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>          return 0;<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>      // Compare middle bit of the row.<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      // Move past delimiter<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      leftDelimiter++;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      rightDelimiter++;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      int leftFarDelimiter = Bytes.searchDelimiterIndexInReverse(left, leftDelimiter, llength<a name="line.428"></a>
+<span class="sourceLineNo">429</span>          - (leftDelimiter - loffset), HConstants.DELIMITER);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      int rightFarDelimiter = Bytes.searchDelimiterIndexInReverse(right, rightDelimiter, rlength<a name="line.430"></a>
+<span class="sourceLineNo">431</span>          - (rightDelimiter - roffset), HConstants.DELIMITER);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      // Now compare middlesection of row.<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      lpart = (leftFarDelimiter &lt; 0 ? llength + loffset : leftFarDelimiter) - leftDelimiter;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      rpart = (rightFarDelimiter &lt; 0 ? rlength + roffset : rightFarDelimiter) - rightDelimiter;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      result = Bytes.compareTo(left, leftDelimiter, lpart, right, rightDelimiter, rpart);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      if (result != 0) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        return result;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      } else {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &gt;= 0) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>          return -1;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        } else if (rightDelimiter &lt; 0 &amp;&amp; leftDelimiter &gt;= 0) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>          return 1;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        } else if (leftDelimiter &lt; 0 &amp;&amp; rightDelimiter &lt; 0) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>          return 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>      // Compare last part of row, the rowid.<a name="line.447"></a>
+<span class="sourceLineNo">448</span>      leftFarDelimiter++;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      rightFarDelimiter++;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      result = Bytes.compareTo(left, leftFarDelimiter, llength - (leftFarDelimiter - loffset),<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          right, rightFarDelimiter, rlength - (rightFarDelimiter - roffset));<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      return result;<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>}<a name="line.455"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ec5d5242/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 2e49118..444a01c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "ab53329cb3a56296ad05ee68735eb78896819cd3";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "2c32272dfa40dbf574343901c2ddea9319ca0bd5";<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 = "Wed May 16 14:39:15 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Wed May 16 18:41:01 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 = "0d7213f070e69b7ea1142c092681bde7";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "958067e5bc05ca4bd3e914f0c794fac6";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>