I'm currently -0. I left feedback on the merge PR with specifics. On Sat, Feb 22, 2020, 07:32 Duo Zhang <[email protected]> wrote:
> The issue aims to make rs group the first class citizen in HBase, where the > feature can be enabled through a simple flag, not a complicated > coprocessor, and also we can manage it through the Admin interface, while > in the old time the only public way is to through the shell command, as the > coprocessor client is marked as IA.Private. > > This is a simple design doc > > <goog_2028452043> > > https://docs.google.com/document/d/1SuodZ_uDQQQVJyryRxqp033cgz2aQPJmjIREbbbmB3c/edit?usp=sharing > > The PR for all the changes > > https://github.com/apache/hbase/pull/1165 > > And let me copy the release note here > > Moved rs group feature into core. Use this flag to enable or disable it. > > The coprocessor org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint is > deprected, but for compatible, if you want the pre 3.0.0 hbase client/shell > to communicate with the new hbase cluster, you still need to add this > coprocessor to master. And if this coprocessor is specified, the above flag > will be set to true automatically to enable rs group feature. > > These methods are added to the Admin/AsyncAdmin interface for managing rs > groups. See the javadoc of these methods for more details. > > void addRSGroup(String groupName) throws IOException; > RSGroupInfo getRSGroup(String groupName) throws IOException; > RSGroupInfo getRSGroup(Address hostPort) throws IOException; > RSGroupInfo getRSGroup(TableName tableName) throws IOException; > List<RSGroupInfo> listRSGroups() throws IOException; > List<TableName> listTablesInRSGroup(String groupName) throws IOException; > Pair<List<String>, List<TableName>> > getConfiguredNamespacesAndTablesInRSGroup(String groupName) throws > IOException; > void removeRSGroup(String groupName) throws IOException; > void removeServersFromRSGroup(Set<Address> servers) throws IOException; > void moveServersToRSGroup(Set<Address> servers, String targetGroup) > throws IOException; > void setRSGroup(Set<TableName> tables, String groupName) throws > IOException; > boolean balanceRSGroup(String groupName) throws IOException; > > The shell commands for rs group are not changed. > > The main difference on the implementation is that, now the rs group for a > table is stored in TableDescriptor, instead of in RSGroupInfo, so the > getTables method of RSGroupInfo has been deprecated. And if you use the > above Admin methods to get the RSGroupInfo, its getTables method will > always return empty. Of course the behavior for the old > RSGroupAdminEndpoint is not changed, we will fill the tables field of the > RSGroupInfo before returning, to make it compatible with old hbase > client/shell. > > When upgrading, the migration between the RSGroupInfo and TableDescriptor > will be done automatically. It will take sometime, but it is fine to > restart master in the middle, the migration will continue after restart. > > The vote will open for at least 72 hours. > > Please vote > > [+1] Agree > [-1] Disagree > > Thanks. >
