Some of Google applications use the MySQL database, and internal performance enhancements made by Google engineers have been publicly released.
Google Selects MySQL Goodies For Open Source
Database professionals who prefer to work with MySQL may be interested in how Googlers use the open source database.
Mark Callaghan, a Google software engineer, wrote on the Google Code Blog how some of their requirements push the boundaries of MySQL.
To compensate for their needs for high availability, manageability, and other areas of the database, they have had to code some changes.
“We would love for the some of these changes to be merged with the official MySQL release,” Callaghan wrote. “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.”
He listed the following changes available as patches to MySQL version 4. They anticipate version 5 support as coming soon:
- 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
Though Callaghan refers to a GPL license, the MySQL tools Google has released are listed under the Apache 2.0 License.
As the Apache Foundation has noted, its license is not compatible with the GPL due to the inclusion of certain patent termination cases that the GPL does not have.