Giuseppe Maxia had a great blog post recently about the potential problems facing the Percona Server and MariaDB projects.

I’ve been a big fan of both Percona Server and MariaDB for years.  I switched to MariaDB a little over a year ago, after using Percona for several years.  For me, the primary driver was the simple integration with the Sphinx search engine, which I use on several of my sites.  There are some other benefits, as the MariaDB folks have been working on their own optimizations and features to set them apart from “stock” MySQL.

I have to admit, though, that the MySQL 5.6 release is extremely tempting.  I’m really interested in the performance of the InnoDB / memcache integration, as that could be very useful for some of my sites.  I use HandlerSocket a fair amount, but I’ve never been a fan of its lack of real security.  The memcache integration in MySQL 5.6 seems to have addressed that pretty elegantly by forcing you to define views for your memcache store.  HandlerSocket is more powerful, since it can access (and update!) any InnoDB table on your system, but that’s quite a security concern as well.

If there was a way for me to more easily integrate Sphinx with MySQL 5.6, I think I’d switch in a heartbeat.  As it is, I’m very seriously considering dealing with compiling the Sphinx storage engine myself, as the features may just be worth that cost.

Share →

5 Responses to The potential problems with MySQL forks

  1. Steve Meyers says:

    Sheeri -

    Thanks for the update. I’d heard that Mozilla had moved to MariaDB, but hadn’t heard that they were moving back to MySQL. MariaDB seemed to have a lot of momentum at the beginning of the year, but I don’t think they’ve capitalized on it well.

  2. Sheeri says:

    Mozilla is leaving MariaDB for MySQL 5.6 – we’re about 80% complete on our upgrades. I think you should try it, custom-compiling Sphinx seems like little work for the great stuff MySQL 5.6 has (we moved to MariaDB in 5.5 for the better subquery optimization, which MySQL 5.6 has, and we specifically want the performance schema features in 5.6, so we are moving off MariaDB. The upgrade is smooth!)

  3. Hi Steve!

    Sphinx supports the MySQL protocol via SphinxQL. It’s getting quite sophisticated, you can see examples here: http://sphinxsearch.com/blog/2013/10/15/sphinx-2-1-2-is-now-available/

    Sphinx also plans to behave like a MySQL slave and read the replication stream in a future version. I remember reading about this a while ago. The best link I could find is:
    https://mariadb.com/kb/en/sphinxse-does-the-sphinx-storage-engine-support-rt-indexes-can-you-write-to/

    I think reading the replication stream is a really elegant way to integrate with other systems, and maybe this may meet your requirements?

    I believe this is how Facebook’s wormhole works (discussed in Harrison Fisk’s MySQL Connect keynote), and the MySQL team at Oracle have put out a C++ API to be able to do this: https://launchpad.net/mysql-replication-listener. I’ve been meaning to try and hack something up to show it writing to a message queue.

    - Morgan

  4. Steve Meyers says:

    You’re right, it’s not a HUGE deal, but I try to minimize the amount of custom compiling I do. I currently use the MariaDB RPMs with SphinxSE built in. I previously compiled it into Percona Server, but I started running into some problems compiling it a few months before I switched to MariaDB. That was one of the catalysts for the switch. I think the compilation bug eventually got fixed, I think it had to do with a change in the MySQL compile scripts.

    I probably overstated how arduous the task is. It gets to be old if you try to keep up with updates to MySQL.

  5. Shlomi Noach says:

    Been compiling MySQL with the sphinx storage engine for years now. It actually is not a big deal.
    BTW, the version that ships with MariaDB 5.5 is 2.0.4, which has a bug in the sphinx_snippets UDF: the function is not there…
    See my post on this and on how to compile MySQL 5.5. with sphinx; have not tried compiling 5.6 with sphinx as yet.
    http://code.openark.org/blog/mysql/sphinx-sphinx_snippets-mysql-5-5

    All the above regardless of any type of MySQL/fork you may be using. You don’t have to be locked-in.

Leave a Reply

%d bloggers like this: