Drizzle is described as a "Lightweight SQL Database for Cloud and Web". The project is about building a database designed for the typical Web usage patterns for a database. It is being designed for massive concurrency on modern multi-cpu/core architecture. The code is originally derived from MySQL.
- Fast and scaleable for modern architecture.
- Simple design for ease of Install and Management.
Drizzle, Rethinking MySQL for the Web
A talk by Brian Aker, describing Drizzle really well (from blip.tv).
Looking at Drizzle
So Drizzle is essentially a fork from the MySQL 6.0 sourcecode, minus stored procedures, triggers, views, access control, query cache, and prepared statements. Most non-pluggable storage engines are gone, as is the MyISAM-only FULLTEXT indexing system. Some of the abovementioned features (such as access control) will reappear in pluggable form, without old baggage.
Stripping down the source tree simplifies refactoring, which is sorely necessary. See it as a large "spring clean". Various unsavory things have crept into the code over the years, for pragmatic as well as business reasons. When unconstrained by those factors, alternative options open up. This is what Drizzle is exploring.
- For example, the InnoDB storage engine has its own internal parser, dealing with the foreign key constraints from a CREATE TABLE statement. From a programming perspective, this is a hideous hack.
- FULLTEXT indexing was MyISAM only, and did not scale. SphinxSearch has excellent specs, and can completely replace FULLTEXT while not being bound to a particular engine.
- There are many excellent libraries out there which could be utilised. However, because MySQL is also sold under a non-GPL license for some customers, this limits the choice considerably and it is not able to use any GPL licensed libraries. Using external libraries however leverages existing code and expertise and frees up development and QA/bugfix time.
- The Drizzle client library will be BSD (rather than GPL) licensed to promote adoption, including by closed-source applications. So it is based on different code from the well know libmysqlclient which is GPL licensed.
Who is Involved
The list of contributors reads like a neat who-is-who of the active MySQL community, involving some key Sun/MySQL employees but also ex-employees and long-time community members. There is clearly a lot of excitement and activity.
Drizzle Down Under
Open Query is closely following Drizzle development, and the benefits it can bring to many current MySQL users. It's not a full MySQL replacement, but a large number of users could be well served with Drizzle once the major refactoring is completed. We hope to contribute to this effort. This is not a spectator event.