The average Facebook user has never heard of HydraBase, but the souped-up version of Apache HBase, an open-source distributed key value data store running on top of HDFS, was instrumental in the social network’s move in 2010 to revamp its messages inbox to include Facebook messages, SMS, chat, and email. Since then, the technology has been use to launch other features, as well.
Facebook described how its use of Apache HBase evolved into its deployment of HydraBase in a post on its engineering blog:
When we revamped messages in 2010 to integrate SMS, chat, email, and Facebook messages into one inbox, we built the product on open-source Apache HBase, a distributed key value data store running on top of HDFS, and extended it to meet our requirements.
At the time, HBase was chosen as the underlying durable data store because it provided the high write throughput and low latency random read performance necessary for our messages platform. In addition, it provided other important features, including horizontal scalability, strong consistency, and high availability via automatic failover.
Since then, we’ve expanded the HBase footprint across Facebook, using it not only for point-read, online transaction-processing workloads like messages, but also for online analytics-processing workloads where large data scans are prevalent. Today, in addition to messages, HBase is used in production by other Facebook services, including our internal monitoring system, the recently launched Nearby Friends feature, search indexing, streaming data analysis, and data scraping for our internal data warehouses.
With HydraBase, we have the potential to increase the reliability of HBase from 99.99 percent availability to 99.999 percent if we deploy HydraBase in a cross-data-center configuration. This would translate to no more than five minutes of downtime in a year.
We also have the flexibility of deploying HydraBase within a single data center. This provides improved failover across hosts as well as racks, compared with HBase.
We’re currently testing HydraBase and plan to roll it out in phases across our production clusters. Looking ahead, other enhancements we’re considering include allowing reads to be serviced from members of the quorum other than the leader, as well as keeping in-memory copies of the data in witness mode quorum members to further speed up failover.
For much more on Apache HBase and HydraBase, please see the post on Facebook’s engineering blog.