This year I attended presentations by the EBay engineering team at the MySQL Conference and JavaOne in which they talked about some very interesting patches that had made to MySQL Server. I lamented the fact that they hadn’t open sourced it yet or contributed all the patches back to MySQL. Google has also announced some great enhancements they have made to MySQL, especially around semi-synchronous replication. Since then I’ve learned a bit more from posts aggregated on Planet MySQL that contributing patches and getting them accepted into a MySQL release that will see the light of day anytime soon is not so easy.
However, a group of some of the most prominent technical employees at MySQL have been joined by community members to create a fork of MySQL Server called Drizzle. Drizzle is “being designed for massive concurrency on modern multi-cpu/core architecture”, partially by stripping away some of the enterprise database features, e.g., stored procedures, triggers, etc., that are much less important for highly scalable web applications.
Since Drizzle doesn’t have to satisfy paying enterprise customers, the team working on the project is better able, at least for now, to take on enhancements like the EBay and Google patches. Currently, the MySQL community edition is very similar to the enterprise edition. However, it seems that it is not common for features to appear in the community edition before appearing in the enterprise edition. In fact, there have been some proposals that it work in the opposite direction.
This is very unlike the relationship between Fedora and Red Hat Enterprise Linux. Fedora is a much more experimental OS than RHEL, in that new features tend to show up sooner in Fedora. Also, just because Fedora adopts or drops a feature doesn’t mean that RHEL will do the same. Fedora is not a beta version of the next release of RHEL.
While Drizzle may range even farther afield of the MySQL community and server editions than does Fedora from RHEL, I think this relationship will greatly benefit MySQL in the long run. Many of the likely users of Drizzle are probably the least likely to be paying customers of MySQL. However, if they need a more traditional enterprise database server for another project, they are more likely to turn to MySQL Server. While not the same feature set, the transition would obviously be a lot less disruptive than going to a totally different database server. Also, Drizzle should provide the kind of testing ground for new features that it seems like MySQL community edition has yet to become.