A new database management system (DBMS) designed for web applications and cloud computing could be the start of a new direction in DBMS development and, indeed, in software as a whole.
Drizzle - unveiled recently at the O'Reilly Open Source Convention (OSCON) by MySQL director of architecture Brian Aker - is described as a "slimmed down version of MySQL" and defined as much by what it doesn't do as by what it does.
It will have no unnecessary features, won't support Windows or be compatible with MySQL, and neither will it be "SQL relational compliant". The decision to fly in the face of convention could be either bold - or stupid.
Aker: features optional
Aker blogged that Drizzle is the result of discussions with a number of MySQL-interested parties on issues such as feature bloat and performance. The starting point is the creation of a micro-kernel which strips out many features, which are traditionally considered essential in a modern DBMS.
Specifically, Drizzle does not have stored procedures, views, triggers, query cache and prepared statements. Field-data types have been simplified and Aker also noted that SHOW command could be migrated to client environments. Aker argues that, if any of these facilities are needed, they can be provided externally through interfaces and libraries.
"We have taken to a very micro-kernel design where code is being removed from the center and pushed out to the edges via interfaces. We are taking a Linux/Apache tightly coupled design for modules," Aker wrote.
The main reason for stripping down Drizzle to the bare minimum is so it can deliver high performance in an environment defined by web applications based on "cloud" components and multi-core architectures. Currently, the performance goal has yet to be realized because - as noted by Aker on the Drizzle FAQ: "I certainly do not believe the code is production quality. Right now we are defaulting many configure operations to generate debugging code for us so our binaries are not optimal. "
While it is not an official project, it is sanctioned by Sun and some development is being carried out by MySQL employees. Aker described the open collaboration approach - involving both internal and external developers - as "organic open source'".
He expects this will lead to a rapid development cycle with regular releases. It also means that those frustrated with slow progress in development of MySQL will be able to get their hands on features quickly. As MySQL originator Michael "Monty" Widenius blogged Drizzle will have the latest versions of add-ons such as the InnoDB plug in.
The open development model has also helped to define the development technology and tools used to build Drizzle. The code is licensed under the GNU GPLv2 and Aker insists that development should be based on a GNU tool chain. The core development is based on C99 and Posix.
As a result of adopting a GNU tool chain, Drizzle will only be available for Posix based operating systems. Currently these include Linux (Fedora), Solaris Express and Mac OS X.
Greatest thing since data slices?
This means that there are no plans to support Windows. Aker defended the decision with the assertion that Microsoft is irrelevant to the future of software development and went on to compare it to Sony as a "non-innovator".
Drizzle moves into what is currently the most exciting space for DBMS development - large-scale databases that break with the established SQL relational model. If it is successful it could stack up against products such as Amazon's SimpleDB and Google's BigTable.
The big question, though, is whether moving away from the dominant DBMS model - not to mention eschewing support for Windows - will make or break Drizzle. If it works, Drizzle will certainly mean a sea change in DBMS development and could well become a model for a different approach to building software based on a minimalist model. If it doesn't, Drizzle will live up to its namesake by becoming something of passing and inconsequential interest.®