Details

    • Hadoop Flags:
      Reviewed
    1. 0028-HBASE-10817-Add-some-tests-on-a-real-cluster-for-rep.patch
      16 kB
      Enis Soztutar
    2. 10817.v1.patch
      11 kB
      Nicolas Liochon
    3. 10817.v2.patch
      11 kB
      Nicolas Liochon
    4. 10817.v3.patch
      11 kB
      Nicolas Liochon
    5. 10817.v4.patch
      15 kB
      Nick Dimiduk

      Issue Links

        Activity

        Hide
        Nicolas Liochon added a comment -

        ready for review. Won't compile on trunk.

        Show
        Nicolas Liochon added a comment - ready for review. Won't compile on trunk.
        Hide
        Nicolas Liochon added a comment -

        Actually a v2, with a stop master in it.

        Show
        Nicolas Liochon added a comment - Actually a v2, with a stop master in it.
        Hide
        Nick Dimiduk added a comment -
        +  public static class SlowMeCopro extends BaseRegionObserver
        

        This looks similar to the Coproc in TestReplicasClient. Maybe there's some reuse between them, or a shared library of coprocs for tests?

        +    hdt.setRegionReplication(2);
        

        nit: Should just use the constant NB_SERVERS?

        +    HTU.getHBaseAdmin().disableTable(hdt.getTableName());
        +    HTU.getHBaseAdmin().modifyTable(hdt.getTableName(), hdt);
        +    HTU.getHBaseAdmin().enableTable(hdt.getTableName());
        

        disableTable and enableTable are both synchronous, but modifyTable is asynchronous. Is there a race here? Better to wait for modify to complete? I'm not exactly sure about this, so I added a modifyTableSync in HBASE-10791 and moved/reused it in HBASE-10818.

        +    while (!ok) {
        

        Better to add some kind of max iteration count here to protect our poor jenkins box from itself.

        Show
        Nick Dimiduk added a comment - + public static class SlowMeCopro extends BaseRegionObserver This looks similar to the Coproc in TestReplicasClient. Maybe there's some reuse between them, or a shared library of coprocs for tests? + hdt.setRegionReplication(2); nit: Should just use the constant NB_SERVERS ? + HTU.getHBaseAdmin().disableTable(hdt.getTableName()); + HTU.getHBaseAdmin().modifyTable(hdt.getTableName(), hdt); + HTU.getHBaseAdmin().enableTable(hdt.getTableName()); disableTable and enableTable are both synchronous, but modifyTable is asynchronous. Is there a race here? Better to wait for modify to complete? I'm not exactly sure about this, so I added a modifyTableSync in HBASE-10791 and moved/reused it in HBASE-10818 . + while (!ok) { Better to add some kind of max iteration count here to protect our poor jenkins box from itself.
        Hide
        Nicolas Liochon added a comment -

        This looks similar to the Coproc in TestReplicasClient. Maybe there's some reuse between them, or a shared library of coprocs for tests?

        It's totally similar
        But it's always difficult to share code between tests.

        nit: Should just use the constant

        done.

        Better to add some kind of max iteration count here to protect our poor jenkins box from itself.

        Agreed. I added Waiter.waitFor

        disableTable and enableTable are both synchronous, but modifyTable is asynchronous

        I'm not sure that modifyTable is really asynchronous (despite the doc): we release the lock synchronously, so I expect it will work. I think that we have an issue if it does not.

        v3 on his way.

        Show
        Nicolas Liochon added a comment - This looks similar to the Coproc in TestReplicasClient. Maybe there's some reuse between them, or a shared library of coprocs for tests? It's totally similar But it's always difficult to share code between tests. nit: Should just use the constant done. Better to add some kind of max iteration count here to protect our poor jenkins box from itself. Agreed. I added Waiter.waitFor disableTable and enableTable are both synchronous, but modifyTable is asynchronous I'm not sure that modifyTable is really asynchronous (despite the doc): we release the lock synchronously, so I expect it will work. I think that we have an issue if it does not. v3 on his way.
        Hide
        Nick Dimiduk added a comment -

        Allow me to coop this patch slightly and add a simple bulkload test. This method can act as a stop-gap until Scans support region replicas and we can replace it with HBASE-10818.

        Show
        Nick Dimiduk added a comment - Allow me to coop this patch slightly and add a simple bulkload test. This method can act as a stop-gap until Scans support region replicas and we can replace it with HBASE-10818 .
        Hide
        Nicolas Liochon added a comment -

        I haven't seen that Nick added the v4. I will commit it to the 10070 branch if there is no objection.

        Show
        Nicolas Liochon added a comment - I haven't seen that Nick added the v4. I will commit it to the 10070 branch if there is no objection.
        Hide
        Devaraj Das added a comment -

        +1 for committing.

        Show
        Devaraj Das added a comment - +1 for committing.
        Hide
        Nicolas Liochon added a comment -

        Committed to hbase-10070, thanks for the help, Nick. Thanks for the review, Devaraj.

        Show
        Nicolas Liochon added a comment - Committed to hbase-10070, thanks for the help, Nick. Thanks for the review, Devaraj.
        Hide
        Enis Soztutar added a comment -

        Attaching rebased patch for master that is committed

        Show
        Enis Soztutar added a comment - Attaching rebased patch for master that is committed
        Hide
        Enis Soztutar added a comment -

        Committed to master as part of hbase-10070 branch merge

        Show
        Enis Soztutar added a comment - Committed to master as part of hbase-10070 branch merge
        Hide
        Hudson added a comment -

        FAILURE: Integrated in HBase-TRUNK #5245 (See https://builds.apache.org/job/HBase-TRUNK/5245/)
        HBASE-10817 Add some tests on a real cluster for replica: multi master, replication (enis: rev e04e61ed77a59bf54408db1f072f8dd1fb61e7d7)

        • hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestReplicaWithCluster.java
        • hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java
        Show
        Hudson added a comment - FAILURE: Integrated in HBase-TRUNK #5245 (See https://builds.apache.org/job/HBase-TRUNK/5245/ ) HBASE-10817 Add some tests on a real cluster for replica: multi master, replication (enis: rev e04e61ed77a59bf54408db1f072f8dd1fb61e7d7) hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestReplicaWithCluster.java hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java
        Hide
        Enis Soztutar added a comment -

        Closing this issue after 0.99.0 release.

        Show
        Enis Soztutar added a comment - Closing this issue after 0.99.0 release.

          People

          • Assignee:
            Nicolas Liochon
            Reporter:
            Nicolas Liochon
          • Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development