I have a friend who is fond of telling a story from way back in November 2008 at the OpenSQL camp in Charlottesville, Virgina. This was relatively shortly after we had announced to the public that we’d started something called Drizzle (we did that at OSCON) and was even closer to the date I started working on Drizzle full time (which was November 1st). Compared to what it is now, the Drizzle code base was in its infancy. One of the things we hadn’t yet sorted out was the rewrite of the replication code.
So, I had my laptop plugged into a projector, and somebody suggested opening up some random source file… so I did. It was a bit of the replication code that we’d inherited from MySQL. Immediately we spotted a bug. In fact, between myself and Brian I think we worked out that none of the error handling in this code path ever even remotely worked.
Fast forward a bunch of years, and recently I had open part of the replication code in MySQL 5.5 and (again) instantly spotted a bug. Well.. the code is correct in 2 out of 3 situations…
It is rather impressive that the MySQL Replication team has managed to add the features they have in MySQL 5.6.
I’m also really happy with what we managed to do inside Drizzle for replication. Ripping out all the MySQL legacy code was a big step to take, and for a while it seemed like possibly the wrong one  – but ultimately, it was incredibly the right thing to do. I love going and looking at the Drizzle replication code. I simply love it.
Yay for highly modularized, documented, clean code!
Pingback: Log Buffer #273, A Carnival of the Vanities for DBAs | The Pythian Blog
I’m the friend of the story. It’s a good story. I’m not the fastest C++ hacker in the room, and even I saw the bug, just a little bit after Stewart & Brian saw it.
What’s the bug ID? I’m sure the MySQL devs would love to learn more about this. ;)
It’s been so long I can barely remember where it was… This was after I had my first batch of “well, my bug reports aren’t going to be payed any attention and if I spend all my time filing bugs I’ll get no work done” feeling.