【发布时间】:2015-10-27 09:44:31
【问题描述】:
Cassandra 的最终一致性模型与 HBase 有何不同?由于一致性问题,Facebook 似乎从 Cassandra 迁移到了 HBase。这些 NoSQL 数据库中的哪一个是规模和性能的理想选择,并且具有尽可能接近“即时”的一致性。当我们试图提高一致性时,性能下降的因素是什么?
【问题讨论】:
标签: cassandra hbase eventual-consistency
Cassandra 的最终一致性模型与 HBase 有何不同?由于一致性问题,Facebook 似乎从 Cassandra 迁移到了 HBase。这些 NoSQL 数据库中的哪一个是规模和性能的理想选择,并且具有尽可能接近“即时”的一致性。当我们试图提高一致性时,性能下降的因素是什么?
【问题讨论】:
标签: cassandra hbase eventual-consistency
Here's Facebook's original post 了解他们为什么选择 HBase for Messenger。当时他们认为 HBase 是“理想的规模和性能,具有尽可能接近‘即时’的一致性”,但是他们达到了极限,后来 developed a new service called Iris 处理最近一周的消息,同时将较旧的消息存储在HBase。
Cassandra's consistency model provides a lot of flexibility。最大的区别在于 Cassandra 是一个无共享架构:每台服务器都被设计为能够独立运行,因此以一致性为代价实现了高可用性和分区容错。
但是,对于 HBase,只有一个事实来源,但以(明显的)可用性和分区容错为代价。从客户端的角度来看,读取过程涉及查找该数据的位置并从该服务器读取它。对该数据的任何更新都是原子的。
Here's one HBase vs Cassandra benchmark 显示 HBase 在几乎所有(大部分)默认设置的测试中都优于 Cassandra,here's another benchmark 显示 Cassandra 在某些测试中优于 HBase。我认为这里的结论是,您的问题的答案在很大程度上取决于您的用例。
Here's a good article 总结了每种方法的优缺点,可以帮助您决定哪一种最适合您的需求。
【讨论】: