hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HBASE-19007) Align Services Interfaces in Master and RegionServer
Date Sat, 14 Oct 2017 00:12:00 GMT

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

stack edited comment on HBASE-19007 at 10/14/17 12:11 AM:
----------------------------------------------------------

Chatted w/ [~appy]. We came up w/ this

h3. Proposal

 * Undo exposing RegionServerServices and MasterServices to coprocessors.
 * Only expose Server to Coprocessors so they can do getServerName, getConfiguration, etc.
(The amended HBASE-12260 Server, the one that has a few extra methods and the IA.LP annotation
added).
 * Amend MasterCoprocessorEnvironment and RegionServerCoprocessorEnvironment adding to these
classes any methods/facility we want to expose to Coprocessors. For example, we'd have the
MasterCorprocessorEnvironment implement ServerListener so a CP could register itself on the
Master-side to listen to the coming and going of Servers or we'd add to MasterCPE the isActiveMaster
method. CPs would do env#isActiveMaster() instead of env#getMasterServices().isActiveMaster().

Benefits:
 * MS and RSS can return to their original intent as pure Interfaces useful in test and giving
Managers and Services a subset of total Master function (though they are overburdened still
and in need of cleanup).
 * What we provide CPs is untangled from Server and its subclasses and moved to the proper
location, the 'environment' we supply CPs when they run.

Downsides:?

[~anoop.hbase] You good w/ this? I can work on a patch for Master-side to show what it would
look like.


was (Author: stack):
Chatted w/ [~appy]. We came up w/ this proposal:

 * Undo exposing RegionServerServices and MasterServices to coprocessors.
 * Only expose Server to Coprocessors so they can do getServerName, getConfiguration, etc.
(The amended HBASE-12260 Server, the one that has a few extra methods and the IA.LP annotation
added).
 * Amend MasterCoprocessorEnvironment and RegionServerCoprocessorEnvironment adding to these
classes any methods/facility we want to expose to Coprocessors. For example, we'd have the
MasterCorprocessorEnvironment implement ServerListener so a CP could register itself on the
Master-side to listen to the coming and going of Servers or we'd add to MasterCPE the isActiveMaster
method. CPs would do env#isActiveMaster() instead of env#getMasterServices().isActiveMaster().

Benefits:
 * MS and RSS can return to their original intent as pure Interfaces useful in test and giving
Managers and Services a subset of total Master function (though they are overburdened still
and in need of cleanup).
 * What we provide CPs is untangled from Server and its subclasses and moved to the proper
location, the 'environment' we supply CPs when they run.

Downsides:?

[~anoop.hbase] You good w/ this? I can work on a patch for Master-side to show what it would
look like.

> 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)

Mime
View raw message