This is an automated email from the ASF dual-hosted git repository. zanderxu pushed a commit to branch HDFS-17384 in repository https://gitbox.apache.org/repos/asf/hadoop.git
commit 132a63f4ad2c8cd8bff1c739e1a41c853a1c9ad4 Author: ZanderXu <zande...@apache.org> AuthorDate: Thu Mar 28 09:51:35 2024 +0800 HDFS-17420. [FGL] EditLogTailer and FSEditLogLoader support FGL (#6679) --- .../org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java | 9 +++++---- .../org/apache/hadoop/hdfs/server/namenode/ha/EditLogTailer.java | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java index 5158058a0560..4bd3e9eda8df 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSEditLogLoader.java @@ -27,6 +27,7 @@ import java.util.EnumMap; import java.util.EnumSet; import java.util.List; +import org.apache.hadoop.hdfs.server.namenode.fgl.FSNamesystemLockMode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.classification.InterfaceAudience; @@ -171,7 +172,7 @@ public class FSEditLogLoader { StartupProgress prog = NameNode.getStartupProgress(); Step step = createStartupProgressStep(edits); prog.beginStep(Phase.LOADING_EDITS, step); - fsNamesys.writeLock(); + fsNamesys.writeLock(FSNamesystemLockMode.GLOBAL); try { long startTime = timer.monotonicNow(); LogAction preLogAction = LOAD_EDITS_LOG_HELPER.record("pre", startTime); @@ -196,7 +197,7 @@ public class FSEditLogLoader { return numEdits; } finally { edits.close(); - fsNamesys.writeUnlock("loadFSEdits"); + fsNamesys.writeUnlock(FSNamesystemLockMode.GLOBAL, "loadFSEdits"); prog.endStep(Phase.LOADING_EDITS, step); } } @@ -218,7 +219,7 @@ public class FSEditLogLoader { LOG.trace("Acquiring write lock to replay edit log"); } - fsNamesys.writeLock(); + fsNamesys.writeLock(FSNamesystemLockMode.GLOBAL); FSDirectory fsDir = fsNamesys.dir; fsDir.writeLock(); @@ -342,7 +343,7 @@ public class FSEditLogLoader { in.close(); } fsDir.writeUnlock(); - fsNamesys.writeUnlock("loadEditRecords"); + fsNamesys.writeUnlock(FSNamesystemLockMode.GLOBAL, "loadEditRecords"); if (LOG.isTraceEnabled()) { LOG.trace("replaying edit log finished"); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/EditLogTailer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/EditLogTailer.java index d14d8a889220..568c8bbdf8ae 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/EditLogTailer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/EditLogTailer.java @@ -34,6 +34,7 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import org.apache.hadoop.hdfs.server.namenode.fgl.FSNamesystemLockMode; import org.apache.hadoop.thirdparty.com.google.common.collect.Iterators; import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder; import org.apache.hadoop.util.Timer; @@ -355,7 +356,7 @@ public class EditLogTailer { // transitionToActive RPC takes the write lock before calling // tailer.stop() -- so if we're not interruptible, it will // deadlock. - namesystem.writeLockInterruptibly(); + namesystem.writeLockInterruptibly(FSNamesystemLockMode.GLOBAL); try { long currentLastTxnId = image.getLastAppliedTxId(); if (lastTxnId != currentLastTxnId) { @@ -386,7 +387,7 @@ public class EditLogTailer { lastLoadedTxnId = image.getLastAppliedTxId(); return editsLoaded; } finally { - namesystem.writeUnlock("doTailEdits"); + namesystem.writeUnlock(FSNamesystemLockMode.GLOBAL, "doTailEdits"); } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org