[ 
https://issues.apache.org/jira/browse/YARN-11290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17599821#comment-17599821
 ] 

ASF GitHub Bot commented on YARN-11290:
---------------------------------------

slfan1989 commented on code in PR #4846:
URL: https://github.com/apache/hadoop/pull/4846#discussion_r962114313


##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.java:
##########
@@ -255,14 +261,33 @@ public GetApplicationHomeSubClusterResponse 
getApplicationHomeSubCluster(
   @Override
   public GetApplicationsHomeSubClusterResponse getApplicationsHomeSubCluster(
       GetApplicationsHomeSubClusterRequest request) throws YarnException {
-    List<ApplicationHomeSubCluster> result =
-        new ArrayList<ApplicationHomeSubCluster>();
-    for (Entry<ApplicationId, SubClusterId> e : applications.entrySet()) {
-      result
-          .add(ApplicationHomeSubCluster.newInstance(e.getKey(), 
e.getValue()));
+
+    if (request == null) {
+      throw new YarnException("Missing getApplicationsHomeSubCluster request");
+    }
+
+    List<ApplicationHomeSubCluster> result = new ArrayList<>();
+    List<ApplicationId> applicationIdList =
+        applications.keySet().stream().collect(Collectors.toList());
+
+    SubClusterId requestSubClusterId = request.getSubClusterId();
+    int appCount = 0;
+    for (int i = 0; i < applicationIdList.size(); i++) {
+      if (appCount >= maxAppsInStateStore) {
+        break;
+      }
+      ApplicationId applicationId = applicationIdList.get(i);
+      SubClusterId subClusterId = applications.get(applicationId);
+      // If the requestSubClusterId that needs to be filtered in the request
+      // is inconsistent with the SubClusterId in the data, continue to the 
next round
+      if (requestSubClusterId != null && 
!requestSubClusterId.equals(subClusterId)){
+        continue;
+      }
+      result.add(ApplicationHomeSubCluster.newInstance(applicationId, 
subClusterId));

Review Comment:
   I will fix it.





> Improve Query Condition of FederationStateStore#getApplicationsHomeSubCluster
> -----------------------------------------------------------------------------
>
>                 Key: YARN-11290
>                 URL: https://issues.apache.org/jira/browse/YARN-11290
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: federation
>    Affects Versions: 3.4.0
>            Reporter: fanshilun
>            Assignee: fanshilun
>            Priority: Minor
>              Labels: pull-request-available
>
> 1. Currently this interface returns the number of apps in all sub-clusters, 
> increasing the limit on the number of query apps, limited to 1000 apps.
> 2. Allows to query the App based on the specified HomeSubCluster.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to