[ https://issues.apache.org/jira/browse/YARN-1007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13727821#comment-13727821 ]
Zhijie Shen commented on YARN-1007: ----------------------------------- +1 for {code} Collection<ContainerHistoryData> getContainers(ApplicationAttemptId appAttemptId); {code} If the storage is black box, {code} Collection<ContainerHistoryData> getContainers(ApplicationId appId) {code} may be not necessary, but can be derived from {code} Collection<ContainerHistoryData> containers = ArrayList<ContainerHistoryData>(); for (ApplicationAttemptHistoryData appAttempt : getApplicationAttempts(appId)) { containers.addAll(getContainers(appAttempt.getApplicationAttemptId()); } return containers; {code} However, if it the underlying I/O operations can be optimized for direct getContainers(ApplicationId appId), it will be a different story. Anyway, currently we'd better focus on making the end-to-end system available, and leave the performance issues to do later. Thoughts? > [YARN-321] Enhance History Reader interface for Containers > ---------------------------------------------------------- > > Key: YARN-1007 > URL: https://issues.apache.org/jira/browse/YARN-1007 > Project: Hadoop YARN > Issue Type: Sub-task > Affects Versions: YARN-321 > Reporter: Devaraj K > Assignee: Mayank Bansal > > If we want to show the containers used by application/app attempt, We need to > have two more API's which returns collection of ContainerHistoryData for > application id and applcation attempt id something like below. > {code:xml} > Collection<ContainerHistoryData> getContainers( > ApplicationAttemptId appAttemptId); > Collection<ContainerHistoryData> getContainers(ApplicationId appId); > {code} > {code:xml} > /** > * This method returns {@link Container} for specified {@link ContainerId}. > * > * @param {@link ContainerId} > * @return {@link Container} for ContainerId > */ > ContainerHistoryData getAMContainer(ContainerId containerId); > {code} > In the above API, we need to change the argument to application attempt id or > we can remove this API because every attempt history data has master > container id field, using master container id, history data can get using > this below API if it takes argument as container id. > {code:xml} > /** > * This method returns {@link ContainerHistoryData} for specified > * {@link ApplicationAttemptId}. > * > * @param {@link ApplicationAttemptId} > * @return {@link ContainerHistoryData} for ApplicationAttemptId > */ > ContainerHistoryData getContainer(ApplicationAttemptId appAttemptId); > {code} > Here application attempt can use numbers of containers but we cannot choose > which container history data to return. This API argument also need to be > changed to take container id instead of app attempt id. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira