When do you pick HBase instead of MySQL?

Facebook works its data magic at scales others only dream of. And they do this for over 600,000,000 people, in real time!  (see: Facebook's New Real-Time Messaging System: HBase To Store 135+ Billion Messages A Month). Cade Metz just wrote a piece diving deeper into this at The Register. His article is titled "HBase: Shops swap MySQL for open source Google mimic."  This great reporting underscores something we already knew, that Facebook is a pioneer in the world of fast/realtime read/write access to big data. He also underscored that when you see Facebook making moves like swapping MySQL for HBase it is yet another reason to study what is going on here. This is especially important since Facebook is not the only firm swapping out MySQL for HBase.

So here is a bit more on HBase:

HBase is an Apache Software Foundation project. Here is more from Apache.org:

HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides Bigtable-like capabilities on top of Hadoop. HBase includes:

Here is more from the Cade Metz article:

HBase is part of the Apache Hadoop project, a sweeping effort to mimic Google's proprietary infrastructure with open source code. It dovetails with HDFS, the Hadoop distributed file system, and Hadoop MapReduce, the distributed number-crunching platform. HBase is essentially a low-latency layer that sits atop HDFS, letting you rapidly store and retrieve data. It's fashioned after Google's BigTable platform, which Mountain View publicly described in a 2006 research paper.

Now back to the title of this post.  How do you know if you should pick MySQL or HBase for a solution?

If you are designing systems to operate at huge scale, or integrating with other Hadoop related projects, select HBase. HBase, with Hadoop and related capabilities, is also there to support analysis at scale. So, if you are designing for making sense over big data, pick HBase.

MySQL is not going away. But the things it will be optimized for are traditional RDBMS solutions. If you can comfortably store your data in tables with rows and columns and don't have that much of it or don't do fast analysis over it, MySQL may be your best pick. MySQL is widely used, highly reliable, and well understood. So if your future growth and business model indicates you will never run into scale problems or have challenges conducting analysis over your data, MySQL may well be the best choice.

About Bob Gourley

Bob Gourley is a co-founder and Partner at Cognitio, the publisher of CTOvision.com and ThreatBrief.com . Bob's background is as an all source intelligence analyst and an enterprise CTO. Find him on Twitter at @BobGourley