[ 
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

Reply via email to