Wow that is brutal.

Are you able to make a patch?  How could we add a test to protect
ourselves from these kinds of things?

On Tue, Feb 23, 2010 at 11:56 PM, Dan Washusen <d...@reactive.org> wrote:
> It's an issue with WhileMatchFilter.  I've created issue HBASE-2258...
>
> On 24 February 2010 18:25, Ryan Rawson <ryano...@gmail.com> wrote:
>
>> That is very interesting, there are definitely some hidden performance
>> landmines in the filter code... you have clearly found one.
>>
>> strange in that while match filter is just a thin wrapper.
>>
>>
>>
>> On Tue, Feb 23, 2010 at 11:22 PM, Dan Washusen <d...@reactive.org> wrote:
>> > OK, a bit more info; removing the WhileMatchFilter drops the scans down
>> to
>> > 25ms each.
>> >
>> > Updated scan looks like:
>> >
>> >> Scan scan = new Scan(getRandomRow(this.rand, this.totalRows));
>> >>
>> >> scan.addColumn(FAMILY_NAME, QUALIFIER_NAME);
>> >>
>> >> scan.setFilter(new PageFilter(120));
>> >>
>> >>
>> > The slow scan uses:
>> >
>> >> Scan scan = new Scan(getRandomRow(this.rand, this.totalRows));
>> >>
>> >> scan.addColumn(FAMILY_NAME, QUALIFIER_NAME);
>> >>
>> >> scan.setFilter(new *WhileMatchFilter*(new PageFilter(120)));
>> >>
>> >>
>> >
>> >
>> > On 24 February 2010 18:17, Dan Washusen <d...@reactive.org> wrote:
>> >
>> >> Hey All,
>> >> While testing the recent MemStoreScanner slowness I noticed that each
>> scan
>> >> in the randomSeekScan test takes about 19 seconds to complete.  The scan
>> in
>> >> question provides a startRow and a WhileMatchFilter containing a
>> PageFilter
>> >> that asks for 120 rows.  I would have expected this scan to return in
>> >> roughly the same amount of time as a scan that specifies a startRow and
>> >> stopRow that spans a similar number of rows.
>> >>
>> >> Before I start investigating further I was wondering if anyone had any
>> >> thoughts?
>> >>
>> >> Cheers,
>> >> Dan
>> >>
>> >> p.s. Running the test on the latest 0.20 code...
>> >>
>> >
>>
>

Reply via email to