Hi,

I have updated my pull request as discussed.
https://github.com/apache/hbase/pull/4119

Niels





On Sun, Feb 20, 2022 at 3:12 PM 张铎(Duo Zhang) <[email protected]> wrote:

> Niels Basjes <[email protected]> 于2022年2月20日周日 22:06写道:
>
> > Hi,
> >
> > Ok, a rename of the method to avoid confusion is fine with me.
> > I suspect people will find the setPrefixScan suggestion also too
> confusing.
> > How about   setStartStopRowForPrefixScan ?
> >
> +1
>
> >
> > Niels
> >
> >
> >
> >
> >
> > On Sun, Feb 20, 2022 at 12:45 PM 张铎(Duo Zhang) <[email protected]>
> > wrote:
> >
> > > 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
> > > >
> > >
> >
> >
> > --
> > Best regards / Met vriendelijke groeten,
> >
> > Niels Basjes
> >
>


-- 
Best regards / Met vriendelijke groeten,

Niels Basjes

Reply via email to