Friday, May 15, 2009

MySQL/Galera Release 0.6

MySQL/Galera release 0.6 shipped out today.

MySQL/Galera is synchronous multi-master clustering solution for innodb storage engine, offering un-compromised performance and thanks to certification based replication model, scalability even with write intensive work loads.

We have tested MySQL/Galera 0.6 with a number of benchmarks. Here is a summary of sysbench oltp benchmark run on clusters of 1-4 nodes of Amazon EC2 large instances: sysbench results Scalability is remarkable here and many other benchmarks show similar performance gain.

The 0.6 release adds following new features over the earlier Demo-2 release:

  • Merged with MySQL 5.1.33
  • Full DDL replication using "total order isolation" mode
  • Workaround for drupal issue #282555. The fix is simply about retrying the failed autoinc insert query
  • ...and some bug fixes to go


The MySQL/galera 0.6 is binary linux release (both 32 and 64 builds available) and is available in: Codership Downloads. This release has passed a number of feature and performance tests .e.g. with Drupal benchmarks.

You can evaluate MySQL/Galera 0.6 with minimal effort. Just install and configure MySQL/Galera in each node in your cluster. Then start group communication daemon and all MySQL servers. MySQL/Galera cluster is functional at this point and you can load your data in one cluster node, data will replicate to whole cluster. Then start your application and connect to any node(s). You can also use load balancer in front to balance connections between nodes. We have good experience with Galera Load Balancer (glb: Codership Downloads), but in practice, any TCP level load balancer will do as well.

Next Galera release will be 0.7 and it is under R&D effort having deadline at the end of June. The 0.7 release will be open sourced and is functionally quite complete, offering.e.g. node join capabilities for the cluster. Galera is cooking good at the moment.

4 comments:

  1. Sounds cool. I've browsed through the docs, and I don't think these questions were answered:
    - Does it only work with 5.1.33? Can it be used with other versions of the 5.1 series?
    - How does it handle geographically distributed nodes? (ie, >100ms latency.)

    ReplyDelete
  2. On the subject of load balancing, why not get the highest availability while not getting caught in high prices? Kemp’s got some great load balancers that are low priced and high in quality:

    http://www.kemptechnologies.com/?utm_source=blog&utm_medium=pv&utm_content=zs&utm_campaign=home

    ReplyDelete
  3. Galera is actually a function library providing replication functionality for whatever transactional processing system. Galera requires some services (calls and callbacks) from the DBMS and these responsibilities are defined in wsrep API.
    MySQL 5.1 is our proof of concept, to begin with, and we have implemented wsrep API for MySQL 5.1 releases in project: https://launchpad.net/codership-mysql

    0.6 release comes indeed with 5.1.33 integration but we will merge with every MySQL release as soon as they are released, 5.1.34 support will follow shortly, merging has not been too difficult with our footprint.

    WAN replication is possible also. However, this depends on application requirements. If application can tolerate 200ms transaction latency, there should be no problem.

    ReplyDelete
  4. Note that, some applications don't need a load balancer at all. But when needed, the load balancer should not cause a bottleneck.

    However, Galera would actually benefit most of a load balancer/proxy, which can differentiate between reads and writes and monitor deadlock rate in the cluster. If deadlock rate goes up, load balancer should restrict writes to a smaller group of nodes. This behavior would prevent the possible negative effect of optimistic concurrency control inherent in Galera replication.

    ReplyDelete