hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bharath Vissapragada <bhara...@apache.org>
Subject Re: [VOTE] Merge "HBASE-22514 Move rsgroup feature into core of HBase" back to master
Date Mon, 24 Feb 2020 06:37:03 GMT
+1 (non-binding).

I've gone through the doc and it generally made sense to me. Mind adding
the doc to dev-support/design-docs too?

On Sat, Feb 22, 2020 at 5:32 AM Duo Zhang <zhangduo@apache.org> 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.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message