You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2021/12/18 15:37:22 UTC
[hbase] 01/02: HBASE-26579 Set storage policy of recovered edits when hbase.wal.storage.type is configured (#3948)
This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2.4
in repository https://gitbox.apache.org/repos/asf/hbase.git
commit 101d21f25f8d4300e8448348016ce363fe3a9b6a
Author: zhengzhuobinzzb <zh...@gmail.com>
AuthorDate: Sat Dec 18 23:17:40 2021 +0800
HBASE-26579 Set storage policy of recovered edits when hbase.wal.storage.type is configured (#3948)
Signed-off-by: Duo Zhang <zh...@apache.org>
Signed-off-by: Peter Somogyi <ps...@apache.org>
---
.../main/java/org/apache/hadoop/hbase/wal/WALSplitUtil.java | 5 +++++
.../test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java | 12 ++++++++++++
2 files changed, 17 insertions(+)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitUtil.java
index 2354b46..bb9a513 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitUtil.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitUtil.java
@@ -148,6 +148,7 @@ public final class WALSplitUtil {
* named for the sequenceid in the passed <code>logEntry</code>: e.g.
* /hbase/some_table/2323432434/recovered.edits/2332. This method also ensures existence of
* RECOVERED_EDITS_DIR under the region creating it if necessary.
+ * And also set storage policy for RECOVERED_EDITS_DIR if WAL_STORAGE_POLICY is configured.
* @param tableName the table name
* @param encodedRegionName the encoded region name
* @param seqId the sequence id which used to generate file name
@@ -182,6 +183,10 @@ public final class WALSplitUtil {
if (!walFS.exists(dir) && !walFS.mkdirs(dir)) {
LOG.warn("mkdir failed on {}", dir);
+ } else {
+ String storagePolicy =
+ conf.get(HConstants.WAL_STORAGE_POLICY, HConstants.DEFAULT_WAL_STORAGE_POLICY);
+ CommonFSUtils.setStoragePolicy(walFS, dir, storagePolicy);
}
// Append fileBeingSplit to prevent name conflict since we may have duplicate wal entries now.
// Append file name ends with RECOVERED_LOG_TMPFILE_SUFFIX to ensure
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java
index 5f22b45..a414f83 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java
@@ -1174,6 +1174,18 @@ public class TestWALSplit {
}
}
+ @Test
+ public void testRecoveredEditsStoragePolicy() throws IOException {
+ conf.set(HConstants.WAL_STORAGE_POLICY, "ALL_SSD");
+ try {
+ Path path = createRecoveredEditsPathForRegion();
+ assertEquals("ALL_SSD", fs.getStoragePolicy(path.getParent()).getName());
+ } finally {
+ conf.unset(HConstants.WAL_STORAGE_POLICY);
+ }
+
+ }
+
private Writer generateWALs(int leaveOpen) throws IOException {
return generateWALs(NUM_WRITERS, ENTRIES, leaveOpen, 0);
}