Return-Path: X-Original-To: apmail-hbase-dev-archive@www.apache.org Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 743EF10FC4 for ; Mon, 14 Oct 2013 05:19:00 +0000 (UTC) Received: (qmail 74424 invoked by uid 500); 14 Oct 2013 05:18:40 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 74329 invoked by uid 500); 14 Oct 2013 05:18:29 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 73972 invoked by uid 99); 14 Oct 2013 05:18:18 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Oct 2013 05:18:18 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ddas@hortonworks.com designates 74.125.82.179 as permitted sender) Received: from [74.125.82.179] (HELO mail-we0-f179.google.com) (74.125.82.179) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Oct 2013 05:18:13 +0000 Received: by mail-we0-f179.google.com with SMTP id w61so6625017wes.10 for ; Sun, 13 Oct 2013 22:17:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=JPEm61Ge00yGZIVjNOYEvC6md4Z9pmyiLgQYQmN9wmw=; b=YyMkRas2ylt5FrPr+9nUZcJJ+tIyEAQWHVBs6UJ6ekxgxuvLjNpA53xr2open82XcH WEnHTkhLm7PjF8ajj+n1YP/mcfhh4HxcJ2lWxhSTgPL7VFUpJffNLOu81Ad1bXeM+kTs qB/20XhUwK5ZGYOwioLUXxGAE+H8ZeS3c6O5ngLbn2MJcIgzmBPkNn+mKkmf3v/TxqxN dx5MIzPhwmO1XnVjTxmMqnqCKycbBJ3FAGiT1wYhqoNs4QTVFirteLSL0sjg1msoR6kf KKQvhJMFKplhOe9REp1f1a/0MNd7XQ842fzQxvFTOhWuZkeFq4r8ZSsGUwaDZ31cKcR8 FTzQ== X-Gm-Message-State: ALoCoQmDiU6eZWsZiE7ybXAj4kbOFzJPG1Zlj4Q1wcM0r3W3v6cJLQDfaHGnuWiBKGA5DjJN/ZaQ/0sDvRjZSgshO8i/+sUHegzzeJdPBbRgSA+J8Guh+Bg= MIME-Version: 1.0 X-Received: by 10.194.235.138 with SMTP id um10mr27922891wjc.30.1381727872227; Sun, 13 Oct 2013 22:17:52 -0700 (PDT) Received: by 10.180.74.41 with HTTP; Sun, 13 Oct 2013 22:17:52 -0700 (PDT) In-Reply-To: References: Date: Sun, 13 Oct 2013 22:17:52 -0700 Message-ID: Subject: Re: Regarding QoS for Handlers From: Devaraj Das To: "dev@hbase.apache.org" Content-Type: multipart/alternative; boundary=089e01419acc00295204e8ac9712 X-Virus-Checked: Checked by ClamAV on apache.org --089e01419acc00295204e8ac9712 Content-Type: text/plain; charset=US-ASCII Varun, it'll be good to have your inputs on HBASE-8836 which I think is related to what you are talking about. On Sun, Oct 13, 2013 at 1:54 PM, Varun Sharma wrote: > Or a slightly alternative approach would be to have a CallQueue > implementation which is more of a priorityQueue. > > The Queue wrapper has a number of different queues [TableName:RpcName] > sorted in descending order by priority level and finally the default quue. > Dequeue on this queue shall go in descending order of priority. > > Varun > > > On Sun, Oct 13, 2013 at 1:36 PM, Varun Sharma wrote: > > > Hi, > > > > I am wondering if QoS on handler threads is being looked at by someone ? > > We have found huge gains by doing this for asymmetric workloads which are > > extremely write heavy but latency on reads matters the most. Basically we > > forked out a separate thread pool of X threads for handling reads to > > prevent starvation of read requests which were far outnumbered by the # > of > > writes. > > > > As of now, we have been making adhoc changes (like introduce higher > > priority levels for certain types of requests like gets and scans) but > > having a framework to control this would be a really nice thing. > > > > One simple way to achieve this would be to have a group of "high priority > > handler threads" and be able to mark each table to prioritize > > "reads/writes". On receiving an RPC, the request is directly dispatched > to > > this other pool of threads and the remaining RPCs go to the regular pool. > > This would be a naive implementation. > > > > The issue with this could be that what happens when the user ends up > > directing most of their load to the high priority pool which has fewer > > threads. We could do something simple like having a tight upper bound on > > the call queue length and if a new high priority call is rejected from > this > > pool, just enqueue it to the regular pool of requests. > > > > Thoughts ? > > > > Thanks ! > > Varun > > > -- CONFIDENTIALITY NOTICE NOTICE: This message is intended for the use of the individual or entity to which it is addressed and may contain information that is confidential, privileged and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, you are hereby notified that any printing, copying, dissemination, distribution, disclosure or forwarding of this communication is strictly prohibited. If you have received this communication in error, please contact the sender immediately and delete it from your system. Thank You. --089e01419acc00295204e8ac9712--