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

Jonathan Maron commented on SLIDER-1079:
----------------------------------------

Looks pretty good.  Can you:

1)  Create a method that encompasses the logic for obtaining the metainfo, e.g.
{code}
Metainfo getMetainfo (FileSystem fileSystem, String appDef) {
    Metainfo metaInfo = metaInfoMap.get(appDef);
    if (metaInfo == null) {
      try {
        metaInfo = AgentUtils.getApplicationMetainfo(fileSystem, appDef, false);
        metaInfoMap.put(appDef, metaInfo);
      } catch (IOException e) {
        log.error("Error retrieving metainfo from {}", appDef, e);
        throw new SliderException("Error retrieving metainfo", e);
      }

   return metainfo;
}
{code}

2)  it may be appropriate to leverage a concurrent map for the metainfo map

3)  Can you see about adding some unit tests to validate functionality (add a 
test method to TestAgentClientProvider)?


> Cache MetaInfo for AgentClientProvider
> --------------------------------------
>
>                 Key: SLIDER-1079
>                 URL: https://issues.apache.org/jira/browse/SLIDER-1079
>             Project: Slider
>          Issue Type: Bug
>          Components: client
>    Affects Versions: Slider 0.81, Slider 0.90.2
>            Reporter: shanyu zhao
>            Assignee: shanyu zhao
>         Attachments: SLIDER-1079.patch
>
>
> During app creation, the slider client calls 
> AgentUtils.getApplicationMetainfo() 3 times. Each time this function actually 
> download the whole app package from HDFS. If the app package is big, this is 
> rather inefficient.
> The 3 places are:
> 1) SliderClient.actionBuild() -> 
> AgentClientProvider.validateInstanceDefinition()
> 2) AgentClientProvider.getApplicagionTags()
> 3) AgentClientProvider.validateInstanceDefinition()
> We should cache the metainfo object in AgentClientProvider.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to