hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7340) Master coprocessor notification for assignmentManager.balance() is inconsistent
Date Thu, 13 Dec 2012 19:40:13 GMT

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

Andrew Purtell commented on HBASE-7340:
---------------------------------------

Patch looks ok except:

{code}
@@ -34,7 +35,8 @@
  * The comparable implementation of this class compares only the region
  * information and not the source/dest server info.
  */
-@InterfaceAudience.Private
+@InterfaceAudience.Public
+@InterfaceStability.Evolving
 public class RegionPlan implements Comparable<RegionPlan> {
   private final HRegionInfo hri;
   private final ServerName source;
{code}

Should RegionPlan have an audience of LimitedPrivate("Coprocessors") instead? 

{code}
@@ -444,8 +450,10 @@
   /**
    * Called after the balancing plan has been submitted.
    * @param ctx the environment to interact with the framework and master
+   * @param plans the RegionPlans which master has executed. RegionPlan serves as hint
+   * as for the final destination for the underlying region
    */
-  void postBalance(final ObserverContext<MasterCoprocessorEnvironment> ctx)
+  void postBalance(final ObserverContext<MasterCoprocessorEnvironment> ctx, List<RegionPlan>
plans)
       throws IOException;
{code}

The javadoc here should talk about the nature of RegionPlans, that they might not represent
the final state of assignment.
                
> Master coprocessor notification for assignmentManager.balance() is inconsistent
> -------------------------------------------------------------------------------
>
>                 Key: HBASE-7340
>                 URL: https://issues.apache.org/jira/browse/HBASE-7340
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Trivial
>         Attachments: 7340-v1.txt
>
>
> I found this issue when reading user discussion which is quoted below.
> In HMaster.moveRegion(), we have:
> {code}
>       this.assignmentManager.balance(rp);
>       if (this.cpHost != null) {
>         this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());
>       }
> {code}
> Meaning, user can register master coprocessor which would receive region movement notification.
> The assignmentManager.balance(plan) call in HMaster.balance() doesn't send out such notification.
> I think we should enhance the following hook (at line 1335) with list of regions moved
so that notification from master is consistent:
> {code}
>         this.cpHost.postBalance();
> {code}
> Here is excerpt for user discussion:
> Sometimes user performs compaction after a region is moved (by balancer). We should provide
'hook' which lets user specify what follow-on actions to take after region movement.
> See discussion on user mailing list under the thread 'How to know it's time for a major
compaction?' for background information: http://search-hadoop.com/m/BDx4S1jMjF92&subj=How+to+know+it+s+time+for+a+major+compaction+

--
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