You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@slider.apache.org by "Gour Saha (JIRA)" <ji...@apache.org> on 2016/06/14 07:46:44 UTC

[jira] [Commented] (SLIDER-1079) Cache MetaInfo for AgentClientProvider

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

Gour Saha commented on SLIDER-1079:
-----------------------------------

[~shanyu] this patch is causing a functional issue when slider-core is consumed as a library in a long-running process, like say a rest api service for slider. The following code creates a cache across all requests -
{code}
+  protected static Map<String, Metainfo> metaInfoMap = new ConcurrentHashMap<String, Metainfo>();
{code}

So if an app creation request is received for an app named "abc" say, and then subsequently the app is deleted and a new app with the same name "abc" is created again, this time with a slightly modified metainfo, it throws an exception like this -
{code}
Create application failed
org.apache.slider.core.exceptions.BadConfigException: Component REGIONSERVER is not a member of application.
        at org.apache.slider.providers.agent.AgentClientProvider.validateInstanceDefinition(AgentClientProvider.java:189)
{code}

Please evaluate if metaInfoMap needs to be static OR if there is a better solution. If an alternate solution is not provided, we might have to revert this commit.

> 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
>             Fix For: Slider 0.91
>
>         Attachments: SLIDER-1079.1.patch, 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)