[
https://issues.apache.org/jira/browse/HBASE-18528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16117885#comment-16117885
]
Chia-Ping Tsai commented on HBASE-18528:
----------------------------------------
Personally, I prefer removeing the deprecated methods which use the
HTableDescriptor. Reserving the deprecated APIs puts some ugly code. Also, we
need to create a ImmutableHTableDescriptor for the deprecated API...
{code}
public void preCreateTableAction(final HTableDescriptor htd, final
HRegionInfo[] regions,
final User user)
throws IOException {
execOperation(coprocessors.isEmpty() ? null : new
CoprocessorOperation(user) {
@Override
public void call(MasterObserver oserver,
ObserverContext<MasterCoprocessorEnvironment> ctx)
throws IOException {
oserver.preCreateTableHandler(ctx, htd, regions);
oserver.preCreateTableAction(ctx, htd, regions);
}
});
}
{code}
If it is legal to break the CP in major version, why not remove the deprecated
APIs?
> Support to modify TableDescriptor/ColumnFamilyDescriptor through
> MasterObserver; Or disable that.
> -------------------------------------------------------------------------------------------------
>
> Key: HBASE-18528
> URL: https://issues.apache.org/jira/browse/HBASE-18528
> Project: HBase
> Issue Type: Sub-task
> Components: Coprocessors, master
> Reporter: Chia-Ping Tsai
> Assignee: Chia-Ping Tsai
> Priority: Critical
> Fix For: 3.0.0, 2.0.0-alpha-2
>
>
> We are replacing the HTableDescriptor by TableDescriptor from code base. The
> TableDescriptor is designed to be a read-only object so user can't modifiy it
> through MasterObserver. HBASE-18502 change many methods of MasterObserver to
> use TableDescriptor but some deprecated methods still accept the
> HTableDescriptor. User may be confused by why some methods can't modify the
> table descriptor.
> In short, Should we allow user to modify the passed table descriptor?
> # if yes, we should introduce a mechanism that user can return a modified
> table descripror
> # if no, we should pass ImmutableHTableDescriptor to user. Or we just remove
> all methods accepting the HTableDescriptor
> Ditto for HColumnDescriptor.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)