You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zg...@apache.org on 2018/08/07 02:41:59 UTC

hbase git commit: HBASE-20986 Separate the config of block size when we do log splitting and write Hlog

Repository: hbase
Updated Branches:
  refs/heads/master bd30ca62e -> bd01fa763


HBASE-20986 Separate the config of block size when we do log splitting and write Hlog

Signed-off-by: Guanghao Zhang <zg...@apache.org>


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

Branch: refs/heads/master
Commit: bd01fa763985491e196e296f0f627274ce04e619
Parents: bd30ca6
Author: jingyuntian <ti...@gmail.com>
Authored: Fri Aug 3 16:10:56 2018 +0800
Committer: Guanghao Zhang <zg...@apache.org>
Committed: Tue Aug 7 10:37:22 2018 +0800

----------------------------------------------------------------------
 .../hadoop/hbase/regionserver/wal/WALUtil.java     | 17 +++++++++++++++--
 .../apache/hadoop/hbase/wal/FSHLogProvider.java    |  5 ++++-
 2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/bd01fa76/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALUtil.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALUtil.java
index 3b18253..b76670e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALUtil.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALUtil.java
@@ -180,8 +180,21 @@ public class WALUtil {
    */
   public static long getWALBlockSize(Configuration conf, FileSystem fs, Path dir)
       throws IOException {
-    return conf.getLong("hbase.regionserver.hlog.blocksize",
-        CommonFSUtils.getDefaultBlockSize(fs, dir) * 2);
+    return getWALBlockSize(conf, fs, dir, false);
+  }
+
+  /**
+   * Public because of FSHLog. Should be package-private
+   * @param isRecoverEdits the created writer is for recovered edits or WAL.
+   *                       For recovered edits, it is true and for WAL it is false.
+   */
+  public static long getWALBlockSize(Configuration conf, FileSystem fs, Path dir,
+      boolean isRecoverEdits) throws IOException {
+    long defaultBlockSize = CommonFSUtils.getDefaultBlockSize(fs, dir) * 2;
+    if (isRecoverEdits) {
+      return conf.getLong("hbase.regionserver.recoverededits.blocksize", defaultBlockSize);
+    }
+    return conf.getLong("hbase.regionserver.hlog.blocksize", defaultBlockSize);
   }
 
   public static void filterCells(WALEdit edit, Function<Cell, Cell> mapper) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/bd01fa76/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java
index 44f692d..7cd39ea 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/FSHLogProvider.java
@@ -55,10 +55,13 @@ public class FSHLogProvider extends AbstractFSWALProvider<FSHLog> {
 
   /**
    * Public because of FSHLog. Should be package-private
+   * @param overwritable if the created writer can overwrite. For recovered edits, it is true and
+   *          for WAL it is false. Thus we can distinguish WAL and recovered edits by this.
    */
   public static Writer createWriter(final Configuration conf, final FileSystem fs, final Path path,
       final boolean overwritable) throws IOException {
-    return createWriter(conf, fs, path, overwritable, WALUtil.getWALBlockSize(conf, fs, path));
+    return createWriter(conf, fs, path, overwritable,
+      WALUtil.getWALBlockSize(conf, fs, path, overwritable));
   }
 
   /**