Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9E786107A6 for ; Tue, 10 Sep 2013 22:04:52 +0000 (UTC) Received: (qmail 18617 invoked by uid 500); 10 Sep 2013 22:04:52 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 18593 invoked by uid 500); 10 Sep 2013 22:04:52 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 18584 invoked by uid 99); 10 Sep 2013 22:04:52 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Sep 2013 22:04:52 +0000 Date: Tue, 10 Sep 2013 22:04:52 +0000 (UTC) From: "stack (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-9101) Addendum to pluggable RpcScheduler MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-9101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13763582#comment-13763582 ] stack commented on HBASE-9101: ------------------------------ bq. The reason is that the RpcScheduler constructor needs QosFunction (which is member of HRegionServer). I see this is not clean, but don't know if I can add it to the interface RegionServerServices. Any ideas? The QosFunction is awful and has to die an ugly death. We can do something basic -- as suggested by our [~eclark] -- where the client says what the priority is in rpc header; then the priority would be in your ipc context -- coming in from the client -- and you wouldn't have to ask the HRS what it is. 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? Thanks for doing this: "+ // Please do not add a constants here, unless they are referenced by a lot of classes." Why should scheduler or scheduler implemenation be reachable from packages other than ipc? Can we shut down this public? -interface RpcScheduler { +public interface RpcScheduler { 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? This could be inside rpc then SimpleRpcSchedulerFactory? Else patch looks good. > 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 > > > 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