Facebook has joined a number of other Internet services heavyweights, such as Google and LinkedIn, to better equip the MySQL relational database management system for large- scale work.
The new group, called WebScaleSQL, includes engineers from Facebook, Google, LinkedIn, and Twitter.
“Our goal in launching WebScaleSQL is to enable the scale-oriented members of the MySQL community to work more closely together in order to prioritize the aspects that are most important to us,” wrote Facebook software engineer Steaphan Greene, in a blog post announcing the collaboration.
“We aim to create a more integrated system of knowledge-sharing to help companies leverage the great features already found in MySQL 5.6, while building and adding more features that are specific to deployments in large-scale environments,” Greene wrote.
Facebook has one of the largest deployments of the open source MySQL, if not the single largest deployment. The database system houses the data of Facebook’s 1.23 billion users.
Many other social networking companies have eschewed the use of relational databases such as MySQL altogether in favor of NoSQL databases such as Cassandra or Riak, which were built from scratch to host extremely large data sets spread across multiple servers.
Facebook instead uses MySQL along with the Memcached caching system to replicate the data around the globe across many servers.
WebScaleSQL is not alone in its effort to boost MySQL for low-latency global Web scale work.
Percona offers a version of MySQL for high performance use, called Percona Server.
The MariaDB and Drizzle forks of MySQL were created with scalability improvements in mind as well.
Even the company managing the MySQL code, Oracle, outfitted MySQL with a handler that makes quick Memcached-like calls directly to the data, rather than going through the database engine itself.
Oracle also offers a separate version of MySQL, called MySQL Cluster,for use on server clusters, though it differs from MySQL considerably and is not widely used outside of telecommunications and a few other specific industries.
The WebScaleSQL project insists that the code base for WebScaleSQL is not a fork of MySQL, a separate version incompatible with MySQL itself, but rather a branch optimized for large-scale usage.
The work is based on the latest production-ready version of MySQL, version 5.6. The group hopes Oracle will accept some of the changes into the next version of MySQL, version 5.7.
The project has already produced a number of tools to help in its cause. It has developed a set of stress tests and an automated framework for creating and reviewing code changes.
Several projects are already under way.
One project is an asynchronous MySQL client that won’t block additional requests when it is currently handling one. Facebook created this fix and it is currently being reviewed by other WebScaleSQL engineers.
The group is also reviewing other Facebook MySQL augmentations such as a read-ahead mechanism that can speed full table scans by a factor of 10.