hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vandana Ayyalasomayajula (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8410) Basic quota support for namespaces
Date Wed, 11 Sep 2013 22:33:52 GMT

    [ 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:
> <property>
>     <name>hbase.coprocessor.region.classes</name>
>     <value>org.apache.hadoop.hbase.namespace.NamespaceController</value>
> </property>
> <property>
>     <name>hbase.coprocessor.master.classes</name>
>     <value>org.apache.hadoop.hbase.namespace.NamespaceController</value>
> </property>
> 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

Mime
View raw message