hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilad Wolff (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-7393) No way to change ProtocolEngine after initial rpc connection is setup
Date Wed, 19 Dec 2012 19:15:13 GMT
Gilad Wolff created HBASE-7393:
----------------------------------

             Summary: No way to change ProtocolEngine after initial rpc connection is setup
                 Key: HBASE-7393
                 URL: https://issues.apache.org/jira/browse/HBASE-7393
             Project: HBase
          Issue Type: Bug
          Components: IPC/RPC
    Affects Versions: 0.92.1
            Reporter: Gilad Wolff


After a master connection is established, if hbase configuration changes to use a different
rpc engine than the one originally used by the client there is no way for client to start
a new connection using a different rpc engine even if the right configuration (i.e., hbase.rpc.engine
is set to the new rpc engine). 

I think the problem is in HBaseRPC.getProtocolEngine:

{code}
    RpcEngine engine = PROTOCOL_ENGINES.get(protocol);
    if (engine == null) {
      // check for a configured default engine
      Class<?> defaultEngine =
          conf.getClass(RPC_ENGINE_PROP, WritableRpcEngine.class);

      // check for a per interface override
      Class<?> impl = conf.getClass(RPC_ENGINE_PROP+"."+protocol.getName(),
                                    defaultEngine);
      LOG.debug("Using "+impl.getName()+" for "+protocol.getName());
      engine = (RpcEngine) ReflectionUtils.newInstance(impl, conf);
      if (protocol.isInterface())
        PROXY_ENGINES.put(Proxy.getProxyClass(protocol.getClassLoader(),
                                              protocol),
                          engine);
      PROTOCOL_ENGINES.put(protocol, engine);
    }
    return engine;
{code}

It seems that if a certain rpc engine was using to access the HMasterInterface before, the
same rpc engine will be used regardless of the configuration passed.

It will be better if the client jvm won't have to restart in order to replace the rpc engine
used.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message