Drizzle is an open source database management system (DBMS) that has gotten a bit of attention lately primarily because some high profile names are behind it and because for many in the open source community it represents an essential break from Oracle. Simply put, Drizzle is a fork of the MySQL database being led by MySQL’s co-founder Monty Widenius. But Drizzle is actually much more than a fork of MySQL. It is a re-imagining of MySQL. Drizzle, not yet production ready, aims to be a lightweight database designed for the web and for cloud computing.
Drizzle will work very differently from MySQL. The developers are designing a microkernel style architecture in which various modules can be compiled in or loaded to extend the functionality. The end result is an extremely lightweight database geared for web backends and cloud computing. Drizzle will be able to handle concurrency which, as the developers point out, puts it somewhere between SQLite and MySQL.
The Drizzle project is also working towards an open and collaborative development model. Unlike MySQL, developers will hold the copyright to the code they contribute much like any other open source project. Drizzle will be licensed using the GPL version 2 license. Part of this decision was shaped by the license governing the existing MySQL code upon which Drizzle is based. Plugins can be written for Drizzle with any GPL compatible license. The licensing will be a welcome move to many open source advocates who are concerned about Oracle’s intentions for former Sun open source projects. Oracle’s recent lawsuit against Google has also created a lot of concern in the open source community about using MySQL and other Oracle projects.
Drizzle will be developed for Linux, Mac OS and both the Intel and Sparc versions of Solaris. There are no plans for Drizzle to run on Windows. The project team is limiting the platforms that Drizzle will run on in order to focus more on the application itself. While they do say that it will run on 32-bit and 64-bit architectures, their target platform is 64-bit multi-processor architectures.
Drizzle is using the InnoDB storage engine. It is being designed to run a limited number of field types with the focus being on “standard” types like blob, varchar, text, int, float, date, datetime, and a few others. Drizzle is not a SQL-compliant database and the project founders make it clear that it is not their intention for it to be. They clearly state that users should not expect Drizzle to be another MySQL.
The Drizzle project is off to a strong start. The project team has the coding standards and a guide available for those wanting to get involved in the development. There is already a decent sized code base but the project founders also provide the caveat that it is not production ready as many incompatible changes are still being made and are still planned. However, it is a very interesting project and has the potential to be the database of choice for cloud architectures like MySQL quickly became the database of choice for the web.