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 38E4817E6E for ; Tue, 24 Mar 2015 12:13:59 +0000 (UTC) Received: (qmail 61139 invoked by uid 500); 24 Mar 2015 12:13:52 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 61095 invoked by uid 500); 24 Mar 2015 12:13: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 61083 invoked by uid 99); 24 Mar 2015 12:13:52 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Mar 2015 12:13:52 +0000 Date: Tue, 24 Mar 2015 12:13:52 +0000 (UTC) From: "ramkrishna.s.vasudevan (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (HBASE-12790) Support fairness across parallelized scans 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-12790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14377764#comment-14377764 ] ramkrishna.s.vasudevan edited comment on HBASE-12790 at 3/24/15 12:13 PM: -------------------------------------------------------------------------- Updated patch with test case. The round robin nature for the AbstractPriorityBasedRoundRobinQueue has been corrected as in the first patch we were using one producer under a given priority and once it was over was moving over to the next producer. Which means under Priority A if we had two groups A and B each with 10 task, then we were consuming all the 10 tasks under A and then moving on to B. With the latest patch we ensure that we round robin between the task in A and B. was (Author: ram_krish): Updated patch with test case. The round robin nature for the AbstractRoundRobinQueue has been corrected as in the first patch we were using one producer under a given priority and once it was over was moving over to the next producer. Which means under Priority A if we had two groups A and B each with 10 task, then we were consuming all the 10 tasks under A and then moving on to B. With the latest patch we ensure that we round robin between the task in A and B. > Support fairness across parallelized scans > ------------------------------------------ > > Key: HBASE-12790 > URL: https://issues.apache.org/jira/browse/HBASE-12790 > Project: HBase > Issue Type: New Feature > Reporter: James Taylor > Assignee: ramkrishna.s.vasudevan > Labels: Phoenix > Attachments: AbstractRoundRobinQueue.java, HBASE-12790.patch, HBASE-12790_1.patch > > > Some HBase clients parallelize the execution of a scan to reduce latency in getting back results. This can lead to starvation with a loaded cluster and interleaved scans, since the RPC queue will be ordered and processed on a FIFO basis. For example, if there are two clients, A & B that submit largish scans at the same time. Say each scan is broken down into 100 scans by the client (broken down into equal depth chunks along the row key), and the 100 scans of client A are queued first, followed immediately by the 100 scans of client B. In this case, client B will be starved out of getting any results back until the scans for client A complete. > One solution to this is to use the attached AbstractRoundRobinQueue instead of the standard FIFO queue. The queue to be used could be (maybe it already is) configurable based on a new config parameter. Using this queue would require the client to have the same identifier for all of the 100 parallel scans that represent a single logical scan from the clients point of view. With this information, the round robin queue would pick off a task from the queue in a round robin fashion (instead of a strictly FIFO manner) to prevent starvation over interleaved parallelized scans. -- This message was sent by Atlassian JIRA (v6.3.4#6332)