hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Appy (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-19007) Align Services Interfaces in Master and RegionServer
Date Mon, 16 Oct 2017 20:06:00 GMT

    [ 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

View raw message