|Developer(s)||Facebook, Google, LinkedIn, Twitter and Alibaba Group|
|Written in||C, C++, Perl and Bash|
|License||GNU GPL version 2|
WebScaleSQL is an open-source relational database management system (RDBMS) created as a software branch of the production-ready community releases of MySQL. By joining efforts of a few companies and incorporating various changes and new features into MySQL, WebScaleSQL aims toward fulfilling various needs arising from the deployment of MySQL in large-scale environments, which involve large amounts of data and numerous database servers.
Running MySQL on numerous servers with large amounts of data, at the scale of terabytes and petabytes of data, creates a set of difficulties that in many cases arise the need for implementing specific customized MySQL features, or the need for introducing functional changes to MySQL. More than a few companies have faced the same (or very similar) set of difficulties in their production environments, which used to result in the availability of multiple solutions for similar challenges.
WebScaleSQL was announced on March 27, 2014 as a joint effort of Facebook, Google, LinkedIn and Twitter (with Alibaba Group joining in January 2015), aiming to provide a centralized development structure for extending MySQL with new features specific to its large-scale deployments, such as building large replicated databases running on server farms. As a result, WebScaleSQL opens a path toward deduplicating the efforts each founding company had been putting into maintaining its own branch of MySQL, and toward bringing together more developers.
WebScaleSQL is created as a branch of the MySQL's latest production-ready community release, which is version 5.6 as of March 2013[update]. As the project aims to tightly follow new MySQL community releases, a branching path has been selected instead of becoming a software fork of MySQL. The selection of MySQL production-ready community releases for the WebScaleSQL's upstream, instead of selecting some of the available MySQL forks such as MariaDB or Percona Server, was the result of a consensus between the four founding companies, which concluded that the features already existing in MySQL 5.6 are suitable for large-scale deployments, while additional features of the same kind are planned for MySQL 5.7.
The initial changes and feature additions that WebScaleSQL introduced to the MySQL 5.6 codebase came from the engineers employed by the four founding companies; however, the project is open to peer-reviewed community contributions. As of September 15, 2014[update], available new features and changes include the following:
- A software framework that provides automated testing of all proposed changes
- A customized suite of database performance tests
- Various changes to the automated tests provided by the MySQL community releases
- Performance improvements in various areas, including buffer pool flushing, execution of certain types of SQL queries, and support for NUMA architectures
- Changes related to large-scale deployments, such as the ability to specify sub-second client timeouts
- Performance and reliability improvements to the global transaction identifier (GTID) feature of MySQL 5.6
super_read_only operation mode for the MySQL server, which disables data modification operations even for privileged database accounts
- New asynchronous MySQL client that will eliminate the client-side waiting while establishing database connections, sending queries, and receiving their results
- Availability of various table, user and compression statistics
- Changes to the internal compression mechanisms
- Addition of a logical read-ahead mechanism that will bring significant performance improvements for full table scans
WebScaleSQL is distributed in a source-code-only form, with no official binaries available. As of March 27, 2014[update], compiling the source code and running WebScaleSQL is supported only on x86-64 Linux hosts, requiring at the same time a toolchain that supports C99 and C++11 language standards.
- Steven J. Vaughan-Nichols (March 28, 2013). "WebScaleSQL: MySQL for Facebook-sized databases". ZDNet. Retrieved April 1, 2014.
- Klint Finley (March 27, 2013). "Google and Facebook Team Up to Modernize Old-School Databases". Wired. Retrieved April 1, 2014.
- Jack Clark (March 27, 2013). "Forkin' 'L! Facebook, Google and friends create WebScaleSQL from MySQL 5.6". The Register. Retrieved April 1, 2014.
- "Frequently Asked Questions". webscalesql.org. March 27, 2014. Retrieved April 1, 2014.
- "Patches for MySQL 5 – MySQL tools released by Google". code.google.com. June 24, 2011. Retrieved April 1, 2014.
- "facebook/mysql-5.1". github.com. June 2013. Retrieved April 1, 2014.
- "Please welcome Alibaba to WebScaleSQL!". webscalesql.org. January 15, 2015. Retrieved August 15, 2015.
- Doug Henschen (March 27, 2014). "Facebook Debuts Web-Scale Variant of MySQL". informationweek.com. Retrieved August 15, 2015.
- Rasmus Johansson (March 29, 2014). "MariaDB and WebScaleSQL". mariadb.org. Retrieved August 15, 2015.
- Laurynas Biveinis (May 22, 2014). "A technical WebScaleSQL review and comparison with Percona Server". percona.com. Retrieved August 15, 2015.
- "Is Your Change Appropriate?". webscalesql.org. March 27, 2014. Retrieved April 1, 2014.
- Michael Larabel (March 28, 2014). "Facebook & Others Announce WebScaleSQL". Phoronix. Retrieved April 1, 2014.
- Steaphan Greene (March 27, 2014). "WebScaleSQL: A collaboration to build upon the MySQL upstream". code.facebook.com. Retrieved August 16, 2015.
- Doug Henschen (September 15, 2014). "Facebook Announces WebScaleSQL Upgrade For MySQL". informationweek.com. Retrieved August 16, 2015.
- "MySQL 5.6 Reference Manual, Section 17.1.3 Replication with Global Transaction Identifiers". dev.mysql.com. Retrieved August 16, 2015.
- "Percona Server 5.6: super_read_only option". percona.com. Retrieved August 16, 2015.