Drizzle, Clouds, "What If?"
« previous entry | next entry »
Jul. 22nd, 2008 | 08:47 am
"What if"
Have you ever wanted to know what would happen if you had taken a different direction?
A number of months ago I was on the phone with the Rackspace CTO talking about Memcached and Gearman, and the work I am doing there. He had asked me if I had ever thought about creating a slimmed down version of MySQL to work with them.
The answer?
Of course!
This is something I get asked with some regularity. People will want MySQL done in some fashion other then what it does by default (aka what serves most of the user base). Taking the code and cutting out the one thing the requester dislikes is a pretty boring task. I keep a notebook of these requests. I consider it valuable feedback, not as single items, but as a whole.
After I got off the phone the idea stuck in the back of my mind. The next day I woke up and started playing with the idea of seeing what a cut down version would look like. One day turned into months. Somewhere along the way I decided to bring in a few people and see what they thought.
The reaction was more ideas, and code followed. We went about asking the question of "What if".
Stored Procedures, Views, Triggers, Query Cache, and Prepared Statements are gone for now. The field types have been simplified and there is an open debate about the SHOW commands (I am falling into the camp that think they may just belong in the client application but not in the server).
Will any of this go back in? It is hard to say. The goal right now is to target a certain class of applications/developers and see if this is useful. As an example:
1) Web based apps.
2) Cloud components.
3) Databases without business logic (aka stored procedures).
4) Multi-Core architecture.
What are the bigger differences in philosophies?
Adopt external libraries, use open source mechanics for contributions, keep to an open style of communication, and remove the line between internal and external development. Essentially do what I have been referring to as "Organic Open Source". We have focused on C99, POSIX and autotools based systems. 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.
Can you download it and use it?
Nope.
Not there yet, and we do not have a target date of when we will be ready for production use. If you want to work on this right now you are going to have to roll up your sleeves (hint, "bzr branch lp:drizzle"). I would really encourage you to go read the mailing list (http://launchpad.net/drizzle). Keep an open mind. We are not looking to be 100% compatible with MySQL, so this is certainly not a replacement for MySQL.
More questions?
The FAQ covers things like how to get involved, code license, etc.
Linuxcast has an podcast this week with me talking about Drizzle:
http://www.linuxworld.com/podcasts/linux/2 008/071808-linuxcast.html
PS. Launchpad has turned out to be pretty awesome. You should be thinking about using it. Do not get caught up in the git vs bzr vs hg debate. It is not about the tool, think iPod/iTunes. It is about the infrastructure around it.

Have you ever wanted to know what would happen if you had taken a different direction?
A number of months ago I was on the phone with the Rackspace CTO talking about Memcached and Gearman, and the work I am doing there. He had asked me if I had ever thought about creating a slimmed down version of MySQL to work with them.
The answer?
Of course!
This is something I get asked with some regularity. People will want MySQL done in some fashion other then what it does by default (aka what serves most of the user base). Taking the code and cutting out the one thing the requester dislikes is a pretty boring task. I keep a notebook of these requests. I consider it valuable feedback, not as single items, but as a whole.
After I got off the phone the idea stuck in the back of my mind. The next day I woke up and started playing with the idea of seeing what a cut down version would look like. One day turned into months. Somewhere along the way I decided to bring in a few people and see what they thought.
The reaction was more ideas, and code followed. We went about asking the question of "What if".
Stored Procedures, Views, Triggers, Query Cache, and Prepared Statements are gone for now. The field types have been simplified and there is an open debate about the SHOW commands (I am falling into the camp that think they may just belong in the client application but not in the server).
Will any of this go back in? It is hard to say. The goal right now is to target a certain class of applications/developers and see if this is useful. As an example:
1) Web based apps.
2) Cloud components.
3) Databases without business logic (aka stored procedures).
4) Multi-Core architecture.
What are the bigger differences in philosophies?
Adopt external libraries, use open source mechanics for contributions, keep to an open style of communication, and remove the line between internal and external development. Essentially do what I have been referring to as "Organic Open Source". We have focused on C99, POSIX and autotools based systems. 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.
Can you download it and use it?
Nope.
Not there yet, and we do not have a target date of when we will be ready for production use. If you want to work on this right now you are going to have to roll up your sleeves (hint, "bzr branch lp:drizzle"). I would really encourage you to go read the mailing list (http://launchpad.net/drizzle). Keep an open mind. We are not looking to be 100% compatible with MySQL, so this is certainly not a replacement for MySQL.
More questions?
The FAQ covers things like how to get involved, code license, etc.
Linuxcast has an podcast this week with me talking about Drizzle:
http://www.linuxworld.com/podcasts/linux/2
PS. Launchpad has turned out to be pretty awesome. You should be thinking about using it. Do not get caught up in the git vs bzr vs hg debate. It is not about the tool, think iPod/iTunes. It is about the infrastructure around it.
(no subject)
from:
_justanotherme_
date: Jul. 22nd, 2008 05:57 pm (UTC)
Link
All of the above probably :)
Any idea of how much of a performance boost / resource savings we will see?
Reply | Thread
(no subject)
from:
krow
date: Jul. 22nd, 2008 06:08 pm (UTC)
Link
How much? I do not like to speculate, and would rather show numbers. Right now we still have a lot of debug turned on so I suspect for single operations we would be slower just from baggage (really not sure). On co-current? We see better numbers already.
It will be a month or two before we start publishing numbers. My main reason for wanting numbers right now is for regression.
Reply | Parent | Thread
(no subject)
from:
_justanotherme_
date: Jul. 22nd, 2008 06:26 pm (UTC)
Link
As opposed to the faster defaults in place now.
Looking forward to seeing the results in a couple of months I guess.
Also too bad there isn't going to be any windows support :(
Reply | Parent | Thread
(no subject)
from:
krow
date: Jul. 22nd, 2008 06:37 pm (UTC)
Link
The funny thing about Windows, is that by cleaning up the tree like we have, Windows support is actually now a lot simpler. We just need to get autoconf working.
Reply | Parent | Thread
(no subject)
from:
_justanotherme_
date: Jul. 22nd, 2008 10:29 pm (UTC)
Link
Reply | Parent | Thread
(no subject)
from:
poon
date: Jul. 22nd, 2008 10:08 pm (UTC)
Link
Reply | Thread
Client library and protocol
from:
oddity80
date: Jul. 22nd, 2008 10:46 pm (UTC)
Link
Reply | Thread
Re: Client library and protocol
from:
krow
date: Jul. 23rd, 2008 12:42 am (UTC)
Link
I am open to another protocol.
Reply | Parent | Thread
Fun!
from:
kytty
date: Jul. 22nd, 2008 10:46 pm (UTC)
Link
Drizzle. I like it...not like living in the Pacific NW had any impact on the name.
I've been working on a lighter, simpler Rhonda for the last 3 months. I think you're having more success than I am...hee :)
Thank goodness Wolverine didn't kill Hulk. Hulk is my favorite...especially the tv series with Bill Bixby.
Reply | Thread
Kick prepared statements - bad idea
from:
rob_c
date: Jul. 23rd, 2008 09:57 am (UTC)
Link
By doing so you stimulate insecure web development because every application has to perform SQL escaping and/or parameter validation on it's own.
Rob
Reply | Thread
Re: Kick prepared statements - bad idea
from:
krow
date: Jul. 23rd, 2008 02:15 pm (UTC)
Link
Here is the problem, the current PS design relies on caching the statements on the server side. What happens in MySQL? It runs out of memory because users forget to free them and the next thing you know the server crashes. For this reason they were disabled from the majority of the clients years ago.
So what are the alternatives? Today you can use a client side PS which gives you protection from SQL injection.
Another option is one we discussed in this blog months ago where we generated the PS but then send it back to the client. If the client wants to use the PS, the client sends it with the data. This way we remove the memory need from the server (though there is a slight cost in network transmission.
Cheers,
-Bria
Reply | Parent | Thread
Re: Kick prepared statements - bad idea
from:
jimw
date: Jul. 23rd, 2008 05:12 pm (UTC)
Link
Reply | Parent | Thread
Re: Kick prepared statements - bad idea
from:
rob_c
date: Jul. 23rd, 2008 06:31 pm (UTC)
Link
Reply | Parent | Thread
(no subject)
from:
natron_x
date: Jul. 23rd, 2008 02:54 pm (UTC)
Link
I've been waiting for something to fill the gap between a full MySQL server and SQLite.
Thank you!
Reply | Thread
(no subject)
from:
axehind
date: Jul. 23rd, 2008 04:17 pm (UTC)
Link
I've used MySQL for a number of years but I have rarely used any of the features that are being removed in drizzle. I never really needed them. I always thought that I must of been a "minimal" user as in "not the majority", but now it seems I might not be.
Reply | Thread
Forking?
from:
lewiscunningham
date: Jul. 23rd, 2008 10:11 pm (UTC)
Link
Thanks,
LewisC
Reply | Thread
Re: Forking?
from:
krow
date: Jul. 23rd, 2008 10:22 pm (UTC)
Link
2) Some features will come back (ACL) through plugins. Some others? probably never.
Reply | Parent | Thread
Re: Forking?
from:
lewiscunningham
date: Jul. 23rd, 2008 10:32 pm (UTC)
Link
LewisC
Reply | Parent | Thread
Love the idea...
from:
mike503
date: Jul. 29th, 2008 07:26 am (UTC)
Link
I love the idea of UTF-8 only. Screw backwards compatibility with this project. Just help "force" better designs with Drizzle... since it's brand new there's no reason you can't right now!
Reply | Thread