You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by jm...@apache.org on 2016/02/18 16:51:11 UTC
incubator-slider git commit: SLIDER-1079 cache metainfo object in
AgentClientProvider. Contributed by Shanyu Zhao.
Repository: incubator-slider
Updated Branches:
refs/heads/develop 51f9ab1c0 -> 3627d5d07
Updated Tags: refs/tags/HDP-2.2.9.0-tag [created] 1980a2c9b
refs/tags/HDP-2.3.3.0-tag [created] 714ae5bc6
refs/tags/HDP-2.3.4.0-tag [created] 6e54b9d8c
refs/tags/HDP-2.3.5.0-tag [created] c028426dc
refs/tags/HDP-2.3.99.0-tag [created] 6cf8625a8
SLIDER-1079 cache metainfo object in AgentClientProvider. Contributed by Shanyu Zhao.
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/3627d5d0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/3627d5d0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/3627d5d0
Branch: refs/heads/develop
Commit: 3627d5d077eca1158c27e03d7ea6e627fd6ff445
Parents: 51f9ab1
Author: shanyu zhao <sh...@microsoft.com>
Authored: Thu Feb 18 10:50:41 2016 -0500
Committer: Jon Maron <jm...@hortonworks.com>
Committed: Thu Feb 18 10:50:41 2016 -0500
----------------------------------------------------------------------
.../providers/agent/AgentClientProvider.java | 40 +++++++++++---------
1 file changed, 22 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/3627d5d0/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
index e8f61a9..12d581c 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
@@ -64,6 +64,7 @@ import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -85,6 +86,7 @@ public class AgentClientProvider extends AbstractClientProvider
public static final String E_COULD_NOT_READ_METAINFO
= "Not a valid app package. Could not read metainfo.";
+ protected static Map<String, Metainfo> metaInfoMap = new ConcurrentHashMap<String, Metainfo>();
protected AgentClientProvider(Configuration conf) {
super(conf);
@@ -166,15 +168,7 @@ public class AgentClientProvider extends AbstractClientProvider
names.remove(SliderKeys.COMPONENT_AM);
Map<Integer, String> priorityMap = new HashMap<Integer, String>();
- Metainfo metaInfo = null;
- if (fs != null) {
- try {
- metaInfo = AgentUtils.getApplicationMetainfo(fs, appDef, false);
- } catch (IOException ioe) {
- // Ignore missing metainfo file for now
- log.info("Missing metainfo {}", ioe.getMessage());
- }
- }
+ Metainfo metaInfo = getMetainfo(fs, appDef);
for (String name : names) {
MapOperations component = resources.getMandatoryComponent(name);
@@ -279,20 +273,14 @@ public class AgentClientProvider extends AbstractClientProvider
public Set<String> getApplicationTags(SliderFileSystem fileSystem,
String appDef) throws SliderException {
Set<String> tags;
- Metainfo metainfo;
- try {
- metainfo = AgentUtils.getApplicationMetainfo(fileSystem, appDef, false);
- } catch (IOException e) {
- log.error("Error retrieving metainfo from {}", appDef, e);
- throw new SliderException("Error retrieving metainfo", e);
- }
+ Metainfo metaInfo = getMetainfo(fileSystem, appDef);
- if (metainfo == null) {
+ if (metaInfo == null) {
log.error("Error retrieving metainfo from {}", appDef);
throw new SliderException("Error parsing metainfo file, possibly bad structure.");
}
- Application application = metainfo.getApplication();
+ Application application = metaInfo.getApplication();
tags = new HashSet<String>();
tags.add("Name: " + application.getName());
tags.add("Version: " + application.getVersion());
@@ -601,4 +589,20 @@ public class AgentClientProvider extends AbstractClientProvider
output.close();
}
}
+
+ private Metainfo getMetainfo(SliderFileSystem fs, String appDef) {
+ Metainfo metaInfo = metaInfoMap.get(appDef);
+ if (fs != null && metaInfo == null) {
+ try {
+ metaInfo = AgentUtils.getApplicationMetainfo(fs, appDef, false);
+ metaInfoMap.put(appDef, metaInfo);
+ } catch (IOException ioe) {
+ // Ignore missing metainfo file for now
+ log.info("Missing metainfo {}", ioe.getMessage());
+ } catch (BadConfigException bce) {
+ log.info("Bad Configuration {}", bce.getMessage());
+ }
+ }
+ return metaInfo;
+ }
}