I think the name is a bit confusing, the name says it is a filter but
actually it will change the start and stop row.

So I prefer we deprecate the current setRowPrefixFilter and  introduce a
new method which has the same logic of the current method, maybe called
setPrefixScan?

Thanks.

Niels Basjes <[email protected]> 于2022年2月20日周日 00:13写道:

> Hi,
>
> Long time ago (> 7 years back) I wrote the Scan#setRowPrefixFilter method
> to make doing a prefix scan a lot easier and a lot more efficient.
> https://issues.apache.org/jira/browse/HBASE-11990
>
> Today I was talking with a colleague and we found that recently this method
> has been marked as deprecated for the upcomming HBase 3.0.0
> https://issues.apache.org/jira/browse/HBASE-25299
>
> When looking into this ticket I found that the people who did this
> apparently misunderstood the working of this function and deprecated it
> because it did not behave as they expected it to behave.
>
> It behaves exactly as designed and intended.
>
> The key thing is that this method does a complex calculation to set the
> right startRow and stopRow to get to a very efficient prefix scan.
> If you add your own calls to set the startRow and stopRow then
> - these will be wiped (i.e. you do not get what you expected) if you do
> them before the setRowPrefixFilter
> - these will yield undefined results if you do them after the
> setRowPrefixFilter
>
> Apparently the documentation I wrote in this part all those years ago was
> not clear enough that you should not do this.
> I disagree with the deprecation because of this misunderstanding.
>
> So I created an issue and pull request to fix this.
> - Remove the deprecation
> - Improve the documentation that you should not use them in combination.
>
> https://issues.apache.org/jira/browse/HBASE-26762
> https://github.com/apache/hbase/pull/4119
>
> --
> Best regards / Met vriendelijke groeten,
>
> Niels Basjes
>

Reply via email to