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 ra...@apache.org on 2009/07/24 00:28:26 UTC
svn commit: r797248 - in /hadoop/common/trunk: CHANGES.txt
src/java/org/apache/hadoop/ipc/RPC.java
Author: rangadi
Date: Thu Jul 23 22:28:26 2009
New Revision: 797248
URL: http://svn.apache.org/viewvc?rev=797248&view=rev
Log:
HADOOP-6132. RPC client create an extra connection because of incorrect
key for connection cache. (Kan Zhang via rangadi)
Modified:
hadoop/common/trunk/CHANGES.txt
hadoop/common/trunk/src/java/org/apache/hadoop/ipc/RPC.java
Modified: hadoop/common/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/CHANGES.txt?rev=797248&r1=797247&r2=797248&view=diff
==============================================================================
--- hadoop/common/trunk/CHANGES.txt (original)
+++ hadoop/common/trunk/CHANGES.txt Thu Jul 23 22:28:26 2009
@@ -888,6 +888,9 @@
HADOOP-6138. Eliminate the depracate warnings introduced by H-5438.
(He Yongqiang via szetszwo)
+ HADOOP-6132. RPC client create an extra connection because of incorrect
+ key for connection cache. (Kan Zhang via rangadi)
+
Release 0.20.1 - Unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/common/trunk/src/java/org/apache/hadoop/ipc/RPC.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/ipc/RPC.java?rev=797248&r1=797247&r2=797248&view=diff
==============================================================================
--- hadoop/common/trunk/src/java/org/apache/hadoop/ipc/RPC.java (original)
+++ hadoop/common/trunk/src/java/org/apache/hadoop/ipc/RPC.java Thu Jul 23 22:28:26 2009
@@ -197,13 +197,16 @@
private static ClientCache CLIENTS=new ClientCache();
private static class Invoker implements InvocationHandler {
+ private Class<? extends VersionedProtocol> protocol;
private InetSocketAddress address;
private UserGroupInformation ticket;
private Client client;
private boolean isClosed = false;
- public Invoker(InetSocketAddress address, UserGroupInformation ticket,
- Configuration conf, SocketFactory factory) {
+ public Invoker(Class<? extends VersionedProtocol> protocol,
+ InetSocketAddress address, UserGroupInformation ticket,
+ Configuration conf, SocketFactory factory) {
+ this.protocol = protocol;
this.address = address;
this.ticket = ticket;
this.client = CLIENTS.getClient(conf, factory);
@@ -219,7 +222,7 @@
ObjectWritable value = (ObjectWritable)
client.call(new Invocation(method, args), address,
- method.getDeclaringClass(), ticket);
+ protocol, ticket);
if (logDebug) {
long callTime = System.currentTimeMillis() - startTime;
LOG.debug("Call: " + method.getName() + " " + callTime);
@@ -283,7 +286,8 @@
}
}
- public static VersionedProtocol waitForProxy(Class protocol,
+ public static VersionedProtocol waitForProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion,
InetSocketAddress addr,
Configuration conf
@@ -301,7 +305,8 @@
* @return the proxy
* @throws IOException if the far end through a RemoteException
*/
- static VersionedProtocol waitForProxy(Class protocol,
+ static VersionedProtocol waitForProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion,
InetSocketAddress addr,
Configuration conf,
@@ -334,7 +339,8 @@
}
/** Construct a client-side proxy object that implements the named protocol,
* talking to a server at the named address. */
- public static VersionedProtocol getProxy(Class<?> protocol,
+ public static VersionedProtocol getProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion, InetSocketAddress addr, Configuration conf,
SocketFactory factory) throws IOException {
UserGroupInformation ugi = null;
@@ -348,14 +354,15 @@
/** Construct a client-side proxy object that implements the named protocol,
* talking to a server at the named address. */
- public static VersionedProtocol getProxy(Class<?> protocol,
+ public static VersionedProtocol getProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion, InetSocketAddress addr, UserGroupInformation ticket,
Configuration conf, SocketFactory factory) throws IOException {
VersionedProtocol proxy =
(VersionedProtocol) Proxy.newProxyInstance(
protocol.getClassLoader(), new Class[] { protocol },
- new Invoker(addr, ticket, conf, factory));
+ new Invoker(protocol, addr, ticket, conf, factory));
long serverVersion = proxy.getProtocolVersion(protocol.getName(),
clientVersion);
if (serverVersion == clientVersion) {
@@ -376,7 +383,8 @@
* @return a proxy instance
* @throws IOException
*/
- public static VersionedProtocol getProxy(Class<?> protocol,
+ public static VersionedProtocol getProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion, InetSocketAddress addr, Configuration conf)
throws IOException {