From 53973db61bc5c91621f3c2de8d19967bf7a66bde Mon Sep 17 00:00:00 2001 From: Tsz-wo Sze Date: Wed, 11 Jan 2012 06:42:12 +0000 Subject: [PATCH] Merge r1190620 and r1229897 from trunk for HDFS-2499. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23-PB@1229903 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 + .../JournalProtocolTranslatorR23.java | 57 ++----------------- 2 files changed, 7 insertions(+), 53 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index ccc91c1fa90..d531b01c139 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -39,6 +39,9 @@ Release 0.23-PB - Unreleased HDFS-2497 Fix TestBackupNode failure. (suresh) + HDFS-2499. RPC client is created incorrectly introduced in HDFS-2459. + (suresh) + Release 0.23.1 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolR23Compatible/JournalProtocolTranslatorR23.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolR23Compatible/JournalProtocolTranslatorR23.java index 6c46dac5f47..49f167b6cf6 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolR23Compatible/JournalProtocolTranslatorR23.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolR23Compatible/JournalProtocolTranslatorR23.java @@ -20,26 +20,14 @@ package org.apache.hadoop.hdfs.protocolR23Compatible; import java.io.Closeable; import java.io.IOException; import java.net.InetSocketAddress; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException; -import org.apache.hadoop.hdfs.protocol.HdfsConstants; -import org.apache.hadoop.hdfs.server.namenode.NameNode; import org.apache.hadoop.hdfs.server.protocol.JournalProtocol; import org.apache.hadoop.hdfs.server.protocol.NamenodeRegistration; -import org.apache.hadoop.io.retry.RetryPolicies; -import org.apache.hadoop.io.retry.RetryPolicy; -import org.apache.hadoop.io.retry.RetryProxy; import org.apache.hadoop.ipc.ProtocolSignature; import org.apache.hadoop.ipc.RPC; -import org.apache.hadoop.ipc.RemoteException; -import org.apache.hadoop.net.NetUtils; -import org.apache.hadoop.security.UserGroupInformation; /** * This class forwards NN's ClientProtocol calls as RPC calls to the NN server @@ -50,54 +38,17 @@ import org.apache.hadoop.security.UserGroupInformation; @InterfaceStability.Stable public class JournalProtocolTranslatorR23 implements JournalProtocol, Closeable { - final private JournalWireProtocol rpcProxyWithoutRetry; - final private JournalWireProtocol rpcProxy; - - private static JournalWireProtocol createNamenode( - InetSocketAddress nameNodeAddr, Configuration conf, - UserGroupInformation ugi) throws IOException { - return RPC.getProxy(JournalWireProtocol.class, - JournalWireProtocol.versionID, nameNodeAddr, ugi, conf, - NetUtils.getSocketFactory(conf, JournalWireProtocol.class)); - } - - /** Create a {@link NameNode} proxy */ - static JournalWireProtocol createNamenodeWithRetry( - JournalWireProtocol rpcNamenode) { - RetryPolicy createPolicy = RetryPolicies - .retryUpToMaximumCountWithFixedSleep(5, - HdfsConstants.LEASE_SOFTLIMIT_PERIOD, TimeUnit.MILLISECONDS); - - Map, RetryPolicy> remoteExceptionToPolicyMap = - new HashMap, RetryPolicy>(); - remoteExceptionToPolicyMap.put(AlreadyBeingCreatedException.class, - createPolicy); - - Map, RetryPolicy> exceptionToPolicyMap = - new HashMap, RetryPolicy>(); - exceptionToPolicyMap.put(RemoteException.class, RetryPolicies - .retryByRemoteException(RetryPolicies.TRY_ONCE_THEN_FAIL, - remoteExceptionToPolicyMap)); - RetryPolicy methodPolicy = RetryPolicies.retryByException( - RetryPolicies.TRY_ONCE_THEN_FAIL, exceptionToPolicyMap); - Map methodNameToPolicyMap = new HashMap(); - - methodNameToPolicyMap.put("create", methodPolicy); - - return (JournalWireProtocol) RetryProxy.create( - JournalWireProtocol.class, rpcNamenode, methodNameToPolicyMap); - } + private final JournalWireProtocol rpcProxy; public JournalProtocolTranslatorR23(InetSocketAddress nameNodeAddr, Configuration conf) throws IOException { - UserGroupInformation ugi = UserGroupInformation.getCurrentUser(); - rpcProxyWithoutRetry = createNamenode(nameNodeAddr, conf, ugi); - rpcProxy = createNamenodeWithRetry(rpcProxyWithoutRetry); + rpcProxy = RPC.getProxy(JournalWireProtocol.class, + JournalWireProtocol.versionID, nameNodeAddr, conf); } @Override public void close() { - RPC.stopProxy(rpcProxyWithoutRetry); + RPC.stopProxy(rpcProxy); } @Override