You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Li Yong <la...@foxmail.com> on 2014/06/30 08:37:15 UTC

回复: When I use row prefix scan, how hbase find start row internally?

If your question is ,Is PrefixFilter and Scan with start row returns the same result,I think the answer is YES.
But, 'The scan should always set start and stop rows, if known.' It means you can't just use PrefixFilter without setting start row or stop row.‍


------------------ 原始邮件 ------------------
发件人: "Intae Kim";<in...@gmail.com>;
发送时间: 2014年6月30日(星期一) 中午1:48
收件人: "user"<us...@hbase.apache.org>; 

主题: Re: When I use row prefix scan, how hbase find start row internally?



Thank you!!!

I have another question.

I confuse if both Scan with start row  and RowPrefixFilter are same.

Could you let me know that?


2014-06-28 11:15 GMT+09:00 Ted Yu <yu...@gmail.com>:

> Here're the prefix filters shipped with hbase:
>
> $ ls hbase-client/src/main/java/org/apache/hadoop/hbase/filter | grep -i
> prefix
> BinaryPrefixComparator.java
> ColumnPrefixFilter.java
> MultipleColumnPrefixFilter.java
> PrefixFilter.java
>
> PrefixFilter is close to what you described:
>
>  * Pass results that have same row prefix.
>
> PrefixFilter relies on start row being correctly set.
>
> You can take a look at its implementation. Once row prefix is passed,
> filterAllRemaining() would return true - skipping the remaining rows.
>
> Cheers
>
>
> On Fri, Jun 27, 2014 at 7:06 PM, Intae Kim <in...@gmail.com> wrote:
>
> > Thank you for answering.
> >
> > I just wonder which algorithm is used to find prefix row.
> >
> > If I use rowprefix filter, how good performance it is.
> >
> > I think It is better than sequential search. But I want know how to work
> in
> > details.
> > 2014. 6. 28. 오전 9:57에 "Ted Yu" <yu...@gmail.com>님이 작성:
> >
> > > By 'row prefix scan', did you mean that you use PrefixFilter ?
> > >
> > > The scan should always set start and stop rows, if known.
> > > PrefixFilter would not automatically set start row.
> > >
> > > Cheers
> > >
> > > On Fri, Jun 27, 2014 at 5:47 PM, Intae Kim <in...@gmail.com>
> wrote:
> > >
> > > > When I use row prefix scan, how hbase find start row internally?
> > > >
> > > > is it finding start row using binary search?
> > > >
> > > > plz, anyone know that?
> > > >
> > > > thanks
> > > >
> > >
> >
>

Re: 回复: When I use row prefix scan, how hbase find start row internally?

Posted by Ted Yu <yu...@gmail.com>.
Scan with start row (but no stop row) would continue until the end of table is reached. 
But scan with PrefixFilter (and start row) would stop when prefix no longer matches. 

Cheers

On Jun 29, 2014, at 11:37 PM, "Li Yong" <la...@foxmail.com> wrote:

> If your question is ,Is PrefixFilter and Scan with start row returns the same result,I think the answer is YES.
> But, 'The scan should always set start and stop rows, if known.' It means you can't just use PrefixFilter without setting start row or stop row.‍
> 
> 
> ------------------ 原始邮件 ------------------
> 发件人: "Intae Kim";<in...@gmail.com>;
> 发送时间: 2014年6月30日(星期一) 中午1:48
> 收件人: "user"<us...@hbase.apache.org>; 
> 
> 主题: Re: When I use row prefix scan, how hbase find start row internally?
> 
> 
> 
> Thank you!!!
> 
> I have another question.
> 
> I confuse if both Scan with start row  and RowPrefixFilter are same.
> 
> Could you let me know that?
> 
> 
> 2014-06-28 11:15 GMT+09:00 Ted Yu <yu...@gmail.com>:
> 
>> Here're the prefix filters shipped with hbase:
>> 
>> $ ls hbase-client/src/main/java/org/apache/hadoop/hbase/filter | grep -i
>> prefix
>> BinaryPrefixComparator.java
>> ColumnPrefixFilter.java
>> MultipleColumnPrefixFilter.java
>> PrefixFilter.java
>> 
>> PrefixFilter is close to what you described:
>> 
>> * Pass results that have same row prefix.
>> 
>> PrefixFilter relies on start row being correctly set.
>> 
>> You can take a look at its implementation. Once row prefix is passed,
>> filterAllRemaining() would return true - skipping the remaining rows.
>> 
>> Cheers
>> 
>> 
>> On Fri, Jun 27, 2014 at 7:06 PM, Intae Kim <in...@gmail.com> wrote:
>> 
>>> Thank you for answering.
>>> 
>>> I just wonder which algorithm is used to find prefix row.
>>> 
>>> If I use rowprefix filter, how good performance it is.
>>> 
>>> I think It is better than sequential search. But I want know how to work
>> in
>>> details.
>>> 2014. 6. 28. 오전 9:57에 "Ted Yu" <yu...@gmail.com>님이 작성:
>>> 
>>>> By 'row prefix scan', did you mean that you use PrefixFilter ?
>>>> 
>>>> The scan should always set start and stop rows, if known.
>>>> PrefixFilter would not automatically set start row.
>>>> 
>>>> Cheers
>>>> 
>>>> On Fri, Jun 27, 2014 at 5:47 PM, Intae Kim <in...@gmail.com>
>> wrote:
>>>> 
>>>>> When I use row prefix scan, how hbase find start row internally?
>>>>> 
>>>>> is it finding start row using binary search?
>>>>> 
>>>>> plz, anyone know that?
>>>>> 
>>>>> thanks