|Developer(s)||Facebook, Google, LinkedIn, Twitter and Alibaba Group|
|Written in||C, C++, Perl and Bash|
|License||GNU GPL version 2|
WebScaleSQL was 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 aimed toward fulfilling various needs arising from the deployment of MySQL in large-scale environments, which involve large amounts of data and numerous database servers.
The project website announced in December 2016 that the companies involved would no longer contribute to the project.
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 attempted to open 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 was created as a branch of the MySQL's latest production-ready community release, which was version 5.6 as of March 2013[update]. As the project aimed to tightly follow new MySQL community releases, a branching path was 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 was open to peer-reviewed community contributions. As of September 15, 2014[update], available new features and changes included 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.
End of Contributions
In December 2016, the WebScaleSQL website announced the companies originally involved in collaborating on the project (Facebook, Google, LinkedIn, Twitter, and Alibaba) would no longer contribute to the project. The announcement blamed differences among the needs of the various companies for the end of the collaboration.
- "WebScaleSQL commits history". January 22, 2016. Retrieved December 12, 2016.
- 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.
- "WebScaleSQL Moving Forward". December 29, 2016. Retrieved December 29, 2016.
- "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.