← Back to team overview

maria-developers team mailing list archive

Re: Philip please test maria-5.3-mwl128-dsmrr-cpk


On Thu, Dec 09, 2010 at 11:34:05AM +0200, Philip Stoev wrote:
> I have a few questions with respect to the feature so that I can test it  
> better (we may have discussed those previously but I can not seem to find 
> the email):
> - apart from mrr_sort_keys ON and OFF and engine_condition_pushdown = ON 
> | OFF   and all join_cache_levels , is there any other optimizer switch 
> that I should fiddle with? Is there any switch that I can set to ON or 
> OFF in order to drive more queries to use your code?

@@engine_condition_pushdown variable does not have any effect with the current
code. It controls table condition pushdown, which is only supported by NDB.
XtraDB/MyISAM/Maria have *index* condition pushdown, which can be turned on and
off by using SET @@optimizer_switch='index_condition_pushdown=on|off';

Overall, DS-MRR behavior can be modified by:

- @@join_cache_level setting (need to be such that BKA is enabled in order for 
  new code to wor)

- @@join_buffer_size (sets size of the buffer that will be shared between BKA
  module and DS-MRR module)

- mrr_sort_keys=on|off @@optimizer_switch flag

- index_condition_pushdown=on|off @@optimizer_switch flag.

> - apart from mrr_buffer_size , is there any other mysqld option I should 
> be conserned with. What values of mrr_buffer_size should be tested?
> - what table sizes should I use and also how many tables should I join? 
> Is up to 1000 rows per table and 2-3-table joins sufficient? Or should I 
> go for the DBT-2 data set?

I think that we should first test with up to 1K rows per table and 2-4 way

I was quite impressed by the issue you've found in BUG#671340 (it was a
specific interaction of key sorting and rowid sorting, which could occur only
when we're scanning a particular kind of data and exhaust the buffer at a
certain point).  The testcase for that bug was rather small, I take the
original testcase found by RQG wasn't big either?

> - how about multipart and prefix indexes?

Yes. I don't expect bugs to be there, but the code does work with index tuples,
so it would be nice to check how scanning on multipart indexes (and their
prefixes) work.  Prefix indexes can be checked, too.

> - should I test enum/set/bit and other marginal data types?

I can't think of realistic examples with those types, so we better focus on
something else.

> - are there any engine specific code or considerations?

XtraDB is different in the regard that it has clustered primary keys, and
MWL#121-125 adds support for MRR/BKA to work for clustered primary keys.

Maria/MyISAM should be checked too, they both have very similar DS-MRR handling.

Sergey Petrunia, Software Developer
Monty Program AB, http://askmonty.org
Blog: http://s.petrunia.net/blog

Follow ups