Cassandra LOCAL_QUORUM

JDe*_*suv 4 cql cassandra nosql datastax cassandra-2.0

我无法理解/查找有关如何在cassandra中计算各种法定人数的信息.

假设我有一个16节点集群,它使用2个数据中心的网络拓扑策略.每个数据中心的复制因子为2(DC1:2,DC2:2).

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

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

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

Ste*_*ski 6

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

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

  • 写入时使用EACH_QUORUM,读取时不使用EACH_QUORUM,因为读取时的LOCAL_QUORUM就足够了。或者,在您的环境中,使用QUORUM进行写入和读取的操作大致相同,但是将容忍单个节点故障(每个DC中RF = 2,如果任何副本出现故障,那么您将无法满足该DC的法定人数。 -但是,群集范围的仲裁是4个副本中的任何3个,可能满足您的需要)。 (2认同)