In a span of 7 days Facebook released two projects which offer enterprise ready alternatives to traditional AMP stack. Last week they released Hack, which is a PHP based language tailor made for HHVM. This week Facebook, along with Google and other players, announced WebScaleSQL, a project intended for scale oriented members of MySQL community.
HipHop Virtual Machine (HHVM) was created by Facebook for superior PHP performance. It is somewhat similar to JVM of Java. However not all PHP code is supported by HHVM. HHVM is striving for a complete PHP compatibility. Hack is a PHP based language tailor made for HHVM. It allows both static and dynamic typing. HHVM is written in Hack and PHP. Hack is already being used in Facebook. It was however open sourced on 21st March. You can checkout extra details at the official website.
Whereas WebScaleSQL is a combined effort by companies running MySQL at scale. MySQL teams working for Facebook, Google, LinkedIN and Twitter are heavily involved in this project. It is based on MySQL 5.6 community release. Each company uses their own customised version of WebScaleSQL according to their requirements.
In a blog post Facebook Engineer Steaphan Greene says:
An automated framework that will, for each proposed change, run and publish the results of MySQL’s built-in test system (mysql-test-run).
A full new suite of stress tests and a prototype automated performance testing system. Several changes to the tests already found in MySQL, and to the structure of some existing code, to avoid problems where otherwise safe code changes had previously caused tests to fail or caused unnecessary conflicts. These changes make it easier to work on the code and helped us get started creating WebScaleSQL.
Several changes to improve the performance of WebScaleSQL, including buffer pool flushing improvements (links here and here); optimizations to certain types of queries; support for NUMA interleave policy; and more.
New features that make operating WebScaleSQL at true web scale easier, such as super_read_only, and the ability to specify sub-second client timeouts.
WebScaleSQL is not a fork but a branch of MySQL. As long as community releases of MySQL continue, WebScaleSQL will remain its branch. Other options like Percona, MariaDB, Drizzle, etc will be considered as the ecosystem evolves. WebScaleSQL intends to be community driven. Check the official website for details for more information.
HHVM and WebScaleSQL are both enterprise ready products. They offer superior performance w.r.t PHP and MySQL on large scale. Facebook looks all set to capture the Enterprise market with its superior software.