首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卡桑德拉LOCAL_QUORUM

卡桑德拉LOCAL_QUORUM
EN

Stack Overflow用户
提问于 2015-07-29 02:03:11
回答 3查看 15.8K关注 0票数 7

我在理解/查找有关如何在cassandra中计算各种定额的信息时遇到了问题。

假设我有一个跨2个数据中心使用Network Topology Strategy的16节点集群。每个数据中心的复制因子为2 (DC1: 2,DC2: 2)。

在本例中,如果我使用LOCAL_QUORUM写入,我会将数据写入4个节点(每个数据中心2个),但何时会出现确认?在写入1个数据中心中的2个节点后?

此外,为了保持强读一致性,我需要写节点+读节点>复制因子。在上面的示例中,如果读取和写入都是LOCAL_QUORUM,我将使用2+2,这将不能保证很强的读取一致性。我的理解正确吗?那么我需要什么级别才能确保强大的读取一致性?

这里的目标是确保在数据中心发生故障时,读/写可以继续,同时最大限度地减少延迟。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-29 02:26:50

在协调器从协调器的同一DC接收到来自2个节点的确认之后,写入将成功。

同时使用LOCAL_QUORUM进行读取和写入将获得很强的一致性,前提是相同的DC将同时用于读取和写入,并且仅用于该DC。

票数 7
EN

Stack Overflow用户

发布于 2015-07-30 00:58:28

前面的答案是正确的:“在协调器从协调器的同一DC收到来自2个节点的确认后,写入将成功。”这对于读取是相同的。

仲裁始终按N/2+1 (N为复制因子)计算,具有local_quorum可避免其他数据中心的延迟。

据我所知,在RF为2和LOCAL_QUORUM的情况下,您有更好的本地一致性,但在分区的情况下没有可用性:如果一个节点掉线,该节点及其副本的范围标记的所有读写都将失败。

因此,如果您打算使用Quorum,我建议使用RF为3。对于两个副本,您最好使用一个副本。

票数 1
EN

Stack Overflow用户

发布于 2019-07-22 13:22:08

一旦LOCAL_QUORUM在任何一个数据中心完成其工作,客户端将从协调器节点获得写入或读取确认。

https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/dml/dmlClientRequestsMultiDCWrites.html

如果写入一致性级别为LOCAL_ONE或LOCAL_QUORUM,则只有与协调器节点位于同一数据中心的节点必须响应客户端请求,请求才能成功。

使用LOCAL_ONE或LOCAL_QUORUM来缩短地理延迟,减少对客户端写入请求响应时间的影响。

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

https://stackoverflow.com/questions/31683907

复制
相关文章

相似问题

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