首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有一致性水平和复制因子的Cassandra如何处理CAP定理?

具有一致性水平和复制因子的Cassandra如何处理CAP定理?
EN

Stack Overflow用户
提问于 2020-03-22 10:01:09
回答 1查看 169关注 0票数 1

根据盖定理的定义,任何分布式系统都只能满足两个条件。传统上,卡桑德拉是一个AP系统。如果我们使用像LOCAL_QUORUM这样的一致性级别,它也确保了很强的一致性。

假设我们总是必须保持分区容忍度,如果我们使用LOCAL_QUORUM和复制因子,我们可以确保强大的一致性和可用性。这是违反CAP定理还是我遗漏了什么?

PS:为了简单起见,我们只有一个数据中心。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-22 10:37:29

不,不幸的是,你不能欺骗卡桑德拉的CAP定理。卡桑德拉允许你调整一致性,但你的需要。

LOCAL_QUORUM意味着,对于读和写,客户端在返回之前等待大部分节点(例如,三个节点中的两个)确认操作。如果客户端同时使用LOCAL_QUORUM进行读写,那么它会将一致性置于可用性之上。这并不意味着它需要所有节点在任何时候都处于上升状态,但大多数节点必须是这样。在此方案中,如果群集被分区,则无法继续查看少数分区的客户端。

客户端还可以通过在一致性级别写入ALL并在ONE上读取来确定一致性的优先级,或者反之亦然,在此场景中,所有节点都必须打开。

如果客户端使用不保证读写重叠的一致性级别的组合(例如读写的ONE ),则它优先考虑可用性。通过分区集群,只要客户端能够与任何节点通信,它就可以继续进行读写。

客户端还可以混合不保证一致性的一致性级别,但不太容易出现一致性错误,例如使用LOCAL_QUORUM进行写入和使用ONE进行读取。当您希望确保写入不丢失时,此组合可能非常有用,但这并不重要,因为读取是立即更新的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60797959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档