用于消息传递的hbase vs cassandra

时间:2016-02-25 10:22:15

标签: cassandra hbase

几年前,Facebook决定在其邮件系统中使用hbase而不是cassandra:http://highscalability.com/blog/2010/11/16/facebooks-new-real-time-messaging-system-hbase-to-store-135.html

fb使用hbase的主要原因是,与cassandra相比,读取速度比写入快。这个事实仍然是真的吗?我正在使用cassandra 3.0,当将读取一致性级别设置为ONE或TWO时,读取速度比设置为ALL时快。

现在我的问题是:如果Facebook必须在2016年决定使用cassandra或hbase,它的决定仍然是hbase吗?

1 个答案:

答案 0 :(得分:3)

Cassandra最初是为优化写入性能而设计和构建的。随着版本的发布,他们已经做了很多工作来提高读取性能,使其更接近写入性能。关于HBase和Cassandra已经进行了多项基准测试和研究,但总的来说,他们倾向于说性能与Cassandra相当好一些。然而,我总是把所有这些性能基准研究都考虑在内,因为根据你如何设置测试,你可以让任何人成为赢家。

您肯定会使用CL = ONE而不是ALL获得更快的读取和写入,因为协调器只需要等待任何副本而不是所有副本。如果您处于多DC方案中,那么LOCAL_ONE将进一步提高吞吐量。

至于FB是否会选择Cassandra而不是HBase,这是不可能的,因为制定这个决定的能力远远超过简单的绩效指标。我可以说消息传递用例是cassandra表现良好的用例。你可以在这里阅读他们的用例:

http://www.planetcassandra.org/blog/functional_use_cases/messaging/