Tuesday, April 27, 2010

MySQL Cluster - SPJ Preview - Feedback welcome

SPJ (preview, not production ready) is a new feature allowing some types of JOINs to be pushed down and executed inside the data nodes! This allows for, in many cases, much faster JOIN execution.

Now we would love to get your feedback on this new feature:

  • Does what we have right now improve performance for you?
  • Are there other types of JOINs we should support in order to improve performance in you application (currently only eq_ref is supported)?
  • What application are you using?

There are some limitations currently:

  • node failure handling of SPJ is not complete, so if a data node crash, there are side-effects.
  • only eq_ref is supported - other JOINs are executed as normal.
  • Don't put this in production.
Obtaining the MySQL Cluster SPJ preview version:
  • You must know how to build MySQL Cluster from source
  • www.severalnines.com/config includes "7.1 SPJ Preview" (the scripts will compile and distribute the binaries for you) - just select "MySQL Cluster 7.1.3-SPJ" from the Cluster Version drop down.
  • The source code (if you don't use severalnines/config) can be found here.
How to test is:
  • Run a JOIN query:
    mysql> set ndb_join_pushdown=0;
    mysql> run join query
    mysql> set ndb_join_pushdown=1; //ENABLES SPJ
    mysql> run join query again
    Did it help?
  • Run EXPLAIN on the queries (especially if SPJ did not help)
  • Send us the EXPLAINs of the queries where SPJ did not help!
  • Let us know if this feature was helpful for your application.
    and in any case please include
  • What kind of speed up (or decrease) was observed
  • What kind of cluster configuration/hw was used.
Please send your feedback to us: spj-feedback (at) sun (dot) com . Thank you!

Read more about SPJ:

1 comment:

Matthew Montgomery said...

ftp.mysql.com has been decommissioned. :'-(

You can download development releases of 7.2 (including source) which include the SPJ feature from http://dev.mysql.com/downloads/cluster/ and http://labs.mysql.com