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 in...@apache.org on 2018/01/05 17:11:52 UTC
hadoop git commit: HDFS-12988. RBF: Mount table entries not properly
updated in the local cache. Contributed by Inigo Goiri.
Repository: hadoop
Updated Branches:
refs/heads/trunk 0c75d0634 -> 83b513ac6
HDFS-12988. RBF: Mount table entries not properly updated in the local cache. Contributed by Inigo Goiri.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/83b513ac
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/83b513ac
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/83b513ac
Branch: refs/heads/trunk
Commit: 83b513ac6d5448f3771b0b95f91e7aa7961ae2cc
Parents: 0c75d06
Author: Inigo Goiri <in...@apache.org>
Authored: Fri Jan 5 09:11:38 2018 -0800
Committer: Inigo Goiri <in...@apache.org>
Committed: Fri Jan 5 09:11:38 2018 -0800
----------------------------------------------------------------------
.../federation/resolver/MountTableResolver.java | 4 ++-
.../resolver/TestMountTableResolver.java | 32 ++++++++++++++++++++
2 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/83b513ac/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
index 4457cba..24082d4 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
@@ -267,7 +267,9 @@ public class MountTableResolver
// Node exists, check for updates
MountTable existingEntry = this.tree.get(srcPath);
if (existingEntry != null && !existingEntry.equals(entry)) {
- // Entry has changed
+ LOG.info("Entry has changed from \"{}\" to \"{}\"",
+ existingEntry, entry);
+ this.tree.put(srcPath, entry);
invalidateLocationCache(srcPath);
LOG.info("Updated mount point {} in resolver");
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/83b513ac/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
index c92e92c..7a596c1 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
@@ -24,6 +24,8 @@ import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -409,4 +411,34 @@ public class TestMountTableResolver {
assertEquals(numRootTrees, mountTable.getMountPoints("/").size());
assertEquals(100000, mountTable.getMounts("/").size());
}
+
+ @Test
+ public void testUpdate() throws IOException {
+
+ // Add entry to update later
+ Map<String, String> map = getMountTableEntry("1", "/");
+ mountTable.addEntry(MountTable.newInstance("/testupdate", map));
+
+ MountTable entry = mountTable.getMountPoint("/testupdate");
+ List<RemoteLocation> dests = entry.getDestinations();
+ assertEquals(1, dests.size());
+ RemoteLocation dest = dests.get(0);
+ assertEquals("1", dest.getNameserviceId());
+
+ // Update entry
+ Collection<MountTable> entries = Collections.singletonList(
+ MountTable.newInstance("/testupdate", getMountTableEntry("2", "/")));
+ mountTable.refreshEntries(entries);
+
+ MountTable entry1 = mountTable.getMountPoint("/testupdate");
+ List<RemoteLocation> dests1 = entry1.getDestinations();
+ assertEquals(1, dests1.size());
+ RemoteLocation dest1 = dests1.get(0);
+ assertEquals("2", dest1.getNameserviceId());
+
+ // Remove the entry to test updates and check
+ mountTable.removeEntry("/testupdate");
+ MountTable entry2 = mountTable.getMountPoint("/testupdate");
+ assertNull(entry2);
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org