[ 
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)

Reply via email to