You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by cm...@apache.org on 2013/07/16 19:57:45 UTC
svn commit: r1503810 - in
/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server:
datanode/DataNode.java namenode/NameNode.java
Author: cmccabe
Date: Tue Jul 16 17:57:44 2013
New Revision: 1503810
URL: http://svn.apache.org/r1503810
Log:
HADOOP-9618. thread which detects GC pauses (Todd Lipcon via Colin Patrick McCabe)
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java?rev=1503810&r1=1503809&r2=1503810&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java Tue Jul 16 17:57:44 2013
@@ -171,6 +171,7 @@ import org.apache.hadoop.util.DiskChecke
import org.apache.hadoop.util.DiskChecker.DiskErrorException;
import org.apache.hadoop.util.DiskChecker.DiskOutOfSpaceException;
import org.apache.hadoop.util.GenericOptionsParser;
+import org.apache.hadoop.util.JvmPauseMonitor;
import org.apache.hadoop.util.ServicePlugin;
import org.apache.hadoop.util.StringUtils;
import org.apache.hadoop.util.Time;
@@ -284,6 +285,8 @@ public class DataNode extends Configured
// For InterDataNodeProtocol
public RPC.Server ipcServer;
+ private JvmPauseMonitor pauseMonitor;
+
private SecureResources secureResources = null;
private AbstractList<File> dataDirs;
private Configuration conf;
@@ -739,6 +742,8 @@ public class DataNode extends Configured
registerMXBean();
initDataXceiver(conf);
startInfoServer(conf);
+ pauseMonitor = new JvmPauseMonitor(conf);
+ pauseMonitor.start();
// BlockPoolTokenSecretManager is required to create ipc server.
this.blockPoolTokenSecretManager = new BlockPoolTokenSecretManager();
@@ -1221,6 +1226,9 @@ public class DataNode extends Configured
if (ipcServer != null) {
ipcServer.stop();
}
+ if (pauseMonitor != null) {
+ pauseMonitor.stop();
+ }
if (dataXceiverServer != null) {
((DataXceiverServer) this.dataXceiverServer.getRunnable()).kill();
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java?rev=1503810&r1=1503809&r2=1503810&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java Tue Jul 16 17:57:44 2013
@@ -78,6 +78,7 @@ import org.apache.hadoop.security.UserGr
import org.apache.hadoop.security.authorize.RefreshAuthorizationPolicyProtocol;
import org.apache.hadoop.tools.GetUserMappingsProtocol;
import org.apache.hadoop.util.ExitUtil.ExitException;
+import org.apache.hadoop.util.JvmPauseMonitor;
import org.apache.hadoop.util.ServicePlugin;
import org.apache.hadoop.util.StringUtils;
@@ -256,6 +257,8 @@ public class NameNode {
private List<ServicePlugin> plugins;
private NameNodeRpcServer rpcServer;
+
+ private JvmPauseMonitor pauseMonitor;
/** Format a new filesystem. Destroys any filesystem that may already
* exist at this location. **/
@@ -463,6 +466,9 @@ public class NameNode {
} else {
validateConfigurationSettingsOrAbort(conf);
}
+
+ pauseMonitor = new JvmPauseMonitor(conf);
+ pauseMonitor.start();
startCommonServices(conf);
}
@@ -543,6 +549,7 @@ public class NameNode {
private void stopCommonServices() {
if(namesystem != null) namesystem.close();
if(rpcServer != null) rpcServer.stop();
+ if (pauseMonitor != null) pauseMonitor.stop();
if (plugins != null) {
for (ServicePlugin p : plugins) {
try {