[hbase] branch master updated: HBASE-23775 Removed deprecated method createLocalHTU(Configuration) from HBaseTestingUtility

2020-02-07 Thread janh
This is an automated email from the ASF dual-hosted git repository.

janh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new 93c5e76  HBASE-23775 Removed deprecated method 
createLocalHTU(Configuration) from HBaseTestingUtility
93c5e76 is described below

commit 93c5e7691f02e4b46b4b7d4a582b32e9b9ce9792
Author: Jan Hentschel 
AuthorDate: Fri Feb 7 09:51:04 2020 +0100

HBASE-23775 Removed deprecated method createLocalHTU(Configuration) from 
HBaseTestingUtility

Signed-off-by: Sean Busbey 
---
 .../java/org/apache/hadoop/hbase/HBaseTestingUtility.java| 12 
 .../hadoop/hbase/regionserver/TestCompactingMemStore.java|  2 +-
 .../hadoop/hbase/regionserver/TestDefaultMemStore.java   |  4 ++--
 .../hbase/regionserver/TestMemStoreSegmentsIterator.java |  2 +-
 4 files changed, 4 insertions(+), 16 deletions(-)

diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
index 575e65d..e40dfa0 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
@@ -343,18 +343,6 @@ public class HBaseTestingUtility extends 
HBaseZKTestingUtility {
   }
 
   /**
-   * @deprecated since 2.0.0 and will be removed in 3.0.0. Use
-   *   {@link #HBaseTestingUtility(Configuration)} instead.
-   * @return a normal HBaseTestingUtility
-   * @see #HBaseTestingUtility(Configuration)
-   * @see https://issues.apache.org/jira/browse/HBASE-19841";>HBASE-19841
-   */
-  @Deprecated
-  public static HBaseTestingUtility createLocalHTU(Configuration c) {
-return new HBaseTestingUtility(c);
-  }
-
-  /**
* Close both the region {@code r} and it's underlying WAL. For use in tests.
*/
   public static void closeRegionAndWAL(final Region r) throws IOException {
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.java
index e5a2a8a..80e312b 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.java
@@ -107,7 +107,7 @@ public class TestCompactingMemStore extends 
TestDefaultMemStore {
 conf.setBoolean(MemStoreLAB.USEMSLAB_KEY, true);
 conf.setFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, 0.2f);
 conf.setInt(HRegion.MEMSTORE_PERIODIC_FLUSH_INTERVAL, 1000);
-HBaseTestingUtility hbaseUtility = 
HBaseTestingUtility.createLocalHTU(conf);
+HBaseTestingUtility hbaseUtility = new HBaseTestingUtility(conf);
 HColumnDescriptor hcd = new HColumnDescriptor(FAMILY);
 HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("foobar"));
 htd.addFamily(hcd);
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java
index f88e3ed..9e7c038 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java
@@ -917,7 +917,7 @@ public class TestDefaultMemStore {
 try {
   EnvironmentEdgeForMemstoreTest edge = new 
EnvironmentEdgeForMemstoreTest();
   EnvironmentEdgeManager.injectEdge(edge);
-  HBaseTestingUtility hbaseUtility = 
HBaseTestingUtility.createLocalHTU(conf);
+  HBaseTestingUtility hbaseUtility = new HBaseTestingUtility(conf);
   String cf = "foo";
   HRegion region =
   hbaseUtility.createTestRegion("foobar", 
ColumnFamilyDescriptorBuilder.of(cf));
@@ -943,7 +943,7 @@ public class TestDefaultMemStore {
 // the MEMSTORE_PERIODIC_FLUSH_INTERVAL is set to a higher value)
 Configuration conf = new Configuration();
 conf.setInt(HRegion.MEMSTORE_PERIODIC_FLUSH_INTERVAL, 
HRegion.SYSTEM_CACHE_FLUSH_INTERVAL * 10);
-HBaseTestingUtility hbaseUtility = 
HBaseTestingUtility.createLocalHTU(conf);
+HBaseTestingUtility hbaseUtility = new HBaseTestingUtility(conf);
 Path testDir = hbaseUtility.getDataTestDir();
 EnvironmentEdgeForMemstoreTest edge = new EnvironmentEdgeForMemstoreTest();
 EnvironmentEdgeManager.injectEdge(edge);
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreSegmentsIterator.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreSegmentsIterator.java
index 7aec6d0..3602db6 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreSegmentsIterator.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionse

[hbase] 02/17: HBASE-22662 Move RSGroupInfoManager to hbase-server (#368)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit c6eb7bd3a86b8e95f0ec7c155460ac3a983f6b47
Author: Duo Zhang 
AuthorDate: Thu Jul 11 10:34:05 2019 +0800

HBASE-22662 Move RSGroupInfoManager to hbase-server (#368)

Signed-off-by: Guanghao Zhang 
---
 hbase-rsgroup/pom.xml  |   4 -
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.java|   4 +-
 .../hbase/rsgroup/TestRSGroupsOfflineMode.java |   6 +-
 .../hbase/rsgroup/VerifyingRSGroupAdminClient.java |   6 +-
 .../hadoop/hbase/rsgroup/RSGroupInfoManager.java   |  26 +
 .../hbase/rsgroup/RSGroupInfoManagerImpl.java  | 108 +++--
 6 files changed, 71 insertions(+), 83 deletions(-)

diff --git a/hbase-rsgroup/pom.xml b/hbase-rsgroup/pom.xml
index 09c8e73..1135939 100644
--- a/hbase-rsgroup/pom.xml
+++ b/hbase-rsgroup/pom.xml
@@ -113,10 +113,6 @@
   hbase-shaded-miscellaneous
 
 
-  com.google.protobuf
-  protobuf-java
-
-
   org.apache.zookeeper
   zookeeper
 
diff --git 
a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java
 
b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java
index 6767ac9..7394f55 100644
--- 
a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java
+++ 
b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java
@@ -121,8 +121,8 @@ public class RSGroupBasedLoadBalancer implements 
RSGroupableBalancer {
   public List balanceCluster(Map> 
clusterState)
   throws HBaseIOException {
 if (!isOnline()) {
-  throw new ConstraintException(RSGroupInfoManager.RSGROUP_TABLE_NAME +
-  " is not online, unable to perform balance");
+  throw new ConstraintException(
+  RSGroupInfoManager.class.getSimpleName() + " is not online, unable 
to perform balance");
 }
 
 // Calculate correct assignments and a list of RegionPlan for mis-placed 
regions
diff --git 
a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsOfflineMode.java
 
b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsOfflineMode.java
index 39cf164..60887e4 100644
--- 
a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsOfflineMode.java
+++ 
b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsOfflineMode.java
@@ -140,7 +140,7 @@ public class TestRSGroupsOfflineMode {
   }
 });
 // Move table to group and wait.
-
groupAdmin.moveTables(Sets.newHashSet(RSGroupInfoManager.RSGROUP_TABLE_NAME), 
newGroup);
+
groupAdmin.moveTables(Sets.newHashSet(RSGroupInfoManagerImpl.RSGROUP_TABLE_NAME),
 newGroup);
 LOG.info("Waiting for move table...");
 TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate() {
   @Override
@@ -169,7 +169,7 @@ public class TestRSGroupsOfflineMode {
 // Make sure balancer is in offline mode, since this is what we're testing.
 assertFalse(groupMgr.isOnline());
 // Verify the group affiliation that's loaded from ZK instead of tables.
-assertEquals(newGroup, 
groupMgr.getRSGroupOfTable(RSGroupInfoManager.RSGROUP_TABLE_NAME));
+assertEquals(newGroup, 
groupMgr.getRSGroupOfTable(RSGroupInfoManagerImpl.RSGROUP_TABLE_NAME));
 assertEquals(RSGroupInfo.DEFAULT_GROUP, 
groupMgr.getRSGroupOfTable(failoverTable));
 // Kill final regionserver to see the failover happens for all tables 
except GROUP table since
 // it's group does not have any online RS.
@@ -182,7 +182,7 @@ public class TestRSGroupsOfflineMode {
 return failoverRS.getRegions(failoverTable).size() >= 1;
   }
 });
-Assert.assertEquals(0, 
failoverRS.getRegions(RSGroupInfoManager.RSGROUP_TABLE_NAME).size());
+Assert.assertEquals(0, 
failoverRS.getRegions(RSGroupInfoManagerImpl.RSGROUP_TABLE_NAME).size());
 
 // Need this for minicluster to shutdown cleanly.
 master.stopMaster();
diff --git 
a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java
 
b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java
index 2ad30e4..fcaf1a7 100644
--- 
a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java
+++ 
b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java
@@ -52,7 +52,7 @@ public class VerifyingRSGroupAdminClient implements 
RSGroupAdmin {
   throws IOException {
 wrapped = RSGroupAdmin;
 table = ConnectionFactory.createConnection(conf)
-.getTable(RSGroupInfoManager.RSGROUP_TABLE_NAME);
+.getTable(RSGroupInfoManagerImpl.RSGROUP_TABLE_NAME);
 zkw = new ZKWatcher(conf, this.getClass().getSimpleName(), null);
   }
 
@@ -126,8 +126,8 @@ public class Verifying

[hbase] 01/17: HBASE-22664 Move protobuf stuff in hbase-rsgroup to hbase-protocol-shaded (#362)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 567c6a52ff09640d2798390144d334182dde8eff
Author: Duo Zhang 
AuthorDate: Tue Jul 9 09:51:19 2019 +0800

HBASE-22664 Move protobuf stuff in hbase-rsgroup to hbase-protocol-shaded 
(#362)

Signed-off-by: Guanghao Zhang 
---
 .../apache/hadoop/hbase/protobuf/ProtobufUtil.java | 29 +++---
 .../hadoop/hbase/shaded/protobuf/ProtobufUtil.java | 27 ++
 .../src/main/protobuf/RSGroup.proto| 33 
 .../src/main/protobuf/RSGroupAdmin.proto   |  2 +-
 .../src/main/protobuf/RSGroupAdmin.proto   |  0
 hbase-rsgroup/pom.xml  | 18 ---
 .../hadoop/hbase/rsgroup/RSGroupAdminClient.java   | 10 ++--
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java | 10 ++--
 .../hbase/rsgroup/RSGroupInfoManagerImpl.java  |  8 +--
 .../hadoop/hbase/rsgroup/RSGroupProtobufUtil.java  | 63 --
 .../hbase/rsgroup/VerifyingRSGroupAdminClient.java |  5 +-
 11 files changed, 96 insertions(+), 109 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
index d270f8c..8f9f4a8 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
@@ -1772,23 +1772,36 @@ public final class ProtobufUtil {
 return ServerName.valueOf(hostname, port, -1L);
   }
 
+  public static HBaseProtos.TimeRange toTimeRange(TimeRange timeRange) {
+if (timeRange == null) {
+  timeRange = TimeRange.allTime();
+}
+return 
HBaseProtos.TimeRange.newBuilder().setFrom(timeRange.getMin()).setTo(timeRange.getMax())
+.build();
+  }
+
   public static RSGroupInfo toGroupInfo(RSGroupProtos.RSGroupInfo proto) {
 RSGroupInfo RSGroupInfo = new RSGroupInfo(proto.getName());
-for(HBaseProtos.ServerName el: proto.getServersList()) {
+for (HBaseProtos.ServerName el : proto.getServersList()) {
   RSGroupInfo.addServer(Address.fromParts(el.getHostName(), el.getPort()));
 }
-for(HBaseProtos.TableName pTableName: proto.getTablesList()) {
+for (HBaseProtos.TableName pTableName : proto.getTablesList()) {
   RSGroupInfo.addTable(ProtobufUtil.toTableName(pTableName));
 }
 return RSGroupInfo;
   }
 
-  public static HBaseProtos.TimeRange toTimeRange(TimeRange timeRange) {
-if (timeRange == null) {
-  timeRange = TimeRange.allTime();
+  public static RSGroupProtos.RSGroupInfo toProtoGroupInfo(RSGroupInfo pojo) {
+List tables = new 
ArrayList<>(pojo.getTables().size());
+for (TableName arg : pojo.getTables()) {
+  tables.add(ProtobufUtil.toProtoTableName(arg));
+}
+List hostports = new 
ArrayList<>(pojo.getServers().size());
+for (Address el : pojo.getServers()) {
+  
hostports.add(HBaseProtos.ServerName.newBuilder().setHostName(el.getHostname())
+  .setPort(el.getPort()).build());
 }
-return HBaseProtos.TimeRange.newBuilder().setFrom(timeRange.getMin())
-  .setTo(timeRange.getMax())
-  .build();
+return 
RSGroupProtos.RSGroupInfo.newBuilder().setName(pojo.getName()).addAllServers(hostports)
+.addAllTables(tables).build();
   }
 }
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
index 5a71917..0f23af8 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
@@ -93,6 +93,7 @@ import 
org.apache.hadoop.hbase.exceptions.DeserializationException;
 import org.apache.hadoop.hbase.filter.ByteArrayComparable;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.io.TimeRange;
+import org.apache.hadoop.hbase.net.Address;
 import org.apache.hadoop.hbase.protobuf.ProtobufMagic;
 import org.apache.hadoop.hbase.protobuf.ProtobufMessageConverter;
 import org.apache.hadoop.hbase.quotas.QuotaScope;
@@ -101,6 +102,7 @@ import org.apache.hadoop.hbase.quotas.SpaceViolationPolicy;
 import org.apache.hadoop.hbase.quotas.ThrottleType;
 import org.apache.hadoop.hbase.replication.ReplicationLoadSink;
 import org.apache.hadoop.hbase.replication.ReplicationLoadSource;
+import org.apache.hadoop.hbase.rsgroup.RSGroupInfo;
 import org.apache.hadoop.hbase.security.visibility.Authorizations;
 import org.apache.hadoop.hbase.security.visibility.CellVisibility;
 import org.apache.hadoop.hbase.util.Addressing;
@@ -177,6 +179,7 @@ import 
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableD
 import 
org.apache.hadoop.hbase.shaded.protobuf.generated.Ma

[hbase] 04/17: HBASE-22695 Store the rsgroup of a table in table configuration (#426)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 8cf13a59bd59fb231d23d9c1bea41cd3794eb24c
Author: Duo Zhang 
AuthorDate: Sat Aug 3 07:53:27 2019 +0800

HBASE-22695 Store the rsgroup of a table in table configuration (#426)

Signed-off-by: Guanghao Zhang 
---
 .../org/apache/hadoop/hbase/HTableDescriptor.java  |   6 +
 .../hadoop/hbase/client/TableDescriptor.java   |   8 +
 .../hbase/client/TableDescriptorBuilder.java   |  19 ++
 .../apache/hadoop/hbase/rsgroup/RSGroupInfo.java   |  42 ++-
 .../org/apache/hadoop/hbase/master/HMaster.java|   4 +-
 .../apache/hadoop/hbase/master/LoadBalancer.java   |  49 +---
 .../hbase/master/assignment/AssignmentManager.java |   6 +-
 .../apache/hadoop/hbase/rsgroup/RSGroupAdmin.java  |  23 --
 .../hadoop/hbase/rsgroup/RSGroupAdminClient.java   |  13 +-
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java | 152 --
 .../hadoop/hbase/rsgroup/RSGroupAdminServer.java   | 315 ++---
 .../hbase/rsgroup/RSGroupAdminServiceImpl.java | 111 ++--
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.java|  47 ++-
 .../hadoop/hbase/rsgroup/RSGroupInfoManager.java   |  23 --
 .../hbase/rsgroup/RSGroupInfoManagerImpl.java  | 115 +---
 .../apache/hadoop/hbase/rsgroup/RSGroupUtil.java   | 113 
 .../hadoop/hbase/master/TestRegionPlacement2.java  |   6 +-
 .../balancer/RSGroupableBalancerTestBase.java  |  84 +++---
 .../balancer/TestRSGroupBasedLoadBalancer.java |  42 ++-
 ...lancerWithStochasticLoadBalancerAsInternal.java |   4 +-
 .../hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java   |   1 -
 .../hadoop/hbase/rsgroup/TestRSGroupsAdmin2.java   | 104 +--
 .../hadoop/hbase/rsgroup/TestRSGroupsBalance.java  |  20 +-
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.java |   8 +-
 .../hbase/rsgroup/TestRSGroupsOfflineMode.java |   6 +-
 .../hbase/rsgroup/VerifyingRSGroupAdminClient.java |  67 +++--
 26 files changed, 590 insertions(+), 798 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
index 8866eba..188bed6 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
@@ -23,6 +23,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -987,4 +988,9 @@ public class HTableDescriptor implements TableDescriptor, 
Comparable getRegionServerGroup() {
+return delegatee.getRegionServerGroup();
+  }
 }
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java
index fc5e69e..a452387 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptor.java
@@ -23,6 +23,7 @@ import java.util.Collection;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Stream;
 import org.apache.hadoop.hbase.HConstants;
@@ -184,6 +185,13 @@ public interface TableDescriptor {
   String getOwnerString();
 
   /**
+   * Get the region server group this table belongs to. The regions of this 
table will be placed
+   * only on the region servers within this group. If not present, will be 
placed on
+   * {@link org.apache.hadoop.hbase.rsgroup.RSGroupInfo#DEFAULT_GROUP}.
+   */
+  Optional getRegionServerGroup();
+
+  /**
* Getter for accessing the metadata associated with the key.
*
* @param key The key.
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java
index 20acf3a..3b68007 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/TableDescriptorBuilder.java
@@ -39,6 +39,7 @@ import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.exceptions.DeserializationException;
+import org.apache.hadoop.hbase.rsgroup.RSGroupInfo;
 import org.apache.hadoop.hbase.security.User;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -189,6 +190,9 @@ public class TableDescriptorBuilder {
   private static final Bytes PRIORITY_KEY
   = new Bytes(Bytes.toBytes(PRIORITY));
 
+  private static 

[hbase] 07/17: HBASE-22819 Automatically migrate the rs group config for table after HBASE-22695 (#498)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 23f95cc963f7ce9e59023622aa034c225c2b72e0
Author: Duo Zhang 
AuthorDate: Sun Aug 25 11:19:04 2019 +0800

HBASE-22819 Automatically migrate the rs group config for table after 
HBASE-22695 (#498)

Signed-off-by: Guanghao Zhang 
---
 .../apache/hadoop/hbase/rsgroup/RSGroupInfo.java   |   4 +-
 .../hadoop/hbase/rsgroup/RSGroupAdminServer.java   |   2 +-
 .../hbase/rsgroup/RSGroupAdminServiceImpl.java |   2 +-
 .../hadoop/hbase/rsgroup/RSGroupInfoManager.java   |  14 +-
 .../hbase/rsgroup/RSGroupInfoManagerImpl.java  | 158 +++---
 .../apache/hadoop/hbase/rsgroup/RSGroupUtil.java   |  39 ++---
 .../hbase/rsgroup/TestMigrateRSGroupInfo.java  | 179 +
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.java |   3 +-
 8 files changed, 343 insertions(+), 58 deletions(-)

diff --git 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java
index ad55d1f..817e237 100644
--- 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java
+++ 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java
@@ -19,10 +19,8 @@
 package org.apache.hadoop.hbase.rsgroup;
 
 import java.util.Collection;
-import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
-
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.net.Address;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -104,7 +102,7 @@ public class RSGroupInfo {
   /**
* Get list of servers.
*/
-  public Set getServers() {
+  public SortedSet getServers() {
 return servers;
   }
 
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java
index 59950e1..1e324e5 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java
@@ -61,7 +61,7 @@ public class RSGroupAdminServer implements RSGroupAdmin {
   "one server in 'default' RSGroup.";
 
   private MasterServices master;
-  private final RSGroupInfoManager rsGroupInfoManager;
+  final RSGroupInfoManager rsGroupInfoManager;
 
   /** Define the config key of retries threshold when movements failed */
   //made package private for testing
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java
index 6bc4519..749d353 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServiceImpl.java
@@ -164,7 +164,7 @@ class RSGroupAdminServiceImpl extends 
RSGroupAdminProtos.RSGroupAdminService {
   }
   checkPermission("getRSGroupInfoOfTable");
   Optional optGroup =
-  RSGroupUtil.getRSGroupInfo(master, groupAdminServer, tableName);
+RSGroupUtil.getRSGroupInfo(master, 
groupAdminServer.rsGroupInfoManager, tableName);
   if (optGroup.isPresent()) {
 
builder.setRSGroupInfo(ProtobufUtil.toProtoGroupInfo(fillTables(optGroup.get(;
   } else {
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
index 28f7c1f..1b9f3ef 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.rsgroup;
 import java.io.IOException;
 import java.util.List;
 import java.util.Set;
+import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.net.Address;
 import org.apache.yetus.audience.InterfaceAudience;
 
@@ -68,11 +69,6 @@ public interface RSGroupInfoManager {
   List listRSGroups() throws IOException;
 
   /**
-   * Refresh/reload the group information from the persistent store
-   */
-  void refresh() throws IOException;
-
-  /**
* Whether the manager is able to fully return group metadata
* @return whether the manager is in online mode
*/
@@ -83,4 +79,12 @@ public interface RSGroupInfoManager {
* @param servers set of servers to remove
*/
   void removeServers(Set servers) throws IOException;
+
+  /**
+   * Get {@code RSGroupInfo} for the given table.
+   * @deprecated Since 3.0.0, will be removed in 4.0.0. Only for 
compatibility, where we upgrade
+   * from a version that stores table names for a rs group in the 
{@code RSGroupIn

[hbase] 11/17: HBASE-23081 Add an option to enable/disable rs group feature (#691)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 283aa0137547d8153b61f40e693d770bfaf47f38
Author: Duo Zhang 
AuthorDate: Mon Oct 7 17:34:33 2019 +0800

HBASE-23081 Add an option to enable/disable rs group feature (#691)

Signed-off-by: Peter Somogyi 
---
 .../org/apache/hadoop/hbase/master/HMaster.java|  12 +++
 .../hbase/rsgroup/DisabledRSGroupInfoManager.java  | 110 +
 .../hadoop/hbase/rsgroup/RSGroupInfoManager.java   |   8 +-
 .../org/apache/hadoop/hbase/TestNamespace.java |   3 +-
 .../hadoop/hbase/master/AbstractTestDLS.java   |   4 +-
 .../hadoop/hbase/master/TestClusterRestart.java|   2 +-
 .../hadoop/hbase/master/TestMasterMetrics.java |   4 +-
 .../TestMasterRestartAfterDisablingTable.java  |   4 +-
 .../hadoop/hbase/master/TestRollingRestart.java|   2 +-
 .../hadoop/hbase/regionserver/TestRegionOpen.java  |   1 -
 .../TestRegionReplicasWithRestartScenarios.java|   2 +-
 .../regionserver/TestRegionServerMetrics.java  |   4 +-
 .../hbase/util/TestHBaseFsckReplication.java   |   2 -
 13 files changed, 140 insertions(+), 18 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 07b9fc2..59a1c81 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -183,6 +183,7 @@ import 
org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;
 import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;
 import 
org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;
 import org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus;
+import org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint;
 import org.apache.hadoop.hbase.rsgroup.RSGroupBasedLoadBalancer;
 import org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager;
 import org.apache.hadoop.hbase.security.AccessDeniedException;
@@ -784,6 +785,17 @@ public class HMaster extends HRegionServer implements 
MasterServices {
 this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);
 this.splitOrMergeTracker.start();
 
+// This is for backwards compatible. We do not need the CP for rs group 
now but if user want to
+// load it, we need to enable rs group.
+String[] cpClasses = 
conf.getStrings(MasterCoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);
+if (cpClasses != null) {
+  for (String cpClass : cpClasses) {
+if (RSGroupAdminEndpoint.class.getName().equals(cpClass)) {
+  conf.setBoolean(RSGroupInfoManager.RS_GROUP_ENABLED, true);
+  break;
+}
+  }
+}
 this.rsGroupInfoManager = RSGroupInfoManager.create(this);
 
 this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, 
conf);
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/DisabledRSGroupInfoManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/DisabledRSGroupInfoManager.java
new file mode 100644
index 000..c7c521c
--- /dev/null
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/DisabledRSGroupInfoManager.java
@@ -0,0 +1,110 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.rsgroup;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import org.apache.hadoop.hbase.DoNotRetryIOException;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.master.ServerManager;
+import org.apache.hadoop.hbase.net.Address;
+import org.apache.yetus.audience.InterfaceAudience;
+
+/**
+ * A dummy RSGroupInfoManager which only contains a default rs group.
+ */
+@InterfaceAudience.Private
+class DisabledRSGroupInfoManager implements RSGroupInfoManager {
+
+  private final ServerManager serverManager;
+
+  public DisabledRSGro

[hbase] 16/17: HBASE-23235 Re-enable TestRSGroupsKillRS.testLowerMetaGroupVersion (#1117)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 6f362c061063405492430f285e9cefe5cf5e03e3
Author: Duo Zhang 
AuthorDate: Mon Feb 3 19:41:49 2020 +0800

HBASE-23235 Re-enable TestRSGroupsKillRS.testLowerMetaGroupVersion (#1117)

Signed-off-by: Guanghao Zhang 
---
 .../java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsKillRS.java | 5 -
 1 file changed, 5 deletions(-)

diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsKillRS.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsKillRS.java
index bb4f441..d6eaeb2 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsKillRS.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsKillRS.java
@@ -51,7 +51,6 @@ import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.slf4j.Logger;
@@ -231,9 +230,6 @@ public class TestRSGroupsKillRS extends TestRSGroupsBase {
 TEST_UTIL.waitTableAvailable(tableName, 3);
   }
 
-  // TODO: can not change meta group for now as we can not change the table 
descriptor of meta
-  // table, this has to be done before we merge back to master.
-  @Ignore
   @Test
   public void testLowerMetaGroupVersion() throws Exception {
 // create a rsgroup and move one regionserver to it
@@ -247,7 +243,6 @@ public class TestRSGroupsKillRS extends TestRSGroupsBase {
 ADMIN.setRSGroup(toAddTables, groupName);
 assertTrue(RS_GROUP_ADMIN_CLIENT.getRSGroupInfo(groupName).getTables()
   .contains(TableName.META_TABLE_NAME));
-TEST_UTIL.waitTableAvailable(tableName, 3);
 
 // restart the regionserver in meta_group, and lower its version
 String originVersion = "";



[hbase] branch HBASE-22514 updated (1228ae1 -> 32805b1)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a change to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git.


 discard 1228ae1  HBASE-23276 Add admin methods to get tables within a group 
(#1118)
 discard 75e2c7c  HBASE-23235 Re-enable 
TestRSGroupsKillRS.testLowerMetaGroupVersion (#1117)
 discard f25b01d  HBASE-23253 Rewrite rsgroup related UTs with the new methods 
introduced in HBASE-22932 (#813)
 discard 2b49001  HBASE-22932 Add rs group management methods in Admin and 
AsyncAdmin (#657)
 discard 3e8ca30  HBASE-23050 Use RSGroupInfoManager to get rsgroups in master 
UI's rsgroup part (#776)
 discard a6fdfa5  HBASE-23232 Remove rsgroup profile from pom.xml of 
hbase-assembly (#779)
 discard 60fc985  HBASE-23081 Add an option to enable/disable rs group feature 
(#691)
 discard 3d5607e  HBASE-22971 Deprecated RSGroupAdminEndpoint and make RSGroup 
feature always enabled (#595)
 discard 9f890c6  HBASE-22987 Calculate the region servers in default group in 
foreground (#599)
 discard 0d37785  HBASE-22729 Start RSGroupInfoManager as default (#555)
 discard a96780f  HBASE-22819 Automatically migrate the rs group config for 
table after HBASE-22695 (#498)
 discard 19b6e6c  HBASE-22820 Do not need to persist default rs group now (#482)
 discard 12cb421  HBASE-22809 Allow creating table in group when rs group 
contains no live servers (#464)
 discard c9817ff  HBASE-22695 Store the rsgroup of a table in table 
configuration (#426)
 discard 2b677b2  HBASE-22676 Move all the code in hbase-rsgroup to 
hbase-server and remove hbase-rsgroup module (#399)
 discard a238441  HBASE-22662 Move RSGroupInfoManager to hbase-server (#368)
 discard 5f8065f  HBASE-22664 Move protobuf stuff in hbase-rsgroup to 
hbase-protocol-shaded (#362)
 add 1295d05  Add Bharath Vissapragada to developers list. (#1139)
 add 93c5e76  HBASE-23775 Removed deprecated method 
createLocalHTU(Configuration) from HBaseTestingUtility
 new 567c6a5  HBASE-22664 Move protobuf stuff in hbase-rsgroup to 
hbase-protocol-shaded (#362)
 new c6eb7bd  HBASE-22662 Move RSGroupInfoManager to hbase-server (#368)
 new 3468e5d  HBASE-22676 Move all the code in hbase-rsgroup to 
hbase-server and remove hbase-rsgroup module (#399)
 new 8cf13a5  HBASE-22695 Store the rsgroup of a table in table 
configuration (#426)
 new 5df8085  HBASE-22809 Allow creating table in group when rs group 
contains no live servers (#464)
 new 99964a3  HBASE-22820 Do not need to persist default rs group now (#482)
 new 23f95cc  HBASE-22819 Automatically migrate the rs group config for 
table after HBASE-22695 (#498)
 new 21b35a1  HBASE-22729 Start RSGroupInfoManager as default (#555)
 new 10251ba  HBASE-22987 Calculate the region servers in default group in 
foreground (#599)
 new 27dd9ad  HBASE-22971 Deprecated RSGroupAdminEndpoint and make RSGroup 
feature always enabled (#595)
 new 283aa01  HBASE-23081 Add an option to enable/disable rs group feature 
(#691)
 new 11ee0ef  HBASE-23232 Remove rsgroup profile from pom.xml of 
hbase-assembly (#779)
 new a7d7213  HBASE-23050 Use RSGroupInfoManager to get rsgroups in master 
UI's rsgroup part (#776)
 new fc04ff2  HBASE-22932 Add rs group management methods in Admin and 
AsyncAdmin (#657)
 new f4474ee  HBASE-23253 Rewrite rsgroup related UTs with the new methods 
introduced in HBASE-22932 (#813)
 new 6f362c0  HBASE-23235 Re-enable 
TestRSGroupsKillRS.testLowerMetaGroupVersion (#1117)
 new 32805b1  HBASE-23276 Add admin methods to get tables within a group 
(#1118)

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (1228ae1)
\
 N -- N -- N   refs/heads/HBASE-22514 (32805b1)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 17 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/hadoop/hbase/HBaseTestingUtility.java| 12 
 .../hadoop/hbase/regionserver/TestCompactingMemStore.java|  2 +-
 .../hadoop/hbase/regionserver/TestDefaultMemStore.java   |  4 ++--
 .../hbase/regionserver/TestMemStoreSegmentsIterator.java |  2 +-
 pom.xml  |  6 ++
 5 files changed, 10 insertions(+), 16 deletion

[hbase] 17/17: HBASE-23276 Add admin methods to get tables within a group (#1118)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 32805b1f3f8d3b5a668f3338f205c1cee58f6087
Author: Duo Zhang 
AuthorDate: Thu Feb 6 19:53:57 2020 +0800

HBASE-23276 Add admin methods to get tables within a group (#1118)

Signed-off-by: Guanghao Zhang 
---
 .../java/org/apache/hadoop/hbase/client/Admin.java | 25 +
 .../hadoop/hbase/client/AdminOverAsyncAdmin.java   | 13 -
 .../org/apache/hadoop/hbase/client/AsyncAdmin.java | 25 +
 .../hadoop/hbase/client/AsyncHBaseAdmin.java   | 13 -
 .../hadoop/hbase/client/RawAsyncHBaseAdmin.java| 33 +++
 .../hbase/rsgroup/IntegrationTestRSGroup.java  |  5 +-
 .../src/main/protobuf/Master.proto |  6 ++
 .../src/main/protobuf/RSGroupAdmin.proto   | 17 ++
 .../hadoop/hbase/coprocessor/MasterObserver.java   | 34 
 .../hadoop/hbase/master/MasterCoprocessorHost.java | 42 ++
 .../hadoop/hbase/master/MasterRpcServices.java | 64 ++
 .../hbase/security/access/AccessController.java| 14 +
 .../hbase/rsgroup/TestMigrateRSGroupInfo.java  | 20 +--
 .../hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java   | 30 +-
 .../hadoop/hbase/rsgroup/TestRSGroupsAdmin2.java   | 18 +++---
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.java | 59 
 .../hadoop/hbase/rsgroup/TestRSGroupsKillRS.java   |  5 +-
 .../hbase/rsgroup/VerifyingRSGroupAdmin.java   | 12 
 .../hadoop/hbase/thrift2/client/ThriftAdmin.java   | 12 
 19 files changed, 401 insertions(+), 46 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
index 184d588..b7381cc 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
@@ -63,6 +63,7 @@ import 
org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;
 import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;
 import org.apache.hadoop.hbase.snapshot.UnknownSnapshotException;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.Pair;
 import org.apache.yetus.audience.InterfaceAudience;
 
 /**
@@ -2300,6 +2301,30 @@ public interface Admin extends Abortable, Closeable {
   List listRSGroups() throws IOException;
 
   /**
+   * Get all tables in this RegionServer group.
+   * @param groupName the group name
+   * @throws IOException if a remote or network exception occurs
+   * @see #getConfiguredNamespacesAndTablesInRSGroup(String)
+   */
+  List listTablesInRSGroup(String groupName) throws IOException;
+
+  /**
+   * Get the namespaces and tables which have this RegionServer group in 
descriptor.
+   * 
+   * The difference between this method and {@link 
#listTablesInRSGroup(String)} is that, this
+   * method will not include the table which is actually in this RegionServr 
group but without the
+   * RegionServer group configuration in its {@link TableDescriptor}. For 
example, we have a group
+   * 'A', and we make namespace 'nsA' in this group, then all the tables under 
this namespace will
+   * in the group 'A', but this method will not return these tables but only 
the namespace 'nsA',
+   * while the {@link #listTablesInRSGroup(String)} will return all these 
tables.
+   * @param groupName the group name
+   * @throws IOException if a remote or network exception occurs
+   * @see #listTablesInRSGroup(String)
+   */
+  Pair, List> 
getConfiguredNamespacesAndTablesInRSGroup(String groupName)
+throws IOException;
+
+  /**
* Remove RegionServer group associated with the given name
* @param groupName the group name
* @throws IOException if a remote or network exception occurs
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AdminOverAsyncAdmin.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AdminOverAsyncAdmin.java
index 9ebc593..c28eeb4 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AdminOverAsyncAdmin.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AdminOverAsyncAdmin.java
@@ -66,6 +66,7 @@ import 
org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;
 import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;
 import org.apache.hadoop.hbase.snapshot.UnknownSnapshotException;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.Pair;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -993,6 +994,17 @@ class AdminOverAsyncAdmin implements Admin {
   }
 
   @Override
+  public List listTablesInRSGroup(String groupName) throws 
IOException {
+return get(admin.listTablesInRSGroup(groupName));
+  }
+
+  @Override
+ 

[hbase] 12/17: HBASE-23232 Remove rsgroup profile from pom.xml of hbase-assembly (#779)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 11ee0efc087b61cd067622e86978a97548a0c70b
Author: Guangxu Cheng 
AuthorDate: Thu Oct 31 03:01:09 2019 +0800

HBASE-23232 Remove rsgroup profile from pom.xml of hbase-assembly (#779)
---
 hbase-assembly/pom.xml | 17 -
 1 file changed, 17 deletions(-)

diff --git a/hbase-assembly/pom.xml b/hbase-assembly/pom.xml
index 9096e09..f9e4431 100644
--- a/hbase-assembly/pom.xml
+++ b/hbase-assembly/pom.xml
@@ -323,21 +323,4 @@
   pom
 
   
-  
-
-  rsgroup
-  
-
-!skip-rsgroup
-
-  
-  
-
-  org.apache.hbase
-  hbase-rsgroup
-  ${project.version}
-
-  
-
-  
 



[hbase] 10/17: HBASE-22971 Deprecated RSGroupAdminEndpoint and make RSGroup feature always enabled (#595)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 27dd9ad5fc2280d2e4ca7f1b8a05908c2df10633
Author: Duo Zhang 
AuthorDate: Tue Sep 24 12:09:12 2019 +0800

HBASE-22971 Deprecated RSGroupAdminEndpoint and make RSGroup feature always 
enabled (#595)

Signed-off-by: Guanghao Zhang 
---
 .../hbase/favored/FavoredNodeLoadBalancer.java |   1 +
 .../hadoop/hbase/favored/FavoredNodesPromoter.java |   2 +
 .../org/apache/hadoop/hbase/master/HMaster.java|  43 +++
 .../apache/hadoop/hbase/master/LoadBalancer.java   |   9 ++
 .../hadoop/hbase/master/MasterRpcServices.java |  23 ++--
 .../apache/hadoop/hbase/master/MasterServices.java |   2 +-
 .../hbase/master/assignment/AssignmentManager.java |  15 ++-
 .../master/balancer/FavoredStochasticBalancer.java |   1 +
 .../hbase/master/balancer/LoadBalancerFactory.java |  18 ++-
 .../AbstractStateMachineNamespaceProcedure.java|  11 ++
 .../master/procedure/CreateNamespaceProcedure.java |   1 +
 .../master/procedure/CreateTableProcedure.java |  27 +++-
 .../master/procedure/MasterProcedureUtil.java  |  50 +++-
 .../master/procedure/ModifyNamespaceProcedure.java |  19 ++-
 .../master/procedure/ModifyTableProcedure.java |  13 +-
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java | 141 +
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.java|  65 ++
 .../hbase/rsgroup/RSGroupInfoManagerImpl.java  |   2 +-
 .../hadoop/hbase/rsgroup/RSGroupableBalancer.java  |  32 -
 .../org/apache/hadoop/hbase/TestNamespace.java |   2 +-
 .../hadoop/hbase/master/AbstractTestDLS.java   |   4 +-
 .../hbase/master/MockNoopMasterServices.java   |   2 +-
 .../hadoop/hbase/master/TestClusterRestart.java|   6 +-
 .../hadoop/hbase/master/TestMasterMetrics.java |   4 +-
 .../TestMasterRestartAfterDisablingTable.java  |   4 +-
 .../hadoop/hbase/master/TestRollingRestart.java|   2 +-
 .../TestFavoredStochasticBalancerPickers.java  |   2 +-
 .../hadoop/hbase/regionserver/TestRegionOpen.java  |   2 +-
 .../TestRegionReplicasWithRestartScenarios.java|   2 +-
 .../regionserver/TestRegionServerMetrics.java  |   4 +-
 .../hbase/rsgroup/TestRSGroupsOfflineMode.java |   3 +-
 .../security/access/TestTablePermissions.java  |   3 +-
 .../hbase/util/TestHBaseFsckReplication.java   |   2 +
 33 files changed, 240 insertions(+), 277 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.java
index b8d4b09..52a37a2 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.java
@@ -321,6 +321,7 @@ public class FavoredNodeLoadBalancer extends 
BaseLoadBalancer implements Favored
 regionsOnServer.add(region);
   }
 
+  @Override
   public synchronized List getFavoredNodes(RegionInfo regionInfo) {
 return this.fnm.getFavoredNodes(regionInfo);
   }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodesPromoter.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodesPromoter.java
index 322eb1df..a24fce0 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodesPromoter.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodesPromoter.java
@@ -35,4 +35,6 @@ public interface FavoredNodesPromoter {
 
   void generateFavoredNodesForMergedRegion(RegionInfo merged, RegionInfo [] 
mergeParents)
   throws IOException;
+
+  List getFavoredNodes(RegionInfo regionInfo);
 }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 6e828e2..07b9fc2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -91,7 +91,6 @@ import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
 import org.apache.hadoop.hbase.exceptions.DeserializationException;
 import org.apache.hadoop.hbase.executor.ExecutorType;
 import org.apache.hadoop.hbase.favored.FavoredNodesManager;
-import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;
 import org.apache.hadoop.hbase.http.InfoServer;
 import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;
 import org.apache.hadoop.hbase.ipc.RpcServer;
@@ -104,7 +103,6 @@ import 
org.apache.hadoop.hbase.master.assignment.RegionStateNode;
 import org.apache.hadoop.hbase.master.assignment.RegionStates;
 import org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure;
 import org.apache.hadoop.hbase.master.balancer.BalancerChore;
-import org.apac

[hbase] 13/17: HBASE-23050 Use RSGroupInfoManager to get rsgroups in master UI's rsgroup part (#776)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit a7d72137ba9ede11e1bae6618575d48eec9475cf
Author: Guangxu Cheng 
AuthorDate: Thu Oct 31 03:05:52 2019 +0800

HBASE-23050 Use RSGroupInfoManager to get rsgroups in master UI's rsgroup 
part (#776)

Signed-off-by: Duo Zhang 
---
 .../jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon   | 3 ++-
 .../jamon/org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.jamon| 2 +-
 .../main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java  | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
index 39e0a60..d282f33 100644
--- 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
+++ 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
@@ -52,6 +52,7 @@ org.apache.hadoop.hbase.master.RegionState;
 org.apache.hadoop.hbase.master.ServerManager;
 org.apache.hadoop.hbase.protobuf.ProtobufUtil;
 org.apache.hadoop.hbase.quotas.QuotaUtil;
+org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager;
 org.apache.hadoop.hbase.security.access.PermissionStorage;
 org.apache.hadoop.hbase.security.visibility.VisibilityConstants;
 
org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;
@@ -224,7 +225,7 @@ AssignmentManager assignmentManager = 
master.getAssignmentManager();
   <& AssignmentManagerStatusTmpl; 
assignmentManager=master.getAssignmentManager()&>
 
 <%if !master.isInMaintenanceMode() %>
-  <%if 
master.getMasterCoprocessorHost().findCoprocessor("RSGroupAdminEndpoint") != 
null &&
+  <%if 
master.getConfiguration().getBoolean(RSGroupInfoManager.RS_GROUP_ENABLED, 
false) &&
 serverManager.getOnlineServersList().size() > 0 %>
 
   RSGroup
diff --git 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.jamon
 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.jamon
index 7f15aa6..765eab9 100644
--- 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.jamon
+++ 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RSGroupListTmpl.jamon
@@ -41,7 +41,7 @@ ServerManager serverManager;
 org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix;
 
 <%java>
-List groups = 
RSGroupTableAccessor.getAllRSGroupInfo(master.getConnection());
+List groups = master.getRSGroupInfoManager().listRSGroups();
 
 <%if (groups != null && groups.size() > 0)%>
 
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
index 3f73f78..0eb15e9 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java
@@ -32,7 +32,7 @@ import org.apache.yetus.audience.InterfaceAudience;
 @InterfaceAudience.Private
 public interface RSGroupInfoManager {
 
-  static final String RS_GROUP_ENABLED = "hbase.balancer.rsgroup.enabled";
+  public static final String RS_GROUP_ENABLED = 
"hbase.balancer.rsgroup.enabled";
 
   void start();
 



[hbase] 05/17: HBASE-22809 Allow creating table in group when rs group contains no live servers (#464)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 5df8085937075ffd1411744777fca1d03ce19ef5
Author: Duo Zhang 
AuthorDate: Fri Aug 9 09:25:00 2019 +0800

HBASE-22809 Allow creating table in group when rs group contains no live 
servers (#464)

Signed-off-by: Guanghao Zhang 
---
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java | 119 -
 .../hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java   |   4 +-
 .../hadoop/hbase/rsgroup/TestRSGroupsBasics.java   |  42 
 3 files changed, 71 insertions(+), 94 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
index 3c4530f..a2a5623 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
@@ -21,11 +21,12 @@ import com.google.protobuf.Service;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Supplier;
 import java.util.stream.Collectors;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
-import org.apache.hadoop.hbase.HBaseIOException;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.NamespaceDescriptor;
 import org.apache.hadoop.hbase.ServerName;
@@ -68,7 +69,7 @@ public class RSGroupAdminEndpoint implements 
MasterCoprocessor, MasterObserver {
 groupInfoManager = RSGroupInfoManagerImpl.getInstance(master);
 groupAdminServer = new RSGroupAdminServer(master, groupInfoManager);
 Class clazz =
-
master.getConfiguration().getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, 
null);
+  
master.getConfiguration().getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, 
null);
 if (!RSGroupableBalancer.class.isAssignableFrom(clazz)) {
   throw new IOException("Configured balancer does not support RegionServer 
groups.");
 }
@@ -108,85 +109,101 @@ public class RSGroupAdminEndpoint implements 
MasterCoprocessor, MasterObserver {
 
   @Override
   public void 
postClearDeadServers(ObserverContext ctx,
-  List servers, List notClearedServers) throws 
IOException {
+List servers, List notClearedServers) throws 
IOException {
 Set clearedServer =
-servers.stream().filter(server -> !notClearedServers.contains(server))
-.map(ServerName::getAddress).collect(Collectors.toSet());
+  servers.stream().filter(server -> !notClearedServers.contains(server))
+.map(ServerName::getAddress).collect(Collectors.toSet());
 if (!clearedServer.isEmpty()) {
   groupAdminServer.removeServers(clearedServer);
 }
   }
 
-  private void checkGroupExists(Optional optGroupName) throws 
IOException {
+  private RSGroupInfo checkGroupExists(Optional optGroupName, 
Supplier forWhom)
+throws IOException {
 if (optGroupName.isPresent()) {
   String groupName = optGroupName.get();
-  if (groupAdminServer.getRSGroupInfo(groupName) == null) {
-throw new ConstraintException("Region server group " + groupName + " 
does not exit");
+  RSGroupInfo group = groupAdminServer.getRSGroupInfo(groupName);
+  if (group == null) {
+throw new ConstraintException(
+  "Region server group " + groupName + " for " + forWhom.get() + " 
does not exit");
   }
+  return group;
 }
+return null;
   }
 
-  private boolean rsgroupHasServersOnline(TableDescriptor desc) throws 
IOException {
-RSGroupInfo rsGroupInfo;
-Optional optGroupName = desc.getRegionServerGroup();
-if (optGroupName.isPresent()) {
-  String groupName = optGroupName.get();
-  if (groupName.equals(RSGroupInfo.DEFAULT_GROUP)) {
-// do not check for default group
-return true;
-  }
-  rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);
-  if (rsGroupInfo == null) {
-throw new ConstraintException(
-"RSGroup " + groupName + " for table " + desc.getTableName() + " 
does not exist");
-  }
-} else {
-  NamespaceDescriptor nd =
-  
master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString());
-  String groupNameOfNs = 
nd.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);
-  if (groupNameOfNs == null || 
groupNameOfNs.equals(RSGroupInfo.DEFAULT_GROUP)) {
-// do not check for default group
-return true;
-  }
-  rsGroupInfo = groupAdminServer.getRSGroupInfo(groupNameOfNs);
-  if (rsGroupInfo == null) {
-throw new ConstraintException("RSGroup " + groupNameOfNs + " for table 
" +
-desc.getTableName() + "(inherit from namespace) does not exis

[hbase] 09/17: HBASE-22987 Calculate the region servers in default group in foreground (#599)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 10251ba78460d41ed683dfa2ef9e315886d0e652
Author: Duo Zhang 
AuthorDate: Wed Sep 11 22:10:52 2019 +0800

HBASE-22987 Calculate the region servers in default group in foreground 
(#599)

Signed-off-by: Guanghao Zhang 
---
 .../hbase/rsgroup/RSGroupInfoManagerImpl.java  | 138 +
 1 file changed, 32 insertions(+), 106 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
index 6725066..7224869 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
@@ -30,6 +30,7 @@ import java.util.OptionalLong;
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
+import java.util.stream.Collectors;
 import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.DoNotRetryIOException;
 import org.apache.hadoop.hbase.NamespaceDescriptor;
@@ -174,8 +175,6 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
   private final RSGroupStartupWorker rsGroupStartupWorker;
   // contains list of groups that were last flushed to persistent store
   private Set prevRSGroups = new HashSet<>();
-  private final ServerEventsListenerThread serverEventsListenerThread =
-new ServerEventsListenerThread();
 
   private RSGroupInfoManagerImpl(MasterServices masterServices) throws 
IOException {
 this.masterServices = masterServices;
@@ -184,11 +183,34 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
 this.rsGroupStartupWorker = new RSGroupStartupWorker();
   }
 
+  private synchronized void updateDefaultServers() {
+LOG.info("Updating default servers.");
+Map newGroupMap = 
Maps.newHashMap(holder.groupName2Group);
+RSGroupInfo oldDefaultGroupInfo = getRSGroup(RSGroupInfo.DEFAULT_GROUP);
+assert oldDefaultGroupInfo != null;
+RSGroupInfo newDefaultGroupInfo =
+  new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers());
+newDefaultGroupInfo.addAllTables(oldDefaultGroupInfo.getTables());
+newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroupInfo);
+// do not need to persist, as we do not persist default group.
+resetRSGroupMap(newGroupMap);
+LOG.info("Updated default servers, {} servers", 
newDefaultGroupInfo.getServers().size());
+  }
 
   private synchronized void init() throws IOException {
 refresh(false);
-serverEventsListenerThread.start();
-
masterServices.getServerManager().registerListener(serverEventsListenerThread);
+masterServices.getServerManager().registerListener(new ServerListener() {
+
+  @Override
+  public void serverAdded(ServerName serverName) {
+updateDefaultServers();
+  }
+
+  @Override
+  public void serverRemoved(ServerName serverName) {
+updateDefaultServers();
+  }
+});
 migrate();
   }
 
@@ -225,19 +247,11 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
   }
 
   /**
-   * @param master the master to get online servers for
* @return Set of online Servers named for their hostname and port (not 
ServerName).
*/
-  private static Set getOnlineServers(final MasterServices master) {
-Set onlineServers = new HashSet();
-if (master == null) {
-  return onlineServers;
-}
-
-for (ServerName server : 
master.getServerManager().getOnlineServers().keySet()) {
-  onlineServers.add(server.getAddress());
-}
-return onlineServers;
+  private Set getOnlineServers() {
+return 
masterServices.getServerManager().getOnlineServers().keySet().stream()
+  .map(ServerName::getAddress).collect(Collectors.toSet());
   }
 
   @Override
@@ -249,8 +263,7 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
 // it. If not 'default' group, add server to 'dst' rsgroup EVEN IF IT IS 
NOT online (could be a
 // rsgroup of dead servers that are to come back later).
 Set onlineServers =
-  dst.getName().equals(RSGroupInfo.DEFAULT_GROUP) ? 
getOnlineServers(this.masterServices)
-: null;
+  dst.getName().equals(RSGroupInfo.DEFAULT_GROUP) ? getOnlineServers() : 
null;
 for (Address el : servers) {
   src.removeServer(el);
   if (onlineServers != null) {
@@ -617,25 +630,8 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
 this.prevRSGroups.addAll(currentGroups);
   }
 
-  // Called by getDefaultServers. Presume it has lock in place.
-  private List getOnlineRS() throws IOException {
-if (masterServices != null) {
-  return masterServices.getServerManager().getOnlineServersList();
-}
-LO

[hbase] 08/17: HBASE-22729 Start RSGroupInfoManager as default (#555)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 21b35a17c605ea1f652e5a9ea57380d07ced5c47
Author: Guanghao Zhang 
AuthorDate: Tue Sep 3 11:39:19 2019 +0800

HBASE-22729 Start RSGroupInfoManager as default (#555)

Amending-Author: Duo Zhang 
Signed-off-by: stack 
---
 .../src/main/java/org/apache/hadoop/hbase/master/HMaster.java  | 10 ++
 .../java/org/apache/hadoop/hbase/master/MasterServices.java|  8 ++--
 .../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java  |  2 +-
 .../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java|  5 +
 .../org/apache/hadoop/hbase/master/MockNoopMasterServices.java |  9 -
 5 files changed, 30 insertions(+), 4 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 44a5b65..6e828e2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -185,6 +185,7 @@ import 
org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;
 import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;
 import 
org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;
 import org.apache.hadoop.hbase.replication.regionserver.ReplicationStatus;
+import org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager;
 import org.apache.hadoop.hbase.security.AccessDeniedException;
 import org.apache.hadoop.hbase.security.SecurityConstants;
 import org.apache.hadoop.hbase.security.UserProvider;
@@ -355,6 +356,8 @@ public class HMaster extends HRegionServer implements 
MasterServices {
   // manager of assignment nodes in zookeeper
   private AssignmentManager assignmentManager;
 
+  private RSGroupInfoManager rsGroupInfoManager;
+
   // manager of replication
   private ReplicationPeerManager replicationPeerManager;
 
@@ -784,6 +787,8 @@ public class HMaster extends HRegionServer implements 
MasterServices {
 this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);
 this.splitOrMergeTracker.start();
 
+this.rsGroupInfoManager = RSGroupInfoManager.create(this);
+
 this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, 
conf);
 
 this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, 
this.serverManager);
@@ -3836,4 +3841,9 @@ public class HMaster extends HRegionServer implements 
MasterServices {
   rbc.chore();
 }
   }
+
+  @Override
+  public RSGroupInfoManager getRSRSGroupInfoManager() {
+return rsGroupInfoManager;
+  }
 }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
index 0163998..28e254a 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
@@ -18,10 +18,8 @@
 package org.apache.hadoop.hbase.master;
 
 import com.google.protobuf.Service;
-
 import java.io.IOException;
 import java.util.List;
-
 import org.apache.hadoop.hbase.Server;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableDescriptors;
@@ -51,6 +49,7 @@ import 
org.apache.hadoop.hbase.replication.ReplicationException;
 import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
 import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;
 import org.apache.hadoop.hbase.replication.SyncReplicationState;
+import org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager;
 import org.apache.hadoop.hbase.security.access.AccessChecker;
 import org.apache.hadoop.hbase.security.access.ZKPermissionWatcher;
 import org.apache.yetus.audience.InterfaceAudience;
@@ -541,4 +540,9 @@ public interface MasterServices extends Server {
* Run the ReplicationBarrierChore.
*/
   void runReplicationBarrierCleaner();
+
+  /**
+   * @return the {@link RSGroupInfoManager}
+   */
+  RSGroupInfoManager getRSRSGroupInfoManager();
 }
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
index a2a5623..0bde67b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java
@@ -66,7 +66,7 @@ public class RSGroupAdminEndpoint implements 
MasterCoprocessor, MasterObserver {
 }
 
 master = ((HasMasterServices) env).getMasterServices();
-groupInfoManager = RSGroupInfoManagerImpl.getInstance(master);
+groupInfoManager = master.getRSRSGroupInfoManager();
 groupAdminServer = new RSGroupAdmi

[hbase] 06/17: HBASE-22820 Do not need to persist default rs group now (#482)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 99964a30cc64b1657190d0c70be61eacdbc2daba
Author: linkaline 
AuthorDate: Fri Aug 16 16:52:41 2019 +0800

HBASE-22820 Do not need to persist default rs group now (#482)

Signed-off-by: Duo Zhang 
---
 .../hbase/rsgroup/RSGroupInfoManagerImpl.java  | 40 +-
 .../hbase/rsgroup/VerifyingRSGroupAdminClient.java | 25 ++
 2 files changed, 49 insertions(+), 16 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
index 37f3ce6..eaf23f3 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java
@@ -396,11 +396,13 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
 }
 
 // populate puts
-for (RSGroupInfo RSGroupInfo : groupMap.values()) {
-  RSGroupProtos.RSGroupInfo proto = 
ProtobufUtil.toProtoGroupInfo(RSGroupInfo);
-  Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));
-  p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, 
proto.toByteArray());
-  mutations.add(p);
+for (RSGroupInfo gi : groupMap.values()) {
+  if (!gi.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {
+RSGroupProtos.RSGroupInfo proto = ProtobufUtil.toProtoGroupInfo(gi);
+Put p = new Put(Bytes.toBytes(gi.getName()));
+p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, 
proto.toByteArray());
+mutations.add(p);
+  }
 }
 
 if (mutations.size() > 0) {
@@ -449,7 +451,12 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
 
 // Make changes visible after having been persisted to the source of truth
 resetRSGroupMap(newGroupMap);
+saveRSGroupMapToZK(newGroupMap);
 
+updateCacheOfRSGroups(newGroupMap.keySet());
+  }
+
+  private void saveRSGroupMapToZK(Map newGroupMap) throws 
IOException {
 try {
   String groupBasePath =
   ZNodePaths.joinZNode(watcher.getZNodePaths().baseZNode, 
RS_GROUP_ZNODE);
@@ -463,14 +470,16 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
 }
   }
 
-  for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {
-String znode = ZNodePaths.joinZNode(groupBasePath, 
RSGroupInfo.getName());
-RSGroupProtos.RSGroupInfo proto = 
ProtobufUtil.toProtoGroupInfo(RSGroupInfo);
-LOG.debug("Updating znode: " + znode);
-ZKUtil.createAndFailSilent(watcher, znode);
-zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));
-zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,
-  ProtobufUtil.prependPBMagic(proto.toByteArray(;
+  for (RSGroupInfo gi : newGroupMap.values()) {
+if (!gi.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {
+  String znode = ZNodePaths.joinZNode(groupBasePath, gi.getName());
+  RSGroupProtos.RSGroupInfo proto = ProtobufUtil.toProtoGroupInfo(gi);
+  LOG.debug("Updating znode: " + znode);
+  ZKUtil.createAndFailSilent(watcher, znode);
+  zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));
+  zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,
+  ProtobufUtil.prependPBMagic(proto.toByteArray(;
+}
   }
   LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());
 
@@ -480,7 +489,6 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
   masterServices.abort("Failed to write to rsGroupZNode", e);
   throw new IOException("Failed to write to rsGroupZNode", e);
 }
-updateCacheOfRSGroups(newGroupMap.keySet());
   }
 
   /**
@@ -540,12 +548,12 @@ final class RSGroupInfoManagerImpl implements 
RSGroupInfoManager {
 
   // Called by ServerEventsListenerThread. Synchronize on this because redoing
   // the rsGroupMap then writing it out.
-  private synchronized void updateDefaultServers(SortedSet servers) 
throws IOException {
+  private synchronized void updateDefaultServers(SortedSet servers) {
 RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);
 RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers);
 HashMap newGroupMap = Maps.newHashMap(rsGroupMap);
 newGroupMap.put(newInfo.getName(), newInfo);
-flushConfig(newGroupMap);
+resetRSGroupMap(newGroupMap);
   }
 
   /**
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java
index a8cd277..28131a9 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java
+++ 
b/hbase-server/sr

[hbase] 03/17: HBASE-22676 Move all the code in hbase-rsgroup to hbase-server and remove hbase-rsgroup module (#399)

2020-02-07 Thread zhangduo
This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch HBASE-22514
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 3468e5df478dd3a0afc437b36d8df87fa2324027
Author: Duo Zhang 
AuthorDate: Tue Jul 23 09:40:02 2019 +0800

HBASE-22676 Move all the code in hbase-rsgroup to hbase-server and remove 
hbase-rsgroup module (#399)

Signed-off-by: Zheng Hu 
---
 hbase-assembly/src/main/assembly/components.xml|   8 -
 .../src/main/assembly/hadoop-two-compat.xml|   1 -
 hbase-it/pom.xml   |  10 -
 hbase-rsgroup/README.txt   |  13 -
 hbase-rsgroup/pom.xml  | 262 --
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java | 559 -
 hbase-rsgroup/src/test/resources/hbase-site.xml|  32 --
 hbase-rsgroup/src/test/resources/log4j.properties  |  68 ---
 .../apache/hadoop/hbase/rsgroup/RSGroupAdmin.java  |   0
 .../hadoop/hbase/rsgroup/RSGroupAdminClient.java   |   0
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java | 226 +
 .../hadoop/hbase/rsgroup/RSGroupAdminServer.java   |   0
 .../hbase/rsgroup/RSGroupAdminServiceImpl.java | 378 ++
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.java|  24 +-
 .../hbase/rsgroup/RSGroupMajorCompactionTTL.java   |   0
 .../hadoop/hbase/rsgroup/RSGroupableBalancer.java  |   0
 .../balancer/RSGroupableBalancerTestBase.java  |   0
 .../balancer/TestRSGroupBasedLoadBalancer.java |   0
 ...lancerWithStochasticLoadBalancerAsInternal.java |   0
 .../procedure/TestSCPWithReplicasWithRSGroup.java  |   0
 .../hadoop/hbase/rsgroup/TestEnableRSGroups.java   |   0
 .../rsgroup/TestRSGroupMajorCompactionTTL.java |   0
 .../hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java   |   0
 .../hadoop/hbase/rsgroup/TestRSGroupsAdmin2.java   |   0
 .../hadoop/hbase/rsgroup/TestRSGroupsBalance.java  |   0
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.java |   0
 .../hadoop/hbase/rsgroup/TestRSGroupsBasics.java   |   0
 .../hadoop/hbase/rsgroup/TestRSGroupsKillRS.java   |   0
 .../hbase/rsgroup/TestRSGroupsOfflineMode.java |   0
 .../hadoop/hbase/rsgroup/TestRSGroupsWithACL.java  |  77 ++-
 .../hbase/rsgroup/VerifyingRSGroupAdminClient.java |   0
 hbase-shell/pom.xml|  35 --
 pom.xml|  24 -
 33 files changed, 647 insertions(+), 1070 deletions(-)

diff --git a/hbase-assembly/src/main/assembly/components.xml 
b/hbase-assembly/src/main/assembly/components.xml
index 18dd495..791ca9add 100644
--- a/hbase-assembly/src/main/assembly/components.xml
+++ b/hbase-assembly/src/main/assembly/components.xml
@@ -145,14 +145,6 @@
   0644
 
 
-  ${project.basedir}/../hbase-rsgroup/target/
-  lib
-  
-${rsgroup.test.jar}
-  
-  0644
-
-
   ${project.basedir}/../hbase-mapreduce/target/
   lib
   
diff --git a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml 
b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml
index 91d3749..6a21b92 100644
--- a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml
+++ b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml
@@ -52,7 +52,6 @@
 org.apache.hbase:hbase-protocol-shaded
 org.apache.hbase:hbase-replication
 org.apache.hbase:hbase-rest
-org.apache.hbase:hbase-rsgroup
 org.apache.hbase:hbase-server
 org.apache.hbase:hbase-shell
 org.apache.hbase:hbase-testing-util
diff --git a/hbase-it/pom.xml b/hbase-it/pom.xml
index 0fe578a..6b173f0 100644
--- a/hbase-it/pom.xml
+++ b/hbase-it/pom.xml
@@ -183,16 +183,6 @@
 
 
   org.apache.hbase
-  hbase-rsgroup
-
-
-  org.apache.hbase
-  hbase-rsgroup
-  test-jar
-  test
-
-
-  org.apache.hbase
   hbase-server
 
 
diff --git a/hbase-rsgroup/README.txt b/hbase-rsgroup/README.txt
deleted file mode 100644
index b24aee6..000
--- a/hbase-rsgroup/README.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-ON PROTOBUFS
-This maven module has protobuf definition files ('.protos') used by hbase
-Coprocessor Endpoints that ship with hbase core including tests. Coprocessor
-Endpoints are meant to be standalone, independent code not reliant on hbase
-internals. They define their Service using protobuf. The protobuf version
-they use can be distinct from that used by HBase internally since HBase started
-shading its protobuf references. Endpoints have no access to the shaded 
protobuf
-hbase uses. They do have access to the content of hbase-protocol -- the
-.protos found in here -- but avoid using as much of this as you can as it is
-liable to change.
-
-Generation of java files from protobuf .proto files included here is done as
-part of the build.
diff --git a/hbase-rsgroup/pom.xml b/hbase-rsgroup/pom.xml
deleted file mode 100644
index 1135939..000
--- a/hbase-rsgroup/pom.xml
+++ 

[hbase-site] branch asf-site updated: INFRA-10751 Empty commit

2020-02-07 Thread git-site-role
This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new bd5e0ed  INFRA-10751 Empty commit
bd5e0ed is described below

commit bd5e0ed3894bad225c77b92ef1f1aab968f1
Author: jenkins 
AuthorDate: Fri Feb 7 14:44:06 2020 +

INFRA-10751 Empty commit



[hbase] branch master updated: HBASE-23805 [Flakey Test] TestRaceBetweenSCPAndDTP

2020-02-07 Thread stack
This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new 8654597  HBASE-23805 [Flakey Test] TestRaceBetweenSCPAndDTP
8654597 is described below

commit 8654597be0086dc45728aa7afa7912b65e300418
Author: stack 
AuthorDate: Wed Feb 5 22:01:19 2020 -0800

HBASE-23805 [Flakey Test] TestRaceBetweenSCPAndDTP
---
 .../assignment/TestRaceBetweenSCPAndDTP.java   | 32 +++---
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRaceBetweenSCPAndDTP.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRaceBetweenSCPAndDTP.java
index 2df791a..d3054b7 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRaceBetweenSCPAndDTP.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRaceBetweenSCPAndDTP.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hbase.master.assignment;
 
 import java.io.IOException;
+import java.util.Optional;
 import java.util.concurrent.CountDownLatch;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
@@ -30,10 +31,12 @@ import org.apache.hadoop.hbase.master.HMaster;
 import org.apache.hadoop.hbase.master.MasterServices;
 import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;
 import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;
+import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
 import org.apache.hadoop.hbase.testclassification.MasterTests;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.Threads;
 import org.apache.zookeeper.KeeperException;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -46,7 +49,6 @@ import org.junit.experimental.categories.Category;
  */
 @Category({ MasterTests.class, MediumTests.class })
 public class TestRaceBetweenSCPAndDTP {
-
   @ClassRule
   public static final HBaseClassTestRule CLASS_RULE =
 HBaseClassTestRule.forClass(TestRaceBetweenSCPAndDTP.class);
@@ -120,15 +122,16 @@ public class TestRaceBetweenSCPAndDTP {
 UTIL.getAdmin().disableTableAsync(NAME);
 ARRIVE_GET_REGIONS_ON_TABLE.await();
 
-UTIL.getMiniHBaseCluster().stopRegionServer(sn);
-// Wait ServerCrashProcedure to init.
-Thread.sleep(1000);
 ProcedureExecutor procExec =
-UTIL.getMiniHBaseCluster().getMaster().getMasterProcedureExecutor();
-long scpProcId =
-procExec.getProcedures().stream().filter(p -> p instanceof 
ServerCrashProcedure)
-.map(p -> (ServerCrashProcedure) p).findAny().get().getProcId();
-UTIL.waitFor(6, () -> procExec.isFinished(scpProcId));
+  UTIL.getMiniHBaseCluster().getMaster().getMasterProcedureExecutor();
+UTIL.getMiniHBaseCluster().stopRegionServer(sn);
+long pid = Procedure.NO_PROC_ID;
+do {
+  Threads.sleep(1);
+  pid = getSCPPID(procExec);
+} while (pid != Procedure.NO_PROC_ID);
+final long scppid = pid;
+UTIL.waitFor(6, () -> procExec.isFinished(scppid));
 RESUME_GET_REGIONS_ON_SERVER.countDown();
 
 long dtpProcId =
@@ -136,4 +139,13 @@ public class TestRaceBetweenSCPAndDTP {
 .map(p -> (DisableTableProcedure) p).findAny().get().getProcId();
 UTIL.waitFor(6, () -> procExec.isFinished(dtpProcId));
   }
+
+  /**
+   * @return Returns {@link Procedure#NO_PROC_ID} if no SCP found else actual 
pid.
+   */
+  private long getSCPPID(ProcedureExecutor e) {
+Optional optional = e.getProcedures().stream().
+  filter(p -> p instanceof ServerCrashProcedure).map(p -> 
(ServerCrashProcedure) p).findAny();
+return optional.isPresent()? optional.get().getProcId(): 
Procedure.NO_PROC_ID;
+  }
 }



[hbase] branch branch-1 updated: HBASE-23802 Remove unnecessary Configuration instantiation in LossyAccounting (#1127) (#1140)

2020-02-07 Thread ndimiduk
This is an automated email from the ASF dual-hosted git repository.

ndimiduk pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-1 by this push:
 new 9e4aec5  HBASE-23802 Remove unnecessary Configuration instantiation in 
LossyAccounting (#1127) (#1140)
9e4aec5 is described below

commit 9e4aec56c388f84675ba01b504514ecb87b9c732
Author: Nick Dimiduk 
AuthorDate: Fri Feb 7 08:56:11 2020 -0800

HBASE-23802 Remove unnecessary Configuration instantiation in 
LossyAccounting (#1127) (#1140)

Signed-off-by: stack 
---
 .../hadoop/hbase/coprocessor/MetaTableMetrics.java | 64 --
 .../regionserver/MetricsUserAggregateImpl.java |  5 +-
 .../apache/hadoop/hbase/util/LossyCounting.java| 30 +-
 .../hadoop/hbase/util/TestLossyCounting.java   | 40 +++---
 4 files changed, 75 insertions(+), 64 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.java
index 1d745ad..3e5b895 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.java
@@ -1,24 +1,29 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
- * agreements. See the NOTICE file distributed with this work for additional 
information regarding
- * copyright ownership. The ASF licenses this file to you under the Apache 
License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the 
License. You may obtain a
- * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless 
required by applicable
- * law or agreed to in writing, software distributed under the License is 
distributed on an "AS IS"
- * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied. See the License
- * for the specific language governing permissions and limitations under the 
License.
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.hadoop.hbase.coprocessor;
 
+import com.google.common.collect.ImmutableMap;
 import java.io.IOException;
-import java.nio.charset.StandardCharsets;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
-import com.google.common.collect.ImmutableMap;
-
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.TableName;
@@ -31,6 +36,7 @@ import org.apache.hadoop.hbase.client.Row;
 import org.apache.hadoop.hbase.ipc.RpcServer;
 import org.apache.hadoop.hbase.metrics.MetricRegistry;
 import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
+import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.LossyCounting;
 
 /**
@@ -48,15 +54,18 @@ public class MetaTableMetrics extends BaseRegionObserver {
   private MetricRegistry registry;
   private LossyCounting clientMetricsLossyCounting, 
regionMetricsLossyCounting;
   private boolean active = false;
-  private Set metrics = new HashSet();
+  private Set metrics = new HashSet<>();
 
   enum MetaTableOps {
-GET, PUT, DELETE;
+GET, PUT, DELETE,
   }
 
-  private ImmutableMap, MetaTableOps> opsNameMap =
-  ImmutableMap., MetaTableOps>builder().put(Put.class, 
MetaTableOps.PUT)
-  .put(Get.class, MetaTableOps.GET).put(Delete.class, 
MetaTableOps.DELETE).build();
+  private ImmutableMap, MetaTableOps> opsNameMap =
+  ImmutableMap., MetaTableOps>builder()
+  .put(Put.class, MetaTableOps.PUT)
+  .put(Get.class, MetaTableOps.GET)
+  .put(Delete.class, MetaTableOps.DELETE)
+  .build();
 
   @Override
   public void preGetOp(ObserverContext e, Get 
get, List results)
@@ -93,13 +102,12 @@ public class MetaTableMetrics extends BaseRegionObserver {
* @param op such as get, put or delete.
*/
   private String getTableNameFromOp(Row op) {
-String tableName = null;
-Strin

[hbase] branch master updated: HBASE-23779 Up the default fork count; make count relative to CPU count (#1108) ADDENDUM: Refactor that comes of discussion up on https://github.com/apache/yetus/pull/86

2020-02-07 Thread stack
This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new ef380e0   HBASE-23779 Up the default fork count; make count relative 
to CPU count (#1108)  ADDENDUM: Refactor that comes of discussion up on 
https://github.com/apache/yetus/pull/86  because what I committed originally, 
and amended in a subsequent  ADDENDUM is not taking effect.
ef380e0 is described below

commit ef380e0a2e3ba138391968126fd0e9d5c910df88
Author: stack 
AuthorDate: Fri Feb 7 09:40:51 2020 -0800

 HBASE-23779 Up the default fork count; make count relative to CPU count 
(#1108)
 ADDENDUM: Refactor that comes of discussion up on 
https://github.com/apache/yetus/pull/86
 because what I committed originally, and amended in a subsequent
 ADDENDUM is not taking effect.
---
 dev-support/hbase-personality.sh | 14 +-
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh
index 169f19a..7f961c0 100755
--- a/dev-support/hbase-personality.sh
+++ b/dev-support/hbase-personality.sh
@@ -82,14 +82,6 @@ function personality_globals
   # Override the maven options
   MAVEN_OPTS="${MAVEN_OPTS:-"-Xms4G -Xmx4G"}"
 
-  # Pass maven a -T argument. Should make it run faster. Pass conservative 
value.
-  # Default is one thread. 0.5C on an apache box of 24 cores and 2 executors 
should
-  # make for 6 threads? Lets see. Setting this here for yetus to pick up. See
-  # 
https://yetus.apache.org/documentation/0.11.1/precommit-advanced/#global-definitions
-  # See below for more on -T:
-  # 
https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
-  MAVEN_ARGS=("-T0.5C" "${MAVEN_ARGS[@]}")
-
   # Yetus 0.7.0 enforces limits. Default proclimit is 1000.
   # Up it. See HBASE-19902 for how we arrived at this number.
   #shellcheck disable=SC2034
@@ -148,7 +140,11 @@ function personality_modules
 
   clear_personality_queue
 
-  extra="-DHBasePatchProcess"
+  # Pass maven a -T argument. Should make it run faster. Pass conservative 
value.
+  # Default is one thread. 0.5C on an apache box of 24 cores and 2 executors 
should
+  # make for 6 threads? Lets see. See below for more on -T:
+  # 
https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
+  extra="-T0.5C -DHBasePatchProcess"
   if [[ "${PATCH_BRANCH}" = branch-1* ]]; then
 extra="${extra} -Dhttps.protocols=TLSv1.2"
   fi



[hbase] branch branch-2 updated: HBASE-23812 [Flakey Test] TestReplicator#testReplicatorWithErrors: AssertionError: We did not replicate enough rows expected:<10> but was:<7>

2020-02-07 Thread stack
This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
 new 29fb52b  HBASE-23812 [Flakey Test] 
TestReplicator#testReplicatorWithErrors: AssertionError: We did not replicate 
enough rows expected:<10> but was:<7>
29fb52b is described below

commit 29fb52b5d213991b20df8b2daed9bd2d26f5b741
Author: stack 
AuthorDate: Fri Feb 7 14:27:45 2020 -0800

HBASE-23812 [Flakey Test] TestReplicator#testReplicatorWithErrors: 
AssertionError: We did not replicate enough rows expected:<10> but was:<7>
---
 .../regionserver/HBaseInterClusterReplicationEndpoint.java| 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java
index 83918c9..efd742d 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java
@@ -357,8 +357,8 @@ public class HBaseInterClusterReplicationEndpoint extends 
HBaseReplicationEndpoi
   } catch (InterruptedException ie) {
 iox = new IOException(ie);
   } catch (ExecutionException ee) {
-// cause must be an IOException
-iox = (IOException) ee.getCause();
+iox = ee.getCause() instanceof IOException?
+  (IOException)ee.getCause(): new IOException(ee.getCause());
   }
 }
 if (iox != null) {



[hbase] branch master updated: HBASE-23779 Up the default fork count; make count relative to CPU count (#1108) FINAL ADDENDUM. Removes changes to dev-support/hbase-personality leaving it as it was. Al

2020-02-07 Thread stack
This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
 new d554689   HBASE-23779 Up the default fork count; make count relative 
to CPU count (#1108)  FINAL ADDENDUM. Removes changes to 
dev-support/hbase-personality  leaving it as it was. All else about HBASE-23779 
change remains  changing surefire fork counts to be dependent on cpu count.
d554689 is described below

commit d554689cc4602ae93cf7dacf250edec66056e490
Author: stack 
AuthorDate: Fri Feb 7 15:53:15 2020 -0800

 HBASE-23779 Up the default fork count; make count relative to CPU count 
(#1108)
 FINAL ADDENDUM. Removes changes to dev-support/hbase-personality
 leaving it as it was. All else about HBASE-23779 change remains
 changing surefire fork counts to be dependent on cpu count.
---
 dev-support/hbase-personality.sh | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh
index 7f961c0..00be107 100755
--- a/dev-support/hbase-personality.sh
+++ b/dev-support/hbase-personality.sh
@@ -140,11 +140,7 @@ function personality_modules
 
   clear_personality_queue
 
-  # Pass maven a -T argument. Should make it run faster. Pass conservative 
value.
-  # Default is one thread. 0.5C on an apache box of 24 cores and 2 executors 
should
-  # make for 6 threads? Lets see. See below for more on -T:
-  # 
https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
-  extra="-T0.5C -DHBasePatchProcess"
+  extra="-DHBasePatchProcess"
   if [[ "${PATCH_BRANCH}" = branch-1* ]]; then
 extra="${extra} -Dhttps.protocols=TLSv1.2"
   fi



[hbase] branch branch-2 updated: HBASE-23779 Up the default fork count to make builds complete faster; make count relative to CPU count ADDENDUM: Purge changes made to hbase-personality as they dissta

2020-02-07 Thread stack
This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
 new 4505039  HBASE-23779 Up the default fork count to make builds complete 
faster; make count relative to CPU count ADDENDUM: Purge changes made to 
hbase-personality as they disstabilize jenkins build. All else remains, the 
changing of forkcount for tests.
4505039 is described below

commit 450503989f4de956860ef145e1b21eee61e75e23
Author: stack 
AuthorDate: Fri Feb 7 16:00:50 2020 -0800

HBASE-23779 Up the default fork count to make builds complete faster; make 
count relative to CPU count
ADDENDUM: Purge changes made to hbase-personality as they disstabilize
jenkins build. All else remains, the changing of forkcount for tests.
---
 dev-support/hbase-personality.sh | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh
index 8df6754..cf10915 100755
--- a/dev-support/hbase-personality.sh
+++ b/dev-support/hbase-personality.sh
@@ -81,13 +81,6 @@ function personality_globals
 
   # Override the maven options
   MAVEN_OPTS="${MAVEN_OPTS:-"-Xms4G -Xmx4G"}"
-  # Pass maven a -T argument. Should make it run faster. Pass conservative 
value.
-  # Default is one thread. 0.5C on an apache box of 24 cores and 2 executors 
should
-  # make for 6 threads? Lets see. Setting this here for yetus to pick up. See
-  # 
https://yetus.apache.org/documentation/0.11.1/precommit-advanced/#global-definitions
-  # See below for more on -T:
-  # 
https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
-  export MAVEN_ARGS="-T0.5C ${MAVEN_ARGS}"
 
   # Yetus 0.7.0 enforces limits. Default proclimit is 1000.
   # Up it. See HBASE-19902 for how we arrived at this number.