[
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)