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... >> >