Not to drift further from the subject (actually yes), but looking over the team page it seems that at least 50% of the committers' first language is not english so... I guess we generally can relate to that :)
J-D On Fri, Mar 2, 2012 at 8:43 PM, lars hofhansl <[email protected]> wrote: > German might have been easier, although I really meant "natural language" as > opposed to code :-) > > > > ________________________________ > From: "[email protected]" <[email protected]> > To: lars hofhansl <[email protected]> > Cc: "[email protected]" <[email protected]> > Sent: Friday, March 2, 2012 6:52 PM > Subject: Re: HBase0.92: In Filter, ReturnCode.NEXT_ROW may lead to next > columnFamily but not next row? > > > Thanks Lars for explaining this. > > Did you mean that expressing in German is easier :-) > > > > > On Mar 2, 2012, at 6:44 PM, lars hofhansl <[email protected]> wrote: > > > I finally looked into it. This is expected. >> >> >> >>Filters are executed (by a StoreScanner/ScanQueryMatcher) per store. We have >>a store per column family. >>The important part to observe here is that there is no intrinsic order >>between KeyValues that only differ in the column family, that is by design so >>that stores can be handled in parallel (even though we do not currently do >>that). >> >> >>The filter behaves as if every store is scanned in parallel. Each store >>starts in the beginning, and then each store needs to skip ahead using the >>filter. >>This is why it seemed to you that NEXT_ROW only seeks to the next column >>family, because you see the beginning of the scan for the next column family. >> >> >> >>Makes sense? It's a bit hard to explain in English :) >> >> >> >>-- Lars >> >> >> >> >>________________________________ >> From: NNever <[email protected]> >>To: [email protected]; Ted Yu <[email protected]> >>Sent: Wednesday, February 22, 2012 7:20 PM >>Subject: Re: HBase0.92: In Filter, ReturnCode.NEXT_ROW may lead to next >>columnFamily but not next row? >> >>Thanks Ted, I don't know mailing list strips attachment before. >> >>Here is the attache: >> >>TestFilter.java: http://pastebin.com/zC6EF8pX >>and the log: http://pastebin.com/RsKJSHcn >> >>2012/2/23 Ted Yu <[email protected]> >> >>> N: >>> Can you publish your code on pastebin or somewhere ? >>> Mailing list strips attachment. >>> >>> Thanks >>> >>> >>> On Tue, Feb 21, 2012 at 5:47 PM, NNever <[email protected]> wrote: >>> >>>> Attach is my test customFilter code --- TestFilter. >>>> It just simply extends FilterBase and do some system.out... >>>> You can just try any Table has more than one columnFamily like below: >>>> >>>> *Scan scan = new Scan();* >>>> *scan.setFilter(new > TestFilter());* >>>> *hTable.getScanner(scan);* >>>> >>>> and look the HBase's log... >>>> >>>> It seems there is truely a BUG here....When filterKeyValue return >>>> ReturnCode.NEXT_ROW, it jump to next columnFamily but not next row... >>>> also there is one thing strange, why the fitlerRow() not be called? >>>> >>>> 2012/2/21 <[email protected]> >>>> >>>> The javadoc says filterRow() will still be called. >>>>> >>>>> Can you show us your filterRow() code ? >>>>> >>>>> Thanks >>>>> >>>>> >>>>> >>>>> On Feb 21, 2012, at 7:28 AM, NNever <[email protected]> wrote: >>>>> >>>>> > Hi~ >>>>> > > >>>>> > One customFilter, Override filterKeyValue(KeyValue v). >>>>> > when the filter filterKeyValue a row's first keyValue, it will return >>>>> > "ReturnCode.NEXT_ROW" to jump to next row. >>>>> > >>>>> > But what infact is, the result changes when there are more than one >>>>> > columnFamily:(here are some logs) >>>>> > >>>>> > [filterRowKey] PERSONA1 >>>>> > [filterKeyValue] family:info | qualifier:active | value:\x00 >>>>> > [filterKeyValue] returnCode is NEXT_ROW >>>>> > [reset] >>>>> > [filterRowKey] PERSONA2 >>>>> > [filterKeyValue] family:info | qualifier:active | value:\x00 >>>>> > [filterKeyValue] returnCode is NEXT_ROW >>>>> > [reset] >>>>> > [filterRowKey] PERSONA3 >>>>> > [filterKeyValue] family:info | > qualifier:active | value:\x00 >>>>> > [filterKeyValue] returnCode is NEXT_ROW >>>>> > [filterKeyValue] family:npo | qualifier:059201 | value: >>>>> > [filterKeyValue] returnCode is NEXT_ROW >>>>> > [reset] >>>>> > [filterRowKey] PERSONA4 >>>>> > [filterKeyValue] family:cert | qualifier:certSN | value: >>>>> > PERSONAL4314120472582094317514215676313826416149 >>>>> > [filterKeyValue] returnCode is NEXT_ROW >>>>> > [filterKeyValue] family:info | qualifier:active | value:\x00 >>>>> > [filterKeyValue] returnCode is NEXT_ROW >>>>> > [filterKeyValue] family:npo | qualifier:059201 | value: >>>>> > [filterKeyValue] returnCode is NEXT_ROW >>>>> > [reset] >>>>> > >>>>> > the Table schema is >>>>> > User >>>>> > info:name, info:address, > info:active.... (info family, every record has >>>>> > values) >>>>> > npo:xxxx.....(npo family may be not exist) >>>>> > cert:certSN, cert:certType....(cert family may be not exist) >>>>> > >>>>> > As you can see from the log, once a row has more than one family >>>>> values, >>>>> > The ReturnCode.NEXT_ROW will not jump to next row but pass the left >>>>> > qualifier values and jump to next fmaily. >>>>> > Why? It's a bug or just design to be like this? >>>>> > Thanks~ >>>>> >>>> >>>> >>> >> >> >>
