Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-9080

Retain assignment should be used when re-enabling table(s)

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 0.94.10
    • Fix Version/s: 0.94.11
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      To achieve good data locality, retain assignment is used when re-enabling tables.

      hbase.master.enabletable.roundrobin is no longer effective.
      Show
      To achieve good data locality, retain assignment is used when re-enabling tables. hbase.master.enabletable.roundrobin is no longer effective.

      Description

      Region servers are picked in round robin fashion when a table is re-enabled.

      This results in poor data locality.

      We should use retain assignment when re-enabling table(s).

      For initial discussion, see HBASE-6143
      Since patches for 0.94 and trunk may turn out to be very different, this JIRA is for fixing the issue in 0.94 branch.

      Thanks Lars, Elliot, Vladmir and Stack for providing opinions on this subject.

      1. 9080-0.94-v2.txt
        8 kB
        Ted Yu
      2. 9080-0.94.txt
        6 kB
        Ted Yu

        Issue Links

          Activity

          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in HBase-TRUNK #4648 (See https://builds.apache.org/job/HBase-TRUNK/4648/)
          HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535843)

          • /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
          • /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in HBase-TRUNK #4648 (See https://builds.apache.org/job/HBase-TRUNK/4648/ ) HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535843) /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in HBase-TRUNK-on-Hadoop-2.0.0 #811 (See https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/811/)
          HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535843)

          • /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
          • /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in HBase-TRUNK-on-Hadoop-2.0.0 #811 (See https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/811/ ) HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535843) /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java /hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in hbase-0.96 #162 (See https://builds.apache.org/job/hbase-0.96/162/)
          HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535841)

          • /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
          • /hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in hbase-0.96 #162 (See https://builds.apache.org/job/hbase-0.96/162/ ) HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535841) /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java /hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in hbase-0.96-hadoop2 #102 (See https://builds.apache.org/job/hbase-0.96-hadoop2/102/)
          HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535841)

          • /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
          • /hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in hbase-0.96-hadoop2 #102 (See https://builds.apache.org/job/hbase-0.96-hadoop2/102/ ) HBASE-9837 Forward port HBASE-9080 'Retain assignment should be used when re-enabling table(s)' (tedyu: rev 1535841) /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java /hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in HBase-0.94 #1084 (See https://builds.apache.org/job/HBase-0.94/1084/)
          HBASE-9080 Retain assignment should be used when re-enabling table(s) (Ted Yu) (tedyu: rev 1508546)

          • /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
          • /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in HBase-0.94 #1084 (See https://builds.apache.org/job/HBase-0.94/1084/ ) HBASE-9080 Retain assignment should be used when re-enabling table(s) (Ted Yu) (tedyu: rev 1508546) /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in HBase-0.94-security #237 (See https://builds.apache.org/job/HBase-0.94-security/237/)
          HBASE-9080 Retain assignment should be used when re-enabling table(s) (Ted Yu) (tedyu: rev 1508546)

          • /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
          • /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in HBase-0.94-security #237 (See https://builds.apache.org/job/HBase-0.94-security/237/ ) HBASE-9080 Retain assignment should be used when re-enabling table(s) (Ted Yu) (tedyu: rev 1508546) /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
          Hide
          yuzhihong@gmail.com Ted Yu added a comment -

          Integrated to 0.94

          Thanks for the review, Lars.

          Show
          yuzhihong@gmail.com Ted Yu added a comment - Integrated to 0.94 Thanks for the review, Lars.
          Hide
          lhofhansl Lars Hofhansl added a comment -

          Still +1

          Show
          lhofhansl Lars Hofhansl added a comment - Still +1
          Hide
          yuzhihong@gmail.com Ted Yu added a comment -
          Results :
          
          Tests run: 1374, Failures: 0, Errors: 0, Skipped: 13
          
          [INFO] ------------------------------------------------------------------------
          [INFO] BUILD SUCCESS
          [INFO] ------------------------------------------------------------------------
          [INFO] Total time: 1:09:12.207s
          [INFO] Finished at: Tue Jul 30 15:32:04 UTC 2013
          [INFO] Final Memory: 36M/642M
          
          Show
          yuzhihong@gmail.com Ted Yu added a comment - Results : Tests run: 1374, Failures: 0, Errors: 0, Skipped: 13 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:09:12.207s [INFO] Finished at: Tue Jul 30 15:32:04 UTC 2013 [INFO] Final Memory: 36M/642M
          Hide
          yuzhihong@gmail.com Ted Yu added a comment -

          Patch v2 cleans up unreachable code.

          Show
          yuzhihong@gmail.com Ted Yu added a comment - Patch v2 cleans up unreachable code.
          Hide
          yuzhihong@gmail.com Ted Yu added a comment -

          Plan to integrate to 0.94 tomorrow morning.

          Show
          yuzhihong@gmail.com Ted Yu added a comment - Plan to integrate to 0.94 tomorrow morning.
          Hide
          lhofhansl Lars Hofhansl added a comment -

          Good to go, methinks.
          We can remove the bulk assignment code in another jira - or not bother with that, since 0.95+ fixes it.

          Show
          lhofhansl Lars Hofhansl added a comment - Good to go, methinks. We can remove the bulk assignment code in another jira - or not bother with that, since 0.95+ fixes it.
          Hide
          yuzhihong@gmail.com Ted Yu added a comment -

          Ran patch through whole 0.94 test suite:

          Tests run: 1374, Failures: 0, Errors: 0, Skipped: 13
          
          [INFO] ------------------------------------------------------------------------
          [INFO] BUILD SUCCESS
          [INFO] ------------------------------------------------------------------------
          [INFO] Total time: 1:14:04.939s
          [INFO] Finished at: Tue Jul 30 03:57:37 UTC 2013
          [INFO] Final Memory: 36M/642M
          
          Show
          yuzhihong@gmail.com Ted Yu added a comment - Ran patch through whole 0.94 test suite: Tests run: 1374, Failures: 0, Errors: 0, Skipped: 13 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:14:04.939s [INFO] Finished at: Tue Jul 30 03:57:37 UTC 2013 [INFO] Final Memory: 36M/642M
          Hide
          yuzhihong@gmail.com Ted Yu added a comment -

          Patch for 0.94 based on v3 from HBASE-6143

          Show
          yuzhihong@gmail.com Ted Yu added a comment - Patch for 0.94 based on v3 from HBASE-6143
          Hide
          jxiang Jimmy Xiang added a comment -

          For 0.94, bulk assigner is not as safe as in trunk as I know.

          Show
          jxiang Jimmy Xiang added a comment - For 0.94, bulk assigner is not as safe as in trunk as I know.
          Hide
          stack stack added a comment -

          Lars Hofhansl Yeah, I believe so; doesn't have the benefit of the lads hacking on AM that went into trunk. Jimmy Xiang would know better.

          Show
          stack stack added a comment - Lars Hofhansl Yeah, I believe so; doesn't have the benefit of the lads hacking on AM that went into trunk. Jimmy Xiang would know better.
          Hide
          lhofhansl Lars Hofhansl added a comment -

          +1 on v3 on HBASE-6143.

          Jimmy Xiang, stack, is the BulkAssigner is unsafe in 0.94? Should we remove the enabled.roundrobin from 0.94?

          Show
          lhofhansl Lars Hofhansl added a comment - +1 on v3 on HBASE-6143 . Jimmy Xiang , stack , is the BulkAssigner is unsafe in 0.94? Should we remove the enabled.roundrobin from 0.94?

            People

            • Assignee:
              yuzhihong@gmail.com Ted Yu
              Reporter:
              yuzhihong@gmail.com Ted Yu
            • Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development