[
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