[
https://issues.apache.org/jira/browse/HBASE-24507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17127264#comment-17127264
]
Duo Zhang commented on HBASE-24507:
-----------------------------------
For different classes there are different reasons why they are marked as
deprecated. For the Scan.setStartRow/setStopRow, it is because a confusing
behavior, where a scan with the same start row and stop row is a get scan, but
later we support row inclusive and exclusive, so if users set the same start
and stop row but different inclusive options, the expected result should be
always empty, but if they still use the old setStartRow/setStopRow, it could
get a result, which is really confusing.
The deprecated of HTableDescriptor and related classes are not done by me so
I'm not sure the reason, but I guess the intention is to make the returned data
structures immutable. As for a table or some other interfaces, users can get a
TableDescriptor which is cached by the framework, if users modify the returned
TableDescriptor, we do not know what will happen...
For me, I'm currently working on splittable meta, where we need to do a lot of
API cleanups, and I do not want to do a lot of cleanups in deprecated classes,
so I plan to remove these classes first.
And on the dependency, you are still fine to upgrade to 2.x, and we will make
sure that a 2.x client can communicate with 3.x cluster, which means you still
have several years to prepare for the API changes :)
> Remove HTableDescriptor and HColumnDescriptor
> ---------------------------------------------
>
> Key: HBASE-24507
> URL: https://issues.apache.org/jira/browse/HBASE-24507
> Project: HBase
> Issue Type: Bug
> Components: Client
> Reporter: Duo Zhang
> Assignee: Duo Zhang
> Priority: Major
> Fix For: 3.0.0-alpha-1
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)