HDFS-7215.Add JvmPauseMonitor to NFS gateway. Contributed by Brandon Li
This commit is contained in:
parent
6f2028bd15
commit
4e134a02a4
|
@ -50,7 +50,7 @@ public abstract class Nfs3Base {
|
|||
startTCPServer(); // Start TCP server
|
||||
|
||||
if (register) {
|
||||
ShutdownHookManager.get().addShutdownHook(new Unregister(),
|
||||
ShutdownHookManager.get().addShutdownHook(new NfsShutdownHook(),
|
||||
SHUTDOWN_HOOK_PRIORITY);
|
||||
try {
|
||||
rpcProgram.register(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
|
||||
|
@ -74,10 +74,11 @@ public abstract class Nfs3Base {
|
|||
*/
|
||||
public static final int SHUTDOWN_HOOK_PRIORITY = 10;
|
||||
|
||||
private class Unregister implements Runnable {
|
||||
private class NfsShutdownHook implements Runnable {
|
||||
@Override
|
||||
public synchronized void run() {
|
||||
rpcProgram.unregister(PortmapMapping.TRANSPORT_TCP, nfsBoundPort);
|
||||
rpcProgram.stopDaemons();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,8 +136,9 @@ public abstract class RpcProgram extends SimpleChannelUpstreamHandler {
|
|||
}
|
||||
}
|
||||
|
||||
// Start extra daemons
|
||||
// Start extra daemons or services
|
||||
public void startDaemons() {}
|
||||
public void stopDaemons() {}
|
||||
|
||||
@Override
|
||||
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
|
||||
|
|
|
@ -126,6 +126,7 @@ import org.apache.hadoop.security.AccessControlException;
|
|||
import org.apache.hadoop.security.SecurityUtil;
|
||||
import org.apache.hadoop.security.UserGroupInformation;
|
||||
import org.apache.hadoop.security.authorize.AuthorizationException;
|
||||
import org.apache.hadoop.util.JvmPauseMonitor;
|
||||
import org.jboss.netty.buffer.ChannelBuffer;
|
||||
import org.jboss.netty.buffer.ChannelBuffers;
|
||||
import org.jboss.netty.channel.Channel;
|
||||
|
@ -158,6 +159,7 @@ public class RpcProgramNfs3 extends RpcProgram implements Nfs3Interface {
|
|||
private String writeDumpDir; // The dir save dump files
|
||||
|
||||
private final RpcCallCache rpcCallCache;
|
||||
private JvmPauseMonitor pauseMonitor;
|
||||
|
||||
public RpcProgramNfs3(NfsConfiguration config, DatagramSocket registrationSocket,
|
||||
boolean allowInsecurePorts) throws IOException {
|
||||
|
@ -219,7 +221,21 @@ public class RpcProgramNfs3 extends RpcProgram implements Nfs3Interface {
|
|||
|
||||
@Override
|
||||
public void startDaemons() {
|
||||
writeManager.startAsyncDataSerivce();
|
||||
if (pauseMonitor == null) {
|
||||
pauseMonitor = new JvmPauseMonitor(config);
|
||||
pauseMonitor.start();
|
||||
}
|
||||
writeManager.startAsyncDataSerivce();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopDaemons() {
|
||||
if (writeManager != null) {
|
||||
writeManager.shutdownAsyncDataService();
|
||||
}
|
||||
if (pauseMonitor != null) {
|
||||
pauseMonitor.stop();
|
||||
}
|
||||
}
|
||||
|
||||
// Checks the type of IOException and maps it to appropriate Nfs3Status code.
|
||||
|
|
|
@ -979,6 +979,8 @@ Release 2.6.0 - UNRELEASED
|
|||
HDFS-7259. Unresponseive NFS mount point due to deferred COMMIT response.
|
||||
(brandonli)
|
||||
|
||||
HDFS-7215.Add JvmPauseMonitor to NFS gateway (brandonli)
|
||||
|
||||
BREAKDOWN OF HDFS-6134 AND HADOOP-10150 SUBTASKS AND RELATED JIRAS
|
||||
|
||||
HDFS-6387. HDFS CLI admin tool for creating & deleting an
|
||||
|
|
|
@ -171,7 +171,9 @@ HDFS NFS Gateway
|
|||
</property>
|
||||
----
|
||||
|
||||
* Customize log settings. To get NFS debug trace, users can edit the log4j.property file
|
||||
* JVM and log settings. You can export JVM settings (e.g., heap size and GC log) in
|
||||
HADOOP_NFS3_OPTS. More NFS related settings can be found in hadoop-env.sh.
|
||||
To get NFS debug trace, you can edit the log4j.property file
|
||||
to add the following. Note, debug trace, especially for ONCRPC, can be very verbose.
|
||||
|
||||
To change logging level:
|
||||
|
|
Loading…
Reference in New Issue