Log in

No account? Create an account

How many contributors does Drizzle have?

Oct. 20th, 2010 | 11:05 am

Opscode posted a note this morning on their current contribution level, which got me to thinking about Drizzle's contributors.

From looking at bzr log I can find out some of the details.

To date we have had 13,478 commits that have went into our tree at all levels. If we look at level two commit (i.e. these are patches that are more likely to be a complete body of work) we have had 8, 064 commits.

We have had 96 total contributors to date who submitted code to the project.

1119 commits by students who participated in Google's Summer of Code Project.

I had someone ask me about my own contributions to the project, they had assumed that I had done more of the work (not even close!). To date I have done about 3,017 total commits, and if we look at the top four is myself, Monty Taylor, Stewart Smith, and then Jay Pipes. Monty Taylor has done 3496 commits, so I have some catching up to do!

Number five on the list is Padraig O'Sullivan, who never worked for Sun or MySQL. He now works at Akiban, but he started doing work with us as a Google Summer of Code Student.

Number six on the list is a sun employee who never worked for MySQL, and four of the people in the 5-10 range never worked at Sun at all. David Axmark, one of the founders of MySQL, has even contributed patches.

Our Trigger infrastructure was contributed to Drizzle from one company (Primebase). Joe Daly has worked out the scoreboard and most of the work done to our optimizer and executioner was done by folks who have never worked on MySQL. There are multiple stories that can be told about individuals or companies contributing work at this point.

We have had only seventeen contributors who have only contributed a single patch.

Launchpad says that we have had 37 active contributors in the last month.

This doesn't even begin to include hours put in by folks who keep our infrastructure working like Mike Shadle from Intel, or who have done work on drivers. We have our own JDBC driver written by Marcus Eriksson.

None of those numbers count toward commits done on engines that we have included. We don't include that many third party engines though, since we have created a fairly high bar for storage engines to meet in order to be included.

Going from the world of MySQL where we had nearly zero contributors to where we are at today has been pretty amazing and incredibly rewarding.

Link | Leave a comment {5} |

Where does the Innodb Technology today come from?

Oct. 11th, 2010 | 10:51 am

Every so often I get a question on "where does Innodb technology come from right now?"

I was thinking about it this morning and decided to break it out via a chart. This is a rough number, and in it I give Percona points for the Xtrabackup.

Most of the work that I see, which is not niche work, is done by Oracle, hands down, no question. I don't see any sign of Heikki being very involved anymore but his legacy seems to be alive (or at least embers of them see to have not gone out). Percona provides a lot of niche changes to Innodb, and the Percona XtraBackup Tool (which if you don't know about, you should).

I, and others, look at changes that occur to Innodb for Drizzle. We adopt ones we are comfortable with(keep in mind, that I personally look at MySQL, PostgreSQL, and a couple of other open source databases as well). I am well aware of Innodb's short comings (and even more so with its connection to mysql's monolithic kernel, I noticed that in 5.5 they changed the default engine to Innodb, but they didn't change the testing frame work to use it for all tests).

HailDB is just offering testing right now for the embedded technology. This is giving projects that used the embedded version of Innodb a home since Oracle seems to have shutdown development on it (i.e. no new releases). HailDB is focused on getting the code in shape for open source development (and a better testing framework is being added to keep any regression issues from popping up).

MariaDB, i.e. Monty Program, is distributor of Innodb technoloy that they obtain from Percona.

I saw the note this morning about SkySQL opening its doors for doing business. They state "Through our relationships with strategic partners such as Monty Program AB", which would give them access to the old optimizer team from MySQL, but that is about it. Monty Program derives its knowledge of Innodb via Percona (and relies on their backup technology).

So in the end? At this point it appears that everyone is just a value added reseller of Oracle and Percona's work (though Percona is obviously a distributor of Oracle technology as well).

Screen shot 2010-10-11 at 10.43.48 AM.png

If you are interested in knowing about, and participating in the Ecosystem around MySQL you should either be attending or providing a talk at the O'Reilly MySQL Conference and Expo. This is the conference of the year for MySQL the technology, and I expect this years conference will be the best place to learn about what is happening next.

Update I was asked about bugs released to Innodb as the default engine. To get a good feel for it, force the tests in mysql-test to run as Innodb. We found very few bugs in Innodb itself (Innodb is relatively free of bugs), but the kernel was just not designed for it and it fits in more as an afterthought, not a design decision.

If you are up for another challenge, turn on Heap to just use its range index and not its hash index type.

Update2 I pulled a comment about replication that I had in the original post. Replication deserves more then a midstream one liner.

Link | Leave a comment {24} |

Data Dictionary VS Information Schema

Oct. 5th, 2010 | 04:43 am

By default Drizzle has two schemas in the local catalog.

