hbase vs cassandra 用于消息传递

hbase vs cassandra for messaging

几年前,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,当将读取一致性级别设置为“一”或“二”时,读取速度比设置为“全部”时更快。

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

Cassandra 最初是为优化写入性能而设计和构建的。随着版本的发布,他们已经做了很多工作来提高读取性能,使其更接近写入性能。针对 HBase 与 Cassandra 进行了多项基准测试和研究,但总的来说,他们倾向于说性能大约等于 Cassandra 好一点。然而,我总是对所有这些性能基准研究持保留态度,因为根据您设置测试的方式,您可以让任何人成为赢家。

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

至于 FB 是否会选择 Cassandra 而不是 HBase,这是不可能的,因为做出这个决定不仅仅是简单的性能指标。我可以说消息传递用例是 cassandra 表现出色的用例。您可以在这里阅读他们的用例:

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