Author: cdouglas
Date: Thu Jul 31 11:45:09 2008
New Revision: 681437
URL: http://svn.apache.org/viewvc?rev=681437&view=rev
Log:
HADOOP-3865. Remove reference to FSNamesystem from metrics preventing
garbage collection. Contributed by Lohit Vijayarenu
Modified:
hadoop/core/trunk/CHANGES.txt
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/metrics/FSNamesystemMetrics.java
Modified: hadoop/core/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=681437&r1=681436&r2=681437&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Thu Jul 31 11:45:09 2008
@@ -982,6 +982,9 @@
HADOOP-3827. Fixed compression of empty map-outputs. (acmurthy)
+ HADOOP-3865. Remove reference to FSNamesystem from metrics preventing
+ garbage collection. (Lohit Vijayarenu via cdouglas)
+
Release 0.17.2 - Unreleased
BUG FIXES
Modified:
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL:
http://svn.apache.org/viewvc/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=681437&r1=681436&r2=681437&view=diff
==============================================================================
---
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
(original)
+++
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Thu Jul 31 11:45:09 2008
@@ -388,7 +388,6 @@
*/
FSNamesystem(FSImage fsImage, Configuration conf) throws IOException {
setConfigurationParameters(conf);
- this.registerMBean(conf);
this.dir = new FSDirectory(fsImage, this, conf);
}
@@ -4322,7 +4321,7 @@
// package naming for mbeans and their impl.
StandardMBean bean;
try {
- myFSMetrics = new FSNamesystemMetrics(conf, this);
+ myFSMetrics = new FSNamesystemMetrics(conf);
bean = new StandardMBean(this,FSNamesystemMBean.class);
mbeanName = MBeanUtil.registerMBean("NameNode", "FSNamesystemStatus",
bean);
} catch (NotCompliantMBeanException e) {
Modified:
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/metrics/FSNamesystemMetrics.java
URL:
http://svn.apache.org/viewvc/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/metrics/FSNamesystemMetrics.java?rev=681437&r1=681436&r2=681437&view=diff
==============================================================================
---
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/metrics/FSNamesystemMetrics.java
(original)
+++
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/metrics/FSNamesystemMetrics.java
Thu Jul 31 11:45:09 2008
@@ -22,10 +22,7 @@
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
import org.apache.hadoop.metrics.*;
-import org.apache.hadoop.metrics.jvm.JvmMetrics;
import org.apache.hadoop.metrics.util.MetricsIntValue;
-import org.apache.hadoop.metrics.util.MetricsTimeVaryingInt;
-import org.apache.hadoop.metrics.util.MetricsTimeVaryingRate;
/**
*
@@ -42,7 +39,6 @@
public class FSNamesystemMetrics implements Updater {
private static Log log = LogFactory.getLog(FSNamesystemMetrics.class);
private final MetricsRecord metricsRecord;
- private FSNamesystem fsNameSystem;
public MetricsIntValue filesTotal = new MetricsIntValue("FilesTotal");
public MetricsIntValue blocksTotal = new MetricsIntValue("BlocksTotal");
@@ -53,9 +49,8 @@
public MetricsIntValue pendingReplicationBlocks = new
MetricsIntValue("PendingReplicationBlocks");
public MetricsIntValue underReplicatedBlocks = new
MetricsIntValue("UnderReplicatedBlocks");
public MetricsIntValue scheduledReplicationBlocks = new
MetricsIntValue("ScheduledReplicationBlocks");
- public FSNamesystemMetrics(Configuration conf, FSNamesystem fsNameSystem) {
+ public FSNamesystemMetrics(Configuration conf) {
String sessionId = conf.get("session.id");
- this.fsNameSystem = fsNameSystem;
// Create a record for FSNamesystem metrics
MetricsContext metricsContext = MetricsUtil.getContext("dfs");
@@ -65,10 +60,6 @@
log.info("Initializing FSNamesystemMeterics using context object:" +
metricsContext.getClass().getName());
}
- public void shutdown() {
- if (fsNameSystem != null)
- fsNameSystem.shutdown();
- }
private int roundBytesToGBytes(long bytes) {
return Math.round(((float)bytes/(1024 * 1024 * 1024)));
@@ -89,6 +80,7 @@
*/
public void doUpdates(MetricsContext unused) {
synchronized (this) {
+ FSNamesystem fsNameSystem = FSNamesystem.getFSNamesystem();
filesTotal.set((int)fsNameSystem.getFilesTotal());
filesTotal.pushMetric(metricsRecord);