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 <tianjy1...@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)); } /**