This is an automated email from the ASF dual-hosted git repository. hexiaoqiao pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push: new a4872099908 HDFS-17602. RBF: Fix mount point with SPACE order can not find the available namespace. (#6991). Contributed by Zhongkun Wu. a4872099908 is described below commit a4872099908d20211397cb896ca35dae62ccd84b Author: Alex <wzk784...@163.com> AuthorDate: Wed Jan 8 12:34:50 2025 +0800 HDFS-17602. RBF: Fix mount point with SPACE order can not find the available namespace. (#6991). Contributed by Zhongkun Wu. Reviewed-by: Jian Zhang <1361320...@qq.com> Signed-off-by: He Xiaoqiao <hexiaoq...@apache.org> --- .../server/federation/resolver/order/AvailableSpaceResolver.java | 7 +++++-- .../federation/resolver/order/TestAvailableSpaceResolver.java | 8 ++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/order/AvailableSpaceResolver.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/order/AvailableSpaceResolver.java index 591ac5b3c37..6462a9b22a8 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/order/AvailableSpaceResolver.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/order/AvailableSpaceResolver.java @@ -29,6 +29,7 @@ import java.util.Random; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hdfs.server.federation.resolver.PathLocation; +import org.apache.hadoop.hdfs.server.federation.resolver.RemoteLocation; import org.apache.hadoop.hdfs.server.federation.resolver.order.AvailableSpaceResolver.SubclusterAvailableSpace; import org.apache.hadoop.hdfs.server.federation.router.RBFConfigKeys; import org.apache.hadoop.hdfs.server.federation.router.Router; @@ -116,8 +117,10 @@ public class AvailableSpaceResolver protected String chooseFirstNamespace(String path, PathLocation loc) { Map<String, SubclusterAvailableSpace> subclusterInfo = getSubclusterMapping(); - List<SubclusterAvailableSpace> subclusterList = new LinkedList<>( - subclusterInfo.values()); + List<SubclusterAvailableSpace> subclusterList = new LinkedList<>(); + for (RemoteLocation dest : loc.getDestinations()) { + subclusterList.add(subclusterInfo.get(dest.getNameserviceId())); + } Collections.sort(subclusterList, comparator); return subclusterList.size() > 0 ? subclusterList.get(0).getNameserviceId() diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/order/TestAvailableSpaceResolver.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/order/TestAvailableSpaceResolver.java index 3d6b61aca0e..84bf57f2b0a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/order/TestAvailableSpaceResolver.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/order/TestAvailableSpaceResolver.java @@ -229,4 +229,12 @@ public class TestAvailableSpaceResolver { } subclusters.clear(); } + + @Test + public void testChooseFirstNamespace() throws Exception { + MultipleDestinationMountTableResolver mountTableResolver = + mockAvailableSpaceResolver(1.0f); + PathLocation loc = mountTableResolver.getDestinationForPath("/space"); + assertEquals("subcluster9", loc.getDefaultLocation().getNameserviceId()); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org