You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2011/08/04 16:05:27 UTC

[jira] [Commented] (HBASE-4120) isolation and allocation

    [ https://issues.apache.org/jira/browse/HBASE-4120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13079384#comment-13079384 ] 

Ted Yu commented on HBASE-4120:
-------------------------------

Thanks for the update.
Please update patch for TRUNK - new feature doesn't go to 0.90 branch.

{code}
+  public static class ActionPriPlus {
{code}
How about naming the above class ActionPriorites ?
{code}
+    public ActionPriPlus(int scanPlus, int putPlus, int getPlus, int deletePlus) {
{code}
Get is implemented as Scan. Do we need to give them different priorities ?

For PriorityJobQueue:
{code}
+  private void addSize() {
+    this.addLock.lock();
+    this.size++;
+    this.addLock.unlock();
{code}
Why don't we check this.size against this.capacity to make it symmetrical with the method setSize() ? Should add javadoc.
{code}
+  public PriorityJobQueue(int size, int lowestPrid, PriorityHBaseServer server) {
{code}
size paramater should be renamed capacity.

I see e.printStackTrace() and System.out.println(out) in several places. They should be replaced with LOG.error() and LOG.debug().

In the future, please use https://reviews.apache.org/ for reviewing new feature so that context is clearer.

Please add unit test(s) to
1. show how the new classes are used
2. verify their functionality.

Good job.

> isolation and allocation
> ------------------------
>
>                 Key: HBASE-4120
>                 URL: https://issues.apache.org/jira/browse/HBASE-4120
>             Project: HBase
>          Issue Type: New Feature
>          Components: master, regionserver
>    Affects Versions: 0.90.2, 0.90.3, 0.90.4, 0.92.0
>            Reporter: Liu Jia
>             Fix For: 0.90.3
>
>         Attachments: Design_document_for_HBase_isolation_and_allocation.pdf, Design_document_for_HBase_isolation_and_allocation_Revised.pdf, HBase_isolation_and_allocation_user_guide.pdf, Performance_of_Table_priority.pdf, System Structure.jpg, TablePriority.patch
>
>
> The HBase isolation and allocation tool is designed to help users manage cluster resource among different application and tables.
> When we have a large scale of HBase cluster with many applications running on it, there will be lots of problems. In Taobao there is a cluster for many departments to test their applications performance, these applications are based on HBase. With one cluster which has 12 servers, there will be only one application running exclusively on this server, and many other applications must wait until the previous test finished.
> After we add allocation manage function to the cluster, applications can share the cluster and run concurrently. Also if the Test Engineer wants to make sure there is no interference, he/she can move out other tables from this group.
> In groups we use table priority to allocate resource, when system is busy; we can make sure high-priority tables are not affected lower-priority tables
> Different groups can have different region server configurations, some groups optimized for reading can have large block cache size, and others optimized for writing can have large memstore size. 
> Tables and region servers can be moved easily between groups; after changing the configuration, a group can be restarted alone instead of restarting the whole cluster.
> git entry : https://github.com/ICT-Ope/HBase_allocation .
> We hope our work is helpful.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira