[
https://issues.apache.org/jira/browse/HBASE-10479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894062#comment-13894062
]
Enis Soztutar commented on HBASE-10479:
---------------------------------------
Can you also move:
{code}
boolean isTableAvailable(TableName tableName, byte[][] splitKeys) throws
AdminService.BlockingInterface getAdmin(final ServerName serverName) throws
IOException;
ClientService.BlockingInterface getClient(final ServerName serverName) throws
IOException;
HRegionLocation getRegionLocation(TableName tableName, byte [] row,
boolean reload)
void clearCaches(final ServerName sn);
boolean isDeadServer(ServerName serverName);
{code}
I am not sure about setRegionCachePrefetch() and friends. Do people disable
region cache prefetch? Why would a user want to do that? Also isDeadServer()
seems like it does not belong to public interfaces.
While we are at it, lets change the public fields (public static fields) in HC
and HCM as well.
Can we also move this to HConnectionInternal :
HCM.injectNonceGeneratorForTesting()
HCM.execute() is marked private with annotation. But we still have the same
problem in HCM that it contains both public intended methods
(createConnection()) and private methods. Can we reduce the visibility or make
a HCMInternal or smt like that? Same for HCM.findException() and
HCM.setServerSideHConnectionRetries()
Below, we are not using provider?
{code}
+ public static HConnection createConnection(Configuration conf) throws
IOException {
+ UserProvider provider = UserProvider.instantiate(conf);
+ return createConnectionInternal(conf);
{code}
> HConnection interface is public but is used internally, and contains a bunch
> of methods
> ---------------------------------------------------------------------------------------
>
> Key: HBASE-10479
> URL: https://issues.apache.org/jira/browse/HBASE-10479
> Project: HBase
> Issue Type: Improvement
> Reporter: Sergey Shelukhin
> Assignee: Sergey Shelukhin
> Attachments: HBASE-10479.01.patch, HBASE-10479.patch
>
>
> HConnection has too many methods for a public interface, and some of these
> should not be public.
> It is used extensively for internal purposes, so we keep adding methods to it
> that may not make sense for public interface.
> The idea is to create a separate internal interface inheriting HConnection,
> copy some methods to it and deprecate them on HConnection. New methods for
> internal use would be added to new interface; the deprecated methods would
> eventually be removed from public interface.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)