hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4181) HConnectionManager can't find cached HRegionInterface makes client very slow
Date Tue, 09 Aug 2011 19:06:27 GMT

    [ https://issues.apache.org/jira/browse/HBASE-4181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13081844#comment-13081844
] 

Hudson commented on HBASE-4181:
-------------------------------

Integrated in HBase-TRUNK #2100 (See [https://builds.apache.org/job/HBase-TRUNK/2100/])
    HBASE-4181 HConnectionManager can't find cached HRegionInterface and makes clients work
very slow

stack : 
Files : 
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
* /hbase/trunk/CHANGES.txt


> HConnectionManager can't find cached HRegionInterface makes client very slow
> ----------------------------------------------------------------------------
>
>                 Key: HBASE-4181
>                 URL: https://issues.apache.org/jira/browse/HBASE-4181
>             Project: HBase
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 0.92.0
>            Reporter: Liu Jia
>            Assignee: Liu Jia
>            Priority: Critical
>              Labels: HConnectionManager
>             Fix For: 0.92.0
>
>         Attachments: HBASE-4181-trunk-v2.patch, HBASE-4181-trunk-v3.patch, HBASE-4181.patch,
HConnectionManager.patch
>
>
> HRegionInterface getHRegionConnection(final String hostname,
>         final int port, final InetSocketAddress isa, final boolean master)
>         throws IOException 
> /////////////////////////
> 	String rsName = isa != null ? isa.toString() : Addressing
>           .createHostAndPortStr(hostname, port); 
>                 
> ////here,if isa is null, the Addressing created a address like "node41:60010"
>                                                                  ////should use "isa.toString():new
InetSocketAddress(hostname, port).toString();" 
>                                                                  ////instead of "Addressing.createHostAndPortStr(hostname,
port);"
>  	server = this.servers.get(rsName);                                      
>       if (server == null) {
>         // create a unique lock for this RS (if necessary)
>         this.connectionLock.putIfAbsent(rsName, rsName);
>         // get the RS lock
>         synchronized (this.connectionLock.get(rsName)) {
>           // do one more lookup in case we were stalled above
>           server = this.servers.get(rsName);
>           if (server == null) {
>             try {
>               if (clusterId.hasId()) {
>                 conf.set(HConstants.CLUSTER_ID, clusterId.getId());
>               }
>               // Only create isa when we need to.
>               InetSocketAddress address = isa != null ? isa
>                   : new InetSocketAddress(hostname, port);
>               // definitely a cache miss. establish an RPC for this RS
>               server = (HRegionInterface) HBaseRPC.waitForProxy(
>                   serverInterfaceClass, HRegionInterface.VERSION, address,
>                   this.conf, this.maxRPCAttempts, this.rpcTimeout,
>                   this.rpcTimeout);
>               this.servers.put(address.toString(), server);    
>           
> ////but here address.toString() send an address like "node41/10.61.2l.171:60010
> ////so this method can never get cached address and make client request very slow due
to it's synchronized.
> 	
>                   
>             } catch (RemoteException e) {
>               LOG.warn("RemoteException connecting to RS", e);
>               // Throw what the RemoteException was carrying.
>               throw RemoteExceptionHandler.decodeRemoteException(e);
>             }
>           }
>         }
> ///////////////////////

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message