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 DA692109B5 for ; Wed, 11 Sep 2013 22:33:52 +0000 (UTC) Received: (qmail 78824 invoked by uid 500); 11 Sep 2013 22:33:52 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 78788 invoked by uid 500); 11 Sep 2013 22:33: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 78779 invoked by uid 99); 11 Sep 2013 22:33:52 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Sep 2013 22:33:52 +0000 Date: Wed, 11 Sep 2013 22:33:52 +0000 (UTC) From: "Vandana Ayyalasomayajula (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-8410) Basic quota support for namespaces 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-8410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13764887#comment-13764887 ] Vandana Ayyalasomayajula commented on HBASE-8410: ------------------------------------------------- bq. The method is used while tables are creates and when a region is split, to check then number of tables and regions in a given namespace. Everytime a new table is created and each time we split, we scan the .META. table? Am I reading this right? That is right. bq. getNamespaceDescRetriever is the wrong name for a method that returns a NamespaceDescriptors I will fix it. My bad, this should have been corrected. bq. I am still unclear why we need auditing facility in the regionserver?I do not understand how you expect auditing to work going by the patch. I see that there is NamespaceAuditor which implements MasterObserver and so intercepts master ops to check counts. I do not see why I need the manager running in a RS? The auditing facility is required only on the regions and master, to check if a given namespace never exceeds a given number of tables and regions ( quota set while creating namespace). The information about the exact number of regions and tables allowed is stored in the namespace descriptor. So for auditing purposes, namespace descriptor is needed. The namespace descriptor can be retrieved from the Zk namespace manager. So, either I get zk instance from region server and start one zk namespace manager for every region or I could create one in region server and share it among all the regions. I have taken the second approach. That is the reason I am starting a ZKNamespaceManager in region server. Also, that is the reason I added an API in the region server services, so that I can retrieve ZKNamespaceManager from RegionCoprocessorEnvironment. {code} RegionCoprocessorEnvironment regionEnv = (RegionCoprocessorEnvironment) e; rsServices = regionEnv.getRegionServerServices(); {code} bq. Why the RS need to be able to list namespaces? Correct, I do not need the RS to be able to list namespaces. I added that API in NamespaceDescriptors to make it generic, for any further use. I can remove it if you want. I will upload a new patch, once we agree on all your questions. Thanks for your time. > Basic quota support for namespaces > ---------------------------------- > > Key: HBASE-8410 > URL: https://issues.apache.org/jira/browse/HBASE-8410 > Project: HBase > Issue Type: Sub-task > Reporter: Francis Liu > Assignee: Vandana Ayyalasomayajula > Attachments: HBASE_8410_1_trunk.patch, HBASE_8410.patch, HBASE-8410_trunk_2.patch, HBASE-8410_trunk_3.patch, HBASE-8410_trunk_4.patch, HBASE-8410_trunk_4.patch, HBASE-8410_trunk_5.patch, HBASE-8410_trunk_6.patch, HBASE-8410_trunk_7.patch, HBASE-8410_trunk_8.patch, HBASE-8410_trunk_9.patch > > > This task involves creating an observer which provides basic quota support to namespaces in terms of (1) number of tables and (2) number of regions. The quota support can be enabled by setting: > > hbase.coprocessor.region.classes > org.apache.hadoop.hbase.namespace.NamespaceController > > > hbase.coprocessor.master.classes > org.apache.hadoop.hbase.namespace.NamespaceController > > in the hbase-site.xml. > To add quotas to namespace, while creating namespace properties need to be added. > Examples: > 1. namespace_create 'ns1', {'hbase.namespace.quota.maxregion'=>'10'} > 2. 1. namespace_create 'ns2', {'hbase.namespace.quota.maxtables'=>'2'}, {'hbase.namespace.quota.maxregion'=>'5'} > The quotas can be modified/added to namespace at any point of time. -- 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