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

Chao Shi commented on HBASE-9101:
---------------------------------

bq. So, try to avoid somersaults so you can get QosFunction. A simple 
getPriority in RSS would be ok implemented however folks want to (default would 
be call QoSFunction on the implementing RegionServer? Would that work?

Yes. I added getPriority to RSS and make the implementation simply delegate to 
QosFunction. Maybe I can simply remove QosFunction and move its logic into HRS, 
if it's no longer needed. Also introduced FifoRpcScheduler, which is used by 
HMaster and testing, where no RegionServerServices is available.

bq. Why should scheduler or scheduler implemenation be reachable from packages 
other than ipc? Can we shut down this public?
bq. Should scheduler instantiation be done by the RpcServer, and not by the 
HRegionServer? That would allow encapsulation of scheduler inside ipc package 
and no leakage outside?

RpcScheduler is referenced by RpcSchedulerFactory, which is in 
o.a.h.hbase.regionserver, as it is for creating RpcScheduler for the RS. 
(mainly because a RpcScheduler instance is used by both master and RS, but RS 
may uses a different thread pool config). The name may be misleading, and 
perhaps we should rename the factory to HRegionServerRpcSchedulerFactory, a 
pretty long name.

Another reason is that the goal for this is to make it pluggable. Other users 
may implement their own schedulers, of course in their own packages.
                
> Addendum to pluggable RpcScheduler
> ----------------------------------
>
>                 Key: HBASE-9101
>                 URL: https://issues.apache.org/jira/browse/HBASE-9101
>             Project: HBase
>          Issue Type: Improvement
>          Components: IPC/RPC
>            Reporter: Chao Shi
>            Assignee: Chao Shi
>             Fix For: 0.98.0
>
>         Attachments: hbase-9101.patch, hbase-9101-v2.patch, 
> hbase-9101-v3.patch, hbase-9101-v4.patch
>
>
> This patch fixes the review comments from [~stack] and a small fix:
> - Make RpcScheduler fully pluggable. One can write his/her own implementation 
> and add it to classpath and specify it by config 
> "hbase.region.server.rpc.scheduler.factory.class".
> - Add unit tests and fix that RpcScheduler.stop is not called (discovered by 
> tests)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to