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

Appy commented on HBASE-19007:
------------------------------

So seeing Server exposed, something irked, and these are my lines of thought.
We had MasterServices and RSS. Even if the original author designed these for 
CP only, here we are years down the line cleaning up these confused interfaces. 
I think the reasons were:
- location of these classes: o.a.h.h.master/ o.a.h.h.regionserver - hmm...looks 
like something for internal use.
- Naming. MasterServices - An interface for master?...hmm.. let's use it for 
testing and not exposing HMaster.

We have learnt that marking classes with IA.LP doesn't help if they are deep 
inside our code. Let's not do the same for Server. It's already being used in 
over 100 places internally.
I'd suggest that *anything* and *everything* that needs to be exposed to CP 
should be a method in some env. Even if we want to expose a full set of 
functions, which are already in an internal interface, let's not expose the 
interface. Instead, let's make wrapper functions in the CpEnv. That way:
- we clearly isolate internal and external by this well defined boundary - 
*CoprocessorEnvironment
- Although wrapping fns in Envs is few extra lines of code, this extra step 
ensures that we'll never expose anything to CPs by mistake.
- I like that this boundary is in appropriate location - o.a.h.h.coprocessors.

What do you say [~anoop.hbase], [~stack] ?

> Align Services Interfaces in Master and RegionServer
> ----------------------------------------------------
>
>                 Key: HBASE-19007
>                 URL: https://issues.apache.org/jira/browse/HBASE-19007
>             Project: HBase
>          Issue Type: Task
>            Reporter: stack
>            Priority: Blocker
>
> HBASE-18183 adds a CoprocessorRegionServerService to give a view on 
> RegionServiceServices that is safe to expose to Coprocessors.
> On the Master-side, MasterServices becomes an Interface for exposing to 
> Coprocessors.
> We need to align the two.
> For background, see 
> https://issues.apache.org/jira/browse/HBASE-12260?focusedCommentId=16203820&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16203820
>  



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

Reply via email to