hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samarth Jain (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-18359) CoprocessorHConnection#getConnectionForEnvironment should read config from CoprocessorEnvironment from CoporcessorEnvironment
Date Tue, 11 Jul 2017 02:15:00 GMT
Samarth Jain created HBASE-18359:
------------------------------------

             Summary: CoprocessorHConnection#getConnectionForEnvironment should read config
from CoprocessorEnvironment from CoporcessorEnvironment
                 Key: HBASE-18359
                 URL: https://issues.apache.org/jira/browse/HBASE-18359
             Project: HBase
          Issue Type: Bug
            Reporter: Samarth Jain


It seems like the method getConnectionForEnvironment isn't doing the right thing when it is
creating a CoprocessorHConnection by reading the config from HRegionServer and not from the
env passed in. 

If coprocessors want to use a CoprocessorHConnection with some custom config settings, then
they have no option but to configure it in the hbase-site.xml of the region servers. This
isn't ideal as a lot of times these "global" level configs can have side effects. See PHOENIX-3974
as an example where configuring ServerRpcControllerFactory (a Phoenix implementation of RpcControllerFactory)
could result in deadlocks. Or PHOENIX-3983 where presence of this global config causes our
index rebuild code to incorrectly use handlers it shouldn't.

If the CoprocessorHConnection created through getConnectionForEnvironment API used the CoprocessorEnvironment
config, then it would allow co-processors to pass in their own config without needing to configure
them in hbase-site.xml. 

The change would be simple. Basically change the below

{code}
if (services instanceof HRegionServer) {
        return new CoprocessorHConnection((HRegionServer) services);
}
{code}

to

{code}
if (services instanceof HRegionServer) {
        return new CoprocessorHConnection(env.getConfiguration(), (HRegionServer) services);
}
{code}





--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message