hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10462) Recategorize some of the client facing Public / Private interfaces
Date Wed, 26 Nov 2014 20:07:13 GMT

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

Enis Soztutar commented on HBASE-10462:

The tool in the patch has already been committed in the subtask HBASE-10671. The remaining
things to do here are 
 - subtask for adding a golden file for testing
 - going over our "public" client API and make sure that nothing Private is Public now. For
example, ClientScanner, etc should be private. The client should never see or construct those
 - The unit test and the golden file in the subtasks does not cover our mapreduce APIs (it
only covers what is there in the hbase-client module and it's dependencies. It does not touch
our APIs in the hbase-server module. 

> Recategorize some of the client facing Public / Private interfaces
> ------------------------------------------------------------------
>                 Key: HBASE-10462
>                 URL: https://issues.apache.org/jira/browse/HBASE-10462
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>            Priority: Blocker
>             Fix For: 2.0.0, 0.99.2
>         Attachments: hbase-10462_wip1.patch
> We should go over the list of InterfaceAudience.Public interfaces one more to remove
those that are NOT indeed public interfaces. 
> From current trunk, we should change these from public to private: 
> {code}
> ReversedScannerCallable
> ReversedClientScanner
> ClientScanner  (note that ResultScanner is public interface, while ClientScanner should
not be) 
> ClientSmallScanner
> TableSnapshotScanner -> We need a way of constructing this since it cannot be constructed
from HConnection / HTable. Maybe a basic factory. 
> {code}
> These are not marked: 
> {code}
> Registry, 
> ZooKeeperRegistry
> RpcRetryingCallerFactory
> ZooKeeperKeepAliveConnection
> AsyncProcess
> DelegatingRetryingCallable
> HConnectionKey
> MasterKeepAliveConnection
> MultiServerCallable
> {code}
> We can think about making these public interface: 
> {code}
> ScanMetrics
> {code}
> Add javadoc to: 
> {code}
> Query
> {code}
> We can add a test to find out all classes in client package to check for interface mark.

> We can extend this to brainstorm on the preferred API options. We probably want the clients
to use HTableInterface, instead of HTable everywhere. HConnectionManager comes with bazillion
methods which are not intended for public use, etc. 
> Raising this as blocker to 1.0

This message was sent by Atlassian JIRA

View raw message