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

Benoy Antony edited comment on YARN-6285 at 3/4/17 12:05 AM:
-------------------------------------------------------------

Thanks for the patch, [~zhaoyunjiong]. 
Few comments:
1.
{code}
public static final long DEFAULT_RM_MAX_LIMIT_GET_APPLICATIONS =  
DEFAULT_RM_MAX_COMPLETED_APPLICATIONS;
{code}
I think , it's better to keep the _DEFAULT_RM_MAX_LIMIT_GET_APPLICATIONS_ 
independent of _DEFAULT_RM_MAX_COMPLETED_APPLICATIONS_. 
If we need to maintain backward compatibility, the default should be 
Integer.MAX_VALUE. 
I personally think that it should be set to 1000.

2. Please indicate the default value in the property description.

3.  
{code}
LOG.info("User " + callerUGI.getUserName() +
         " called getApplications with limit=" + limit);
{code}

Please indicate that the value is changed to the the max value.
{code}
LOG.info("User " + callerUGI.getUserName() +
         " called getApplications with limit=" + limit + ". Changing it to " + 
maxLimitGetApplications);
{code}

4. 
{code}
protected void setMaxLimitGetApplications(long limit)
{code}
Can it be package access instead of protected ?


was (Author: benoyantony):
Thanks for the patch, [~zhaoyunjiong]. 
Few comments:
1.
{code}
public static final long DEFAULT_RM_MAX_LIMIT_GET_APPLICATIONS =  
DEFAULT_RM_MAX_COMPLETED_APPLICATIONS;
{code}
I think , it's better to keep the _DEFAULT_RM_MAX_LIMIT_GET_APPLICATIONS_ 
independent of _DEFAULT_RM_MAX_COMPLETED_APPLICATIONS_. 
If we need to maintain backward compatibility, the default should be 
Integer.MAX_VALUE. 
I personally think that it should be set to 1000.

2. Please indicate the default value in the property description.

3.  
{code}
LOG.info("User " + callerUGI.getUserName() +
         " called getApplications with limit=" + limit);
{code}

Please indicate that the value is changed to the the max value.
LOG.info("User " + callerUGI.getUserName() +
         " called getApplications with limit=" + limit + ". Changing it to " + 
maxLimitGetApplications);
{code}

4. 
{code}
protected void setMaxLimitGetApplications(long limit)
{code}
Can it be package access instead of protected ?

> Add option to set max limit on ResourceManager for 
> ApplicationClientProtocol.getApplications
> --------------------------------------------------------------------------------------------
>
>                 Key: YARN-6285
>                 URL: https://issues.apache.org/jira/browse/YARN-6285
>             Project: Hadoop YARN
>          Issue Type: Improvement
>            Reporter: yunjiong zhao
>            Assignee: yunjiong zhao
>         Attachments: YARN-6285.001.patch, YARN-6285.002.patch
>
>
> When users called ApplicationClientProtocol.getApplications, it will return 
> lots of data, and generate lots of garbage on ResourceManager which caused 
> long time GC.
> For example, on one of our RM, when called rest API " http://<rm http 
> address:port>/ws/v1/cluster/apps" it can return 150MB data which have 944 
> applications.
> getApplications have limit parameter, but some user might not set it, and 
> then the limit will be Long.MAX_VALUE.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to