Though you may think of us as simply a company with a big search index, Google uses MySQL, the open source relational database, in some of the applications that we build that are not search related.
We think MySQL is a fantastic data storage solution, and as our projects push the requirements for the database in certain areas, we've made changes to enhance MySQL itself, mainly in the areas of high availability and manageability.
We would love for the some of these changes to be merged with the official MySQL release, but until then we felt strongly that anyone should have access to them, thus we have released the changes with a GPL license for the MySQL community to use and review.
What have we added and enhanced?
The high availability features include support for semi-synchronous replication, mirroring the binlog from a master to a slave, quickly promoting a slave to a master during failover, and keeping InnoDB and replication state on a slave consistent during crash recovery.
The manageability features include new SQL statements for monitoring resource usage by table and account. This includes the ability to count the number of rows fetched or changed per account or per table. It also includes the number of seconds of database time an account uses to execute SQL commands.
- SemiSyncReplication - block commit on a master until at least one slave acknowledges receipt of all replication events.
- MirroredBinlogs - maintain a copy of the master's binlog on a slave
- TransactionalReplication - make InnoDB and slave replication state consistent during crash recovery
- UserTableMonitoring - monitor and report database activity per account and table
- InnodbAsyncIo - support multiple background IO threads for InnoDB
- FastMasterPromotion - promote a slave to a master without restart
The current patches are for version 4 of MySQL, with version 5 support coming shortly.
We look forward to hearing from the large MySQL community.