You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cu...@apache.org on 2007/01/17 01:11:43 UTC
svn commit: r496899 - in /lucene/hadoop/trunk: CHANGES.txt
src/java/org/apache/hadoop/metrics/ContextFactory.java
Author: cutting
Date: Tue Jan 16 16:11:43 2007
New Revision: 496899
URL: http://svn.apache.org/viewvc?view=rev&rev=496899
Log:
HADOOP-886. Reduce number of timer threads created by metrics API by pooling contexts. Contributed by Nigel.
Modified:
lucene/hadoop/trunk/CHANGES.txt
lucene/hadoop/trunk/src/java/org/apache/hadoop/metrics/ContextFactory.java
Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=496899&r1=496898&r2=496899
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Tue Jan 16 16:11:43 2007
@@ -32,6 +32,9 @@
An exception is still thrown, but corrupt blocks are now removed
when they have replicas. (Wendy Chien via cutting)
+ 9. HADOOP-886. Reduce number of timer threads created by metrics API
+ by pooling contexts. (Nigel Daley via cutting)
+
Release 0.10.1 - 2007-01-10
Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/metrics/ContextFactory.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/metrics/ContextFactory.java?view=diff&rev=496899&r1=496898&r2=496899
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/metrics/ContextFactory.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/metrics/ContextFactory.java Tue Jan 16 16:11:43 2007
@@ -45,6 +45,7 @@
// private Map<String,Object> attributeMap = new HashMap<String,Object>();
private Map attributeMap = new HashMap();
+ private Map<String,MetricsContext> contextMap = new HashMap<String,MetricsContext>();
/** Creates a new instance of ContextFactory */
protected ContextFactory() {
@@ -112,9 +113,10 @@
* @param contextName the name of the context
* @return the named MetricsContext
*/
- public MetricsContext getContext(String contextName)
+ public synchronized MetricsContext getContext(String contextName)
throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException
{
+ if (contextMap.containsKey(contextName)) return contextMap.get(contextName);
String classNameAttribute = contextName + CONTEXT_CLASS_SUFFIX;
String className = (String) getAttribute(classNameAttribute);
if (className == null) {
@@ -124,6 +126,7 @@
AbstractMetricsContext metricsContext =
(AbstractMetricsContext) contextClass.newInstance();
metricsContext.init(contextName, this);
+ contextMap.put(contextName, metricsContext);
return metricsContext;
}