This post was authored by Andrew Hutchings, Drizzle Developer at Rackspace. Click here to read more about him.
This week, we launched the first GA release of the Drizzle project, a microkernel fork of MySQL aimed at the web and cloud. I want to go over what Drizzle isn’t, what it is and what some of the new features are in this release.
Before I go into what Drizzle is, first I should start by saying what Drizzle isn’t. Although it started life 3 years ago as a fork of the now defunct MySQL 6.0 codebase, it isn’t a drop-in replacement for MySQL, like many of the other forks are. The development of Drizzle took the radical step of breaking backwards compatibility so that it can meet the project goals. That is not to say you cannot migrate from MySQL to Drizzle; there are even tools provided to help you do this and Drizzle speaks the MySQL protocol. But our data types, syntax and general execution behavior is different to MySQL.
As for what Drizzle is…
Drizzle is a lightweight database designed for the web and cloud. To achieve this, we have moved much of the code into plugins. You can pick and choose which plugins you want to fit your needs. We have also put emphasis on features that the web and cloud will use, such as only supporting UTF8 and catalogs support. The codebase has been completely re-factored (and a lot of code has been re-written) so that any developer can pick it up and hack on it. This has helped us get some great contributions from people such as Google Summer of Code students.
If you wish to learn about Drizzle or wish to help contribute docs/code/anything we have several talks and an expo hall stand at the 2011 O’Reilly MySQL Conference and Expo as well as Drizzle Developer Day the day after the conference (Friday 15th April at the Santa Clara Convention Center). The developers are available on the #drizzle channel on Freenode as well as the Drizzle mailing list.
Drizzle has a very open development model. There are Drizzle developers employed by several companies as well as general community users who contribute code. All contributions are treated equally and are often in the trunk within hours. All code going into trunk must pass a very strict and extensive regression test that tests multiple platforms not just for errors but also for any performance issues a patch could cause.
So what can you expect from Drizzle7 and future releases? Drizzle7, our first GA, is our stable release and has far too many features to list here, but a few notable ones are:
* Libdrizzle – A BSD licensed, non-blocking, MySQL compatible client library.
* New data types – Including a TIMESTAMP type with microsecond precision and a UUID type.
* Many plugins – Over 80 included which cover storage engines to functions to authentication.
* A new native replication solution – Using Google Protocol Buffers so applications can be written to read our log very easily in almost any language.
* MySQL to Drizzle migration – Our drizzledump tool can migrate from a MySQL server to a Drizzle server on-the-fly.
This also has the framework on which we can build the future on, there are a few things planned that are not in Drizzle yet, primarily catalog support and native sharding. We plan to have a GA every 6 months from now on and with the framework there, we can build on these very quickly.
A few other notes
Drizzle7 is already compatible with SQLAlchemy used in Openstack Nova. It can be used with Rackspace Cloud Servers to be installed on anyone’s Linux virtual server. There are also several other cool things planned in the near future so stay tuned for more updates.