5 Aug 2008

Drizzle - I am not so sure

With all the news about the fork to MySQL to the new lean-mean drizzling machine, I might have been the only one that actually didn't really like the idea.
Taking out views, triggers, stored procedures, events and everything else since MySQL 4.1 didn't really appeal to me. But this coming from the guy that wrote "Using Business Rules in MySQL" and "Useful Ways to use Views", can you really blame me?

I not happy, but they are probably right
Well, it seems to me like its going backwards. Albeit I completely understand that its for the purpose of going forwards.

Take out the stuff that the vast majority of MySQL users don't use - mainly web site developers - and make it very fast and light weight. Monty is completely right when he said that 1% of the users (big businesses that use MySQL) cannot dictate how MySQL will turn out.

For example, people who use ORM (object-relational mapping) could not care less about how many features a database has or not, since they (probably) don't use any of them.

I think it would help if...
The problem for me is that I thought it would be a lot better to add more to the database instead of taking away from it.
Adding features that will try to estimate how the database will be used and pre-fetch certain data ahead of time. Emphasizing more on stored procedures (or making them easier to use) to offset problems with speed from web platforms (like RoR). Using views (or even better, materialized views) to help speed up analytical reports.

MySQL community edition is still there, right?
Having said that, it does not necessaringly mean that MySQL will completely stop working on MySQL and move to Drizzle. However, it will defiantly take away resources from it. As well as take away confidence from big businesses and maybe big websites that relied on the extra features like stored procedures to use MySQL.
I can tell you from personal experience that it was very much an uphill strugle to persuade companies I worked for to use MySQL while claiming that it has good-enough features compared to commercial databases.
Even if you can say Drizzle is only a micro-kernel and you will be able to add plugins for businesses, its not a very convincing arguement. "Maybe one day you will have features in Drizzle that will be good for you"... thats nice.. I'd go with something that has 10 year tested and working features for my business right now.

While this is probably a rant, I really had to give my opinion about it.
I recognize that its an important step to take for MySQL, but I am dis-heartened by it.
Did I also mention that it took me a while to learn stored procedures??

Anyway, I hope that I am wrong and everything will be ok with MySQL and/or Drizzle and I am sure that 99% of the (web) developers will probably benefit from Drizzle. I'm just complaining for the 1%.


  1. Hi,
    A new RDBMNGR without views, I do not think that is a very good idea.
    But I heard Brian talk about the possibility of materialized views i Drizzle, that's a good idea in MySQL :)

  2. Many of the new features like stored procedures will be moved out of the core engine and may be switched on when needed (pluggable architecture).

  3. You're not the only one who has doubts. Though I like the goal of making MySQL more pluggable, and I can certainly understand that it was ripe for refactoring, I was kind of dismayed to read (I think) that more engineers have moved to the Drizzle effort than the number who are left finishing up MySQL 5.1 GA. Wouldn't it have been better to wrap up the 5.1 release with an all-hands-on-deck bughunt, and THEN move the team on to an experimental Drizzle project with the long-term goals they've described?

  4. Drizzle is not even a Sun project, so there are still plenty of resources working on MySQL. Yes, MySQL developers might spend less of their spare time working on MySQL, but MySQL is far from going away....

    Also, I think that a full-featured database is very important. Postgres does a much better job than MySQL of being full-featured, if that's what you want -- the benefit of MySQL has always been that it's more lightweight.

    Having said that, often inexperienced developers will use the wrong tool for the job because the tool is there and they think it's a good idea. Trigger-based auditing almost never solves the problem of auditing correctly, for instance. And then inexperienced developers using bad tools become experienced developers using bad tools.

    I am 100% behind both Drizzle and MySQL. I think that MySQL carved out a niche, and that the features MySQL is adding are great, but by adding it and bloating the code, it's losing some of that niche. Drizzle aims to take that back.

    There is never One True Database. If you want the features in MySQL, stick with MySQL. I don't see it disappearing any time soon, as MySQL (unlike Drizzle) has a business model.

  5. I have great hopes in drizzle. Given MySQLs current pace and state I'm really getting turned on by postgres, they will even have replication soon (in a non slony hackish kind of way). MySQL is completly stalled in regards of what is actually coming out, no community releases for ages and only some bugfixes for enterprise (I still don't understand why they split).

    I think drizzle has great chances of becoming something good, given that it is a true community effort with less politics and the momentum it currently has. Stripping out some things that might even be improperly engineered and only went into the relase because everybody complained that MySQL lacks certain features (like subselects and views which usually perform poorly) and redesigning them from ground up sounds like a good idea. They just need to keep the cool features in 5.1 like pluggable storage engines and row level replication ;)

  6. there are no mysql engineers that have been moved to work on drizzle, even part-time. any overlap you may see are engineers that are spending their own time on drizzle. the number of sun/mysql engineers working on 5.1 (and 6.0 and beyond) still outnumbers the drizzle community by a pretty wide margin.

  7. I can see mainly two (related) reasons that Drizzle is interesting

    1)as used an an embedded server. 'stored programs' are not really interesting for embedding as you may as well code in the application where server is embedded.

    2)as use for distribution with 'standard web aplications' (Forums software, wikis, guestbooks etc), where a limited set of features are required (they are almost all still compatible wiht MySQL 4.0 and do not use any feature added later!). I think Drizzle in that context is seen as (but not explicitly announced as) a 'SQLite-killer'. SQLite is gathering momentum every day (with PHP applications and embedded sytems in particular) to the expense of MySQL. But that won't succeed I think. Drizzle will not be stable for the next 3 years - and SQLite basically has won that game already!

    But mostly I hope the refactoring will 'fire back' on MySQL. MySQL source code is largely so messy that is it more or less unmaintainable! As a result trivial fixes too often leads to new bugs and issues due to this.

    Also I hope that Drizzle will provide compability with existing MySQL connectors (most important libmysql). We might even decide to support it then (just as a gesture!).

  8. A few points.
    * Not all features in 5.0 have been removed, features that are incomplete, have bugs, or fall better into a pluggable infrastructure have been removed from the initial micro kernel version.
    * A lot of new features, things that MySQL community simply can't get due to the terrible time for new feature to get it (5.1 has been frozen over 12 months, and 6.0 frozen > 6 months), i.e. there will be no community features now until at least 6.1. When will that be???
    * The work being done in Drizzle will enable features to be re-introduced better, and correctly. I'm a very strong believer in views, and I know that while it's removed now, that's only because there is a better way.
    * Drizzle will not be a replacement to MySQL. Drizzle has certain goals, and is not target at being a general multi-purpose Open Source Database.

    And finally a little revolution is good now and then. Work with MySQL Community Version is totally stagnet. Other then SHOW PROFILES in MySQL 5.0.35 (feb 2007), I can't name anything that MySQL the company has packaged and released to the community. Google and eBay have excellent work, released under GPL, and it's up to third parties such as Percona to do the work.

    Drizzle is a wake up call. While it has a specific vertical market, it will show both that people can provide a better product that's build like MySQL (I use that term lightly), and it might just may MySQL the company ask some hard questions of what it's actually doing. Hopefully the sales/marketing driven company will see the light, and hopefully the Sun open source ideals is also shining.

    Ronald Bradford