# WebScaleSQL

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 source code of WebScaleSQL is hosted on GitHub and licensed under the terms of version 2 of the GNU General Public License.
The project website announced in December 2016 that the companies involved would no longer contribute to the project.

## Overview

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. 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 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.

## Features

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, 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
* So-called super_read_only operation mode for the MySQL server, which disables data modification operations even for privileged database accounts
As of March 28, 2014, planned new features and changes included the following:
* 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

## Availability

WebScaleSQL is distributed in a source-code-only form, with no official binaries available. As of March 27, 2014, 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.
The source code is hosted on GitHub and available under version 2 of the GNU General Public License (GPL v2).

## 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.