[ https://issues.apache.org/jira/browse/YARN-9048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17767171#comment-17767171 ]
ASF GitHub Bot commented on YARN-9048: -------------------------------------- slfan1989 commented on code in PR #6016: URL: https://github.com/apache/hadoop/pull/6016#discussion_r1331838567 ########## hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/store/impl/ZookeeperFederationStateStore.java: ########## @@ -761,11 +867,46 @@ private ApplicationHomeSubCluster getApplicationHomeSubCluster( private void storeOrUpdateApplicationHomeSubCluster(final ApplicationId applicationId, final ApplicationHomeSubCluster applicationHomeSubCluster, boolean update) throws YarnException { - String appZNode = getNodePath(appsZNode, applicationId.toString()); - ApplicationHomeSubClusterProto proto = - ((ApplicationHomeSubClusterPBImpl) applicationHomeSubCluster).getProto(); - byte[] data = proto.toByteArray(); - put(appZNode, data, update); + try { + ApplicationHomeSubClusterProto proto = + ((ApplicationHomeSubClusterPBImpl) applicationHomeSubCluster).getProto(); + byte[] data = proto.toByteArray(); + if (update) { + updateApplicationStateInternal(applicationId, data); + } else { + storeApplicationStateInternal(applicationId, data); + } + } catch (Exception e) { + throw new YarnException(e); + } + } + + protected void storeApplicationStateInternal(final ApplicationId applicationId, byte[] data) + throws Exception { + String nodeCreatePath = getLeafAppIdNodePath(applicationId.toString(), true); + LOG.debug("Storing info for app: {} at: {}.", applicationId, nodeCreatePath); + put(nodeCreatePath, data, false); + } + + protected void updateApplicationStateInternal(final ApplicationId applicationId, byte[] data) + throws Exception { + String nodeUpdatePath = getLeafAppIdNodePath(applicationId.toString(), false); + if (!exists(nodeUpdatePath)) { + AppNodeSplitInfo alternatePathInfo = getAlternatePath(applicationId.toString()); + if (alternatePathInfo != null) { + nodeUpdatePath = alternatePathInfo.path; + } else { + // No alternate path exists. Create path as per configured split index. + if (appIdNodeSplitIndex != 0) { Review Comment: Thanks for your suggestion! I will fix it. > Add znode hierarchy in Federation ZK State Store > ------------------------------------------------ > > Key: YARN-9048 > URL: https://issues.apache.org/jira/browse/YARN-9048 > Project: Hadoop YARN > Issue Type: Sub-task > Reporter: Bibin Chundatt > Assignee: Shilun Fan > Priority: Major > Labels: pull-request-available > > Similar to YARN-2962 consider having hierarchy in ZK federation store for > applications -- 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