You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by vi...@apache.org on 2018/08/21 04:07:01 UTC
[2/2] hadoop git commit: HDFS-13772. Erasure coding: Unnecessary
NameNode Logs displaying for Enabling/Disabling Erasure coding policies which
are already enabled/disabled. Contributed by Ayush Saxena
HDFS-13772. Erasure coding: Unnecessary NameNode Logs displaying for Enabling/Disabling Erasure coding policies which are already enabled/disabled. Contributed by Ayush Saxena
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8df2eb81
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8df2eb81
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8df2eb81
Branch: refs/heads/branch-3.1
Commit: 8df2eb8119188b8e5515295523afc23046e1db81
Parents: 95fcdc0
Author: Vinayakumar B <vi...@apache.org>
Authored: Tue Aug 21 09:33:19 2018 +0530
Committer: Vinayakumar B <vi...@apache.org>
Committed: Tue Aug 21 09:34:57 2018 +0530
----------------------------------------------------------------------
.../namenode/ErasureCodingPolicyManager.java | 15 +++++++----
.../server/namenode/FSDirErasureCodingOp.java | 22 ++++++++++++-----
.../hdfs/server/namenode/FSNamesystem.java | 26 +++++++++++---------
.../hdfs/server/namenode/NameNodeRpcServer.java | 8 +++---
.../server/namenode/TestNamenodeRetryCache.java | 2 +-
.../namenode/ha/TestRetryCacheWithHA.java | 2 +-
6 files changed, 47 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8df2eb81/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ErasureCodingPolicyManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ErasureCodingPolicyManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ErasureCodingPolicyManager.java
index 3a310da..e7de05b 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ErasureCodingPolicyManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ErasureCodingPolicyManager.java
@@ -356,7 +356,7 @@ public final class ErasureCodingPolicyManager {
/**
* Disable an erasure coding policy by policyName.
*/
- public synchronized void disablePolicy(String name) {
+ public synchronized boolean disablePolicy(String name) {
ErasureCodingPolicyInfo info = policiesByName.get(name);
if (info == null) {
throw new HadoopIllegalArgumentException("The policy name " +
@@ -367,27 +367,32 @@ public final class ErasureCodingPolicyManager {
enabledPoliciesByName.remove(name);
enabledPolicies =
enabledPoliciesByName.values().toArray(new ErasureCodingPolicy[0]);
+ info.setState(ErasureCodingPolicyState.DISABLED);
+ LOG.info("Disable the erasure coding policy " + name);
+ return true;
}
- info.setState(ErasureCodingPolicyState.DISABLED);
- LOG.info("Disable the erasure coding policy " + name);
+ return false;
}
/**
* Enable an erasure coding policy by policyName.
*/
- public synchronized void enablePolicy(String name) {
+ public synchronized boolean enablePolicy(String name) {
final ErasureCodingPolicyInfo info = policiesByName.get(name);
if (info == null) {
throw new HadoopIllegalArgumentException("The policy name " +
name + " does not exist");
}
-
+ if (enabledPoliciesByName.containsKey(name)) {
+ return false;
+ }
final ErasureCodingPolicy ecPolicy = info.getPolicy();
enabledPoliciesByName.put(name, ecPolicy);
info.setState(ErasureCodingPolicyState.ENABLED);
enabledPolicies =
enabledPoliciesByName.values().toArray(new ErasureCodingPolicy[0]);
LOG.info("Enable the erasure coding policy " + name);
+ return true;
}
/**
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8df2eb81/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirErasureCodingOp.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirErasureCodingOp.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirErasureCodingOp.java
index 3a32db4..f6a4093 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirErasureCodingOp.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirErasureCodingOp.java
@@ -252,11 +252,16 @@ final class FSDirErasureCodingOp {
* rebuilding
* @throws IOException
*/
- static void enableErasureCodingPolicy(final FSNamesystem fsn,
+ static boolean enableErasureCodingPolicy(final FSNamesystem fsn,
String ecPolicyName, final boolean logRetryCache) throws IOException {
Preconditions.checkNotNull(ecPolicyName);
- fsn.getErasureCodingPolicyManager().enablePolicy(ecPolicyName);
- fsn.getEditLog().logEnableErasureCodingPolicy(ecPolicyName, logRetryCache);
+ boolean success =
+ fsn.getErasureCodingPolicyManager().enablePolicy(ecPolicyName);
+ if (success) {
+ fsn.getEditLog().logEnableErasureCodingPolicy(ecPolicyName,
+ logRetryCache);
+ }
+ return success;
}
/**
@@ -268,11 +273,16 @@ final class FSDirErasureCodingOp {
* rebuilding
* @throws IOException
*/
- static void disableErasureCodingPolicy(final FSNamesystem fsn,
+ static boolean disableErasureCodingPolicy(final FSNamesystem fsn,
String ecPolicyName, final boolean logRetryCache) throws IOException {
Preconditions.checkNotNull(ecPolicyName);
- fsn.getErasureCodingPolicyManager().disablePolicy(ecPolicyName);
- fsn.getEditLog().logDisableErasureCodingPolicy(ecPolicyName, logRetryCache);
+ boolean success =
+ fsn.getErasureCodingPolicyManager().disablePolicy(ecPolicyName);
+ if (success) {
+ fsn.getEditLog().logDisableErasureCodingPolicy(ecPolicyName,
+ logRetryCache);
+ }
+ return success;
}
private static List<XAttr> removeErasureCodingPolicyXAttr(
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8df2eb81/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
index f6c8c94..0be450f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
@@ -7541,29 +7541,31 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
* @param ecPolicyName the name of the policy to be enabled
* @param logRetryCache whether to record RPC ids in editlog for retry cache
* rebuilding
+ * @return
* @throws IOException
*/
- void enableErasureCodingPolicy(String ecPolicyName,
+ boolean enableErasureCodingPolicy(String ecPolicyName,
final boolean logRetryCache) throws IOException {
final String operationName = "enableErasureCodingPolicy";
checkOperation(OperationCategory.WRITE);
boolean success = false;
- LOG.info("Enable the erasure coding policy " + ecPolicyName);
writeLock();
try {
checkOperation(OperationCategory.WRITE);
checkNameNodeSafeMode("Cannot enable erasure coding policy "
+ ecPolicyName);
- FSDirErasureCodingOp.enableErasureCodingPolicy(this, ecPolicyName,
- logRetryCache);
- success = true;
+ success = FSDirErasureCodingOp.enableErasureCodingPolicy(this,
+ ecPolicyName, logRetryCache);
+ } catch (AccessControlException ace) {
+ logAuditEvent(false, operationName, ecPolicyName, null, null);
} finally {
writeUnlock(operationName);
if (success) {
getEditLog().logSync();
+ logAuditEvent(success, operationName, ecPolicyName, null, null);
}
- logAuditEvent(success, operationName, ecPolicyName, null, null);
}
+ return success;
}
/**
@@ -7573,7 +7575,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
* rebuilding
* @throws IOException
*/
- void disableErasureCodingPolicy(String ecPolicyName,
+ boolean disableErasureCodingPolicy(String ecPolicyName,
final boolean logRetryCache) throws IOException {
final String operationName = "disableErasureCodingPolicy";
checkOperation(OperationCategory.WRITE);
@@ -7584,16 +7586,18 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
checkOperation(OperationCategory.WRITE);
checkNameNodeSafeMode("Cannot disable erasure coding policy "
+ ecPolicyName);
- FSDirErasureCodingOp.disableErasureCodingPolicy(this, ecPolicyName,
- logRetryCache);
- success = true;
+ success = FSDirErasureCodingOp.disableErasureCodingPolicy(this,
+ ecPolicyName, logRetryCache);
+ } catch (AccessControlException ace) {
+ logAuditEvent(false, operationName, ecPolicyName, null, null);
} finally {
writeUnlock(operationName);
if (success) {
getEditLog().logSync();
+ logAuditEvent(success, operationName, ecPolicyName, null, null);
}
- logAuditEvent(success, operationName, ecPolicyName, null, null);
}
+ return success;
}
/**
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8df2eb81/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java
index c5b9d5a..02b1c0f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeRpcServer.java
@@ -2458,8 +2458,8 @@ public class NameNodeRpcServer implements NamenodeProtocols {
}
boolean success = false;
try {
- namesystem.enableErasureCodingPolicy(ecPolicyName, cacheEntry != null);
- success = true;
+ success = namesystem.enableErasureCodingPolicy(ecPolicyName,
+ cacheEntry != null);
} finally {
RetryCache.setState(cacheEntry, success);
}
@@ -2476,8 +2476,8 @@ public class NameNodeRpcServer implements NamenodeProtocols {
}
boolean success = false;
try {
- namesystem.disableErasureCodingPolicy(ecPolicyName, cacheEntry != null);
- success = true;
+ success = namesystem.disableErasureCodingPolicy(ecPolicyName,
+ cacheEntry != null);
} finally {
RetryCache.setState(cacheEntry, success);
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8df2eb81/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
index 0995f13..a1946c2 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
@@ -463,7 +463,7 @@ public class TestNamenodeRetryCache {
assertTrue(namesystem.hasRetryCache());
cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) namesystem
.getRetryCache().getCacheSet();
- assertEquals("Retry cache size is wrong", 39, cacheSet.size());
+ assertEquals("Retry cache size is wrong", 38, cacheSet.size());
iter = cacheSet.iterator();
while (iter.hasNext()) {
CacheEntry entry = iter.next();
http://git-wip-us.apache.org/repos/asf/hadoop/blob/8df2eb81/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
index 43aaa92..bcdf511 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestRetryCacheWithHA.java
@@ -194,7 +194,7 @@ public class TestRetryCacheWithHA {
FSNamesystem fsn1 = cluster.getNamesystem(1);
cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) fsn1
.getRetryCache().getCacheSet();
- assertEquals("Retry cache size is wrong", 39, cacheSet.size());
+ assertEquals("Retry cache size is wrong", 38, cacheSet.size());
iter = cacheSet.iterator();
while (iter.hasNext()) {
CacheEntry entry = iter.next();
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org