When I moved to the UK from Italy, now more than eight years ago, people asked me all the time "Why did you leave such a sunny place like Italy to move to England?". Well, first of all, the south east of England is not that bad. There is a decent number of sunny days in a year and the bright sky of a breezy morning is just fantastic. Second, my home town is Milan, in the middle of the Po valley, with foggy winters and humid summers, with temperatures between -15C and +38C over the year. And there is another point: no wind and no much rain, hence pollution. In Milan the pollution is so awful that almost one third of the working days in a year private cars cannot be used within the city, in the attempt of reducing emissions. When I was a child, my mum used to put a PVC cover over the washing line to avoid that clean clothes would get immediately dirty.
It is a long introduction, but it is probably worth it, because it fits almost perfectly with the new project you may find in the MySQL pot - Drizzle.
Drizzle is a Community project led by some of my colleagues - Brian Aker, Jay Pipes, Monty Taylor among many others - aiming at building a microkernel-like version of MySQL, without jeopardising the intrinsic nature of the software. In fact, Drizzle is based on the robust code around MySQL 4.1, the last version developed before MySQL decided to move to the Enterprise market and added lots of new Enterprise-like features like stored procedures, triggers, views etc.
First of all, nothing is going to change in the current version of MySQL. 5.0, 5.1 and 6.0 are still there and there is no plan at the moment to apply any change to the core or to any of the modules within the server. Drizzle is really a new project, far from being 100% ready for production for everybody (i.e. unless you are ready to jump in and look at possible issues within the code). The community has welcomed the project enthusiastically and, after few days and a warning alert that I keep in my mind at low priority, I am going to join the enthusiasts.
The first objective of Drizzle is to provide the essential features of a database server used in a typical web environment. Drizzle has been designed (well, it is still in a design phase) with Web 2.0 in mind. The DB must be fast, reliable and not many features are really needed. This is just fantastic, because it may open many possibilities. But Drizzle will be even more interesting when the Enterprise as a whole - meaning any kind of applications with a Web front end - may take advantage from it. The greatest value of Drizzle would be in fact a reorganisation and modularisation of the code. It may be, in some way, like my move from a sunny-but-polluted part of Italy (where stopping traffic helped only a bit), to a breezy land with less sunny days, but with fresh air and stunning landscapes.
Once (if) Drizzle will be at some point stable in its microkernel structure, then the Community and Sun will start adding features through plugins, not messing up the kernel - whenever possible. You may think about some features available now in 5.X that are not available in Drizzle. Triggers, views and stored procedures, just to name the three most common enterprise features, may all be added outside the kernel and they can be switched on when needed. Think about the infinite possibilities here. With stored procedures, for example, you may have different plugins to choose from the SP language you want to use. Triggers can be used in a object-relational fashion to capture reads and not only writes, when needed. Foreign keys and referential integrity will finally be outside the storage engine as they should be.
Is Drizzle good for the Community? Definitely! Because it gives anybody more options to integrate new features that are not available at the moment and that are not part of an immediate roadmap at Sun/MySQL.
Is Drizzle good for the Enterprise? It can be! Some people think it's too difficult to build a modular server with the current core, some others think this is not easy, but possible and preferable. There is an open debate and this is a great start.
So far, so good. So, what's the warning? Well, we at Sun have a duty with our users and customers - we must deliver reliable, high performance and ease of use versions of our products (not just the server). I really hope that Drizzle will not move the focus of our key contributors, slowing down bug fixing and performance improvements. If Drizzle can remain a parallel project and at some point will be good enough to become the mainstream product (something like the change from Mac OS to Mac OS X for Apple) with all the required plugins for the millions of installations out there, then we will finally provide the best database of the third millennium.