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 <[email protected]>
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 <[email protected]>
Signed-off-by: He Xiaoqiao <[email protected]>
---
.../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: [email protected]
For additional commands, e-mail: [email protected]