I think we still need two more binding votes here...

张铎(Duo Zhang) <[email protected]> 于2020年2月29日周六 上午10:43写道:

> Attached the design doc in HBASE-23911.
>
> Bharath Vissapragada <[email protected]> 于2020年2月24日周一 下午2:37写道:
>
>> +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 <[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.
>> >
>>
>

Reply via email to