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)