drizzle> SHOW SCHEMAS \G
*************************** 1. row ***************************
*************************** 2. row ***************************
*************************** 3. row ***************************
Database: version_test
3 rows in set (0 sec)

The tables in INFORMATION_SCHEMA are just what is found in the ANSI SQL standard. We have added zero custom columns or tables to the schema, it is just the standard. The goal of this was to make it easy for tool vendors to support Drizzle via their current tools without having to make special exceptions for Drizzle. The tables are populated with information via Table Functions (which are completely new to Drizzle). Table Functions generate data on an as needed basis and do not materialize tables within queries (though many of the table functions get their information from caches from within the server).

In Drizzle all SHOW commands also gain their information from table functions as well (with the exception of the warnings and errors show commands). For Drizzle a SHOW command is rewritten into a simple SELECT statement, with wild cards on the statements pushed to the table functions.

DATA_DICTIONARY on the other hand is where we keep additional tables that are designed for Drizzle. The tables SCHEMAS and TABLES hold additional information beyond what the SQL standard requires us to provide (in the next beta you will be able to see both the version of the schema/table and the UUID we use to track the identity of the object). Additional tables can be added via --plugin-add. For instance if you load the performance_schema plugin, you can gain access to SESSION_USAGE which provides you with information on the last five queries you executed. Via that table function you can find out how much time was used up by a query for page faults, etc... (this is similar to the SHOW PROFILES command that was added to the MySQL community edition but that was never added to the Enterprise edition).

Drizzle also has a SCOREBOARD_STATISTICS table function that provides information on our "scoreboard". This is similar to the Apache concept where pre-allocated memory is used to track session data. The Drizzle scoreboard provides most of the information that we provide and aggregate on a per user basis (you can find out more about it here).

There are currently 42 default tables in DATA_DICTIONARY. Table exist for looking at the current statics on the different protocols that we respond too (you can see information on the MySQL protocol via SELECT * FROM DATA_DICTIONARY.MYSQL_PROTOCOL_STATUS). You can find out what is in the table definition cache by querying TABLE_DEFINITION_CACHE or see who has what table locked by looking into the TABLE_CACHE table. We provide eight tables that specifically provide information on the state of Innodb.

Link | Leave a comment |

Drizzle hint of the day, --help

Oct. 3rd, 2010 | 10:55 pm

Over lunch I was talking to a --name removed to protect the innocent-- and they were saying.

"I spent 30 minutes trying to figure out how to change the port address, and it turned out all I needed to do was use --help!"

For any of the drizzle command line applications or the server you can just do a


To find documentation on any of the command line arguments all you need to do is ask the program.

We print out the help, and only the help. Pretty much any modern unix application follows this standard, but since mysql never did, is somewhat un-intuitive to find that it works :)

Link | Leave a comment |

To be brief...

Sep. 7th, 2010 | 12:48 am
location: US, California, Modoc, US Hwy 395

Went to brc, built a monorail, I got to see people's face light up, got to see how an elctrical car should work, and built an awesome camp (72 at final).

I believe in people and that comes with rewards, risks, and failures.

My radar for people is pretty good for finding gems, but I recognize that crowd sourcing has some advantages.

People do not always know what to do when you give them ownership. Be careful about giving it,... I have a lot on this idea.

A little negative energy goes a long way, which means that you should be very careful about including people who pass it along. Its better to confront them about their state of being by being kind to their situation then to just ask "how are you doing".

BM LLC cares, but realize that everyone interprets the shadow puppets differently. When in doubt? Read the back of the ticket.

No one died, no one was hurt, and we put the thing together in a week. The lights worked, the rail was never destroyed, and I even got to ride in it.

A half a month in the desert was fine. My peeps are pretty awesome.

I only smiled when asked "what do we build next year".

More to come...

In the end? 1600 gallons of water, of which only 80 gallons went unused.

Posted via LiveJournal app for iPhone.

Tags: ,

Link | Leave a comment {3} |

$30 iPad case, or ziplock bag?

Aug. 26th, 2010 | 12:37 pm


Link | Leave a comment {2} |

A Start...

Aug. 25th, 2010 | 12:52 pm


Link | Leave a comment |

BRC next destination!

Aug. 23rd, 2010 | 09:00 am
location: US, Oregon, Madras, Jefferson, SE 5th St, 53

500' of track
280w of led
2 stations
43 trestle
1 electric car that does not turn
1 200' worm tube
~150 pillows
~1200 gallons of water
One hot shower
23 extroverts
27 introverts (some number of unknown)
9 countries
~20% of the burner triangle
At least 8 gallons of soy milk

Posted via LiveJournal app for iPhone.


Link | Leave a comment |

We have chill shade!

Aug. 12th, 2010 | 06:50 pm


Link | Leave a comment {1} |

Camp Layout

Aug. 8th, 2010 | 03:43 pm


Link | Leave a comment {2} |