[ 
https://issues.apache.org/jira/browse/HADOOP-1509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12507061
 ] 

stack commented on HADOOP-1509:
-------------------------------

"...perhaps exposing HClient.getOpenServers was overzealous....If there was a 
configuration parameter that specified an HRegionServer extending interface, 
and the base impl of HClient.getHRegionConnection() used that to initialize the 
server proxy, then all that would become unnecessary. What do you think of that 
idea?"

Sounds like a good idea.

"I guess a similar pattern should exist for injecting specific HClient impls 
into HMaster too."

Unfortunately there is no HClientInterface currently as there is a 
HRegionInterface (or HMasterInterface) so it would be a bit of work and HClient 
is still evolving so keeping up interfaces and their implementation will be a 
bit of a pain -- but its still a good idea.

"... I'm not sure how to make it accessible only to HRegionServer subclasses 
without making it an inner class. I have a particular need for it where my 
QRegionServer perfroms scans on its own HRegions... put perhaps there isn't a 
general need for that and I could remove that from this patch. Or maybe HRegion 
manipulation is a likely need for HRegionServer extensions... what do you 
think?"

A region server that can't manipulate regions is like a herder without his 
sheep.  Lets just make HRegion public (Any future table-repair tool would need 
to have public access to HRegions.)

> Open HRegionServer/HClient for extension
> ----------------------------------------
>
>                 Key: HADOOP-1509
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1509
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: contrib/hbase
>    Affects Versions: 0.14.0
>            Reporter: James Kennedy
>            Assignee: James Kennedy
>            Priority: Minor
>             Fix For: 0.14.0
>
>         Attachments: openForExtension-v2.patch, openForExtension.patch
>
>
> For what i'm doing I found it necessary to extend 
> HRegionServer/HRegion/HClient for some custom functionality.
> Following good Java practice I see that the HBase code as been programmed 
> defensively, keeping stuff private as much as possible.
> However, for extensibility it would be nice if the servers/client were easy 
> to extend.
> Attached is a patch that makes several methods protected instead of private, 
> adds getters to fields of inner classes, and some other modifications i found 
> were useful for some simple extension code.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to