From Wikipedia, the free encyclopedia
Jump to: navigation, search
WebScaleSQL logo
Developer(s) Facebook, Google, LinkedIn, Twitter and Alibaba Group
Development status Active
Written in C, C++, Perl and Bash
Operating system Linux
Platform x86-64
Available in English
License GNU GPL version 2
Website webscalesql.org
Repository github.com/webscalesql/webscalesql-5.6

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.[1][2]

The source code of WebScaleSQL is hosted on GitHub and licensed under the terms of version 2 of the GNU General Public License.[3][4]


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.[3][5][6]

WebScaleSQL was announced on March 27, 2014 as a joint effort of Facebook, Google, LinkedIn and Twitter (with Alibaba Group joining in January 2015[7]), 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.[1][4][8]

WebScaleSQL is created as a branch of the MySQL's latest production-ready community release, which is version 5.6 as of March 2013. 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[9] or Percona Server,[10] 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.[1][3][4]


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.[11] As of September 15, 2014, available new features and changes include the following:[4][8][12][13][14]

  • 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)[15] feature of MySQL 5.6
  • So-called super_read_only[16] 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 include the following:[1][8]


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.[4]

The source code is hosted on GitHub and available under version 2 of the GNU General Public License (GPL v2).[3][4]

See also[edit]


  1. ^ a b c d Steven J. Vaughan-Nichols (March 28, 2013). "WebScaleSQL: MySQL for Facebook-sized databases". ZDNet. Retrieved April 1, 2014. 
  2. ^ Klint Finley (March 27, 2013). "Google and Facebook Team Up to Modernize Old-School Databases". Wired. Retrieved April 1, 2014. 
  3. ^ a b c d Jack Clark (March 27, 2013). "Forkin' 'L! Facebook, Google and friends create WebScaleSQL from MySQL 5.6". The Register. Retrieved April 1, 2014. 
  4. ^ a b c d e f "Frequently Asked Questions". webscalesql.org. March 27, 2014. Retrieved April 1, 2014. 
  5. ^ "Patches for MySQL 5 – MySQL tools released by Google". code.google.com. June 24, 2011. Retrieved April 1, 2014. 
  6. ^ "facebook/mysql-5.1". github.com. June 2013. Retrieved April 1, 2014. 
  7. ^ "Please welcome Alibaba to WebScaleSQL!". webscalesql.org. January 15, 2015. Retrieved August 15, 2015. 
  8. ^ a b c Doug Henschen (March 27, 2014). "Facebook Debuts Web-Scale Variant of MySQL". informationweek.com. Retrieved August 15, 2015. 
  9. ^ Rasmus Johansson (March 29, 2014). "MariaDB and WebScaleSQL". mariadb.org. Retrieved August 15, 2015. 
  10. ^ Laurynas Biveinis (May 22, 2014). "A technical WebScaleSQL review and comparison with Percona Server". percona.com. Retrieved August 15, 2015. 
  11. ^ "Is Your Change Appropriate?". webscalesql.org. March 27, 2014. Retrieved April 1, 2014. 
  12. ^ Michael Larabel (March 28, 2014). "Facebook & Others Announce WebScaleSQL". Phoronix. Retrieved April 1, 2014. 
  13. ^ Steaphan Greene (March 27, 2014). "WebScaleSQL: A collaboration to build upon the MySQL upstream". code.facebook.com. Retrieved August 16, 2015. 
  14. ^ Doug Henschen (September 15, 2014). "Facebook Announces WebScaleSQL Upgrade For MySQL". informationweek.com. Retrieved August 16, 2015. 
  15. ^ "MySQL 5.6 Reference Manual, Section 17.1.3 Replication with Global Transaction Identifiers". dev.mysql.com. Retrieved August 16, 2015. 
  16. ^ "Percona Server 5.6: super_read_only option". percona.com. Retrieved August 16, 2015. 

External links[edit]