卡桑德拉的最终一致性模型与HBase有何不同?似乎Facebook从Cassandra迁移到HBase是因为一致性问题。这些NoSQL数据库中的哪一个是可扩展性和性能的理想选择,并且一致性尽可能接近“即时”。当我们试图提高一致性时,性能下降的因素是什么?
发布于 2018-06-11 09:02:10
Here's Facebook's original post解释了为什么他们选择HBase作为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在(大部分)默认设置上几乎在每一项测试中都优于卡桑德拉,here's another benchmark显示卡桑德拉在某些测试中表现优于HBase。我认为这里的结论是你的问题的答案很大程度上取决于你的用例。
Here's a good article总结了每种方法的优缺点,可以帮助您决定哪种方法最适合您的需求。
https://stackoverflow.com/questions/33364478
复制相似问题