The original plan for replication was to use a Tungsten Replicator based solution to transfer the transaction logs (similar to MySQL's binary logs). Unfortunately this can't be completed in time for the GA release so we have switched to a master-slave solution similar to MySQL. The Tungsten solution is still something we plan to finish though.
Replication events are stored using Google Protocol Buffer messages in an InnoDB table, these events are read by the slave, stored locally and applied. The advantage of the Google Protocol Buffer messages is a script or program can be knocked up in pretty much any language in minutes to read our replication log.
Unfortunately this sudden change in replication method means we could not complete the slave code in time for the RC release, which in turn means we are creating a second RC release as explained further down in this blog post.
Special thanks goes to David Shrewsbury, Patrick Crews and Joe Daly for making this happen.
Our first RC has been released this week. In this release we have:
- Drizzle server can now fork to background via. --daemon. This was primarily implemented to help RedHat/Fedora init.d scripts.
- Implicit Cartesian Joins no longer work this is to prevent runaway queries.
- Improvements to the replication transaction log.
- Many other bug fixes and improvements.
Race to GA
Due to the late entry replication code we intend to have one more RC whist we test it to death in as many horrid ways as Patick Crews can find. So the current release plan for Drizzle7 is now:
RC2 - 28th February 2011
GA - 14th March 2011
New RPM Repository
Derks has created a new RPM repository for us at rpm.drizzle.org, more details on this can be seen here.
Windows Jenkins Slave
Monty Taylor has created a Windows slave for our Jenkins Continuous Integration testing system. This means we now test every trunk merge for libdrizzle regressions in Windows.
On Monday 21st February we have our docs day, the developers will be reviewing the entire docs site for technical errors and any improvements that can be made (such as missing topics). We encourage anyone who would like to improve the quality of our docs to join in this effort, contact us on #drizzle on Freenode or file a bug if you spot anything we could improve on.
Update 2011-02-20: We are postponing this until Wednesday 23rd February due to documentation merges which won't have quite hit trunk by Monday.
I'm going to try and do one of these every week, so if you have any feedback or topics you would like me to cover, please let me know.