HandlerSocket (NoSQL for InnoDB) added to Percona Server (PS MySQL 5.5 GA is out!)
Just wanted to highlight that Percona Server has now added HandlerSocket to its most recent release, being the first "MySQL fork/distribution" to ship it in easy to consume binary downloads.
HandlerSocket brings NoSQL to MySQL, and does so with a vengeance! It was developed at DeNa, by Akira Higuchi and is already used in production in their MySQL servers. The announcement on my former collague Yoshinori Matsunobu's blog flaunts a 7x performance improvement over the standard SQL interface in MySQL. The most astonishing part is that their MySQL is now faster than Memcached, even if the latter doesn't store anything to disk, so with this NoSQL-for-MySQL solution it makes sense to remove the caching layer completely!
I personally believe HandlerSocket will turn out to be one of the greatest MySQL innovations ever, and it is very likely that a few years from now, MySQL will be the de-facto NoSQL solution and other key-value entrants we are seeing today will have become marginalized. Earlier this year Mark Callaghan already showed in a series of benchmarks that a "Facebook patched" version of MySQL+InnoDB performs better than MongoDB in all use cases, even the ones MongoDB/NoSQL is supposed to be good at. Now our friends at DeNA have shown that removing the SQL processing part of MySQL gives us 7x better performance than that!
Given that MySQL is already well known and mature technology, with a lot of investment going speficically into "web scale" performance, it is an uphill journey for any new challenger to out-compete it after this. Especially since now you get best of both worlds: the expressiveness of SQL and the speed and determinism of NoSQL available both at the same time.
It's not like I have inside information anymore, but a couple people have asked, so I'll share that lurking on the #maria IRC channel I hear that HandlerSocket is expected to land into MariaDB 5.3 in some weeks/months, as part of the regular routine of introducing enhancements from XtraDB/Percona Server. Note however that MariaDB 5.3 is not a stable release, it is just at the beginning of an alpha/beta/RC cycle, whereas the Percona release is stable.
Personally, I can't wait to get some hands on time with this technology and blog more about it. The authors have also left some low hanging fruit for would be contributors, we'll need a PHP client and Java client to begin with, and after that I have some other interesting ideas on how to combine HandlerSocket access with traditional/legacy SQL code.
This also marks the first time that I have trouble choosing between 2 MySQL forks: I already started using the virtual columns from MariaDB 5.2 (just test databases, but still), so I'm reluctant to uninstall it, yet I need to install Percona Server somewhere now to play with it too. (Of course, HandlerSocket is a plugin, so it is relatively easy to just install it into any MySQL or MariaDB installation. Virtual columns are MariaDB only at the moment.) Eventually I expect both of these technologies to "diffuse" into each MySQL variant, within a year or so, but for early adopters we are in a situation where you end up juggling between each of them, as they come out with new releases.
Speaking of which: MySQL 5.5.8 GA was also released today. Congratulations to the Oracle team are in order! Also this release has some new features and performance improvements not yet available in MariaDB or Percona Server. Sheeri seems to have a pretty good list of the goodies in this release
Related to HandlerSocket, I think it is a good candidate to become included as a non-default plugin in later 5.5.x releases, like the InnoDB plugin was included in later 5.1.x builds earlier this year. Anyone willing to take bets?