据说一致性级别n定义了确认每个读写操作所需的副本数量。这个数字越大,我们得到的结果就越一致。如果我们将该参数定义为n(n<m/2),其中m是簇大小,是否意味着可能出现以下情况:1个数据中心。两个并发写入成功发生(它们用不同的值更新了同一个键)?因此,两个后续的并发读取为同一个键返回不同的值?我说的对吗?
knsnq2tg1#
是的,我们可以根据读写要求调整一致性。quorum是针对单个dc的cassandra的建议一致性级别。我们可以从以下公式计算:quorum=n/2+1,其中n是副本数。我们可以从下面设置一致性命令一致性[级别]有关可调一致性的更多详细信息,请参阅下文。https://medium.com/dugglabs/data-consistency-in-apache-cassandra-part-1-7aee6b472fb4httpshttp://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlaboutdataconsistency.htmlhttps://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshconsistency.html
stszievb2#
在cassandra中,很可能不同的客户机应用程序正在更新不同节点上相同密钥的值。您可以通过调整一致性级别来限制这一点。一致性级别始终取决于您决定的复制因子。如果rf=5个节点dc中的3个,则一致性级别仲裁或本地\u仲裁表示3个节点中有2个具有副本。调整后,以下任何组合都应为您提供正确的数据:
WRITE=ALL READ=ONE WRITE=ONE READ=ALL WRITE=LOCAL_QUORUM READ=LOCAL_QUORUM
您可以根据应用程序的负载调整应用程序中的一致性级别。根据我的说法,第3个本地仲裁应该工作得更好,因为有时节点可能处于高负载下,或者可能已关闭。您的应用程序不会受到影响。万一,你写的比读的多;write cl=all将使您的应用程序变慢。
2条答案
按热度按时间knsnq2tg1#
是的,我们可以根据读写要求调整一致性。quorum是针对单个dc的cassandra的建议一致性级别。我们可以从以下公式计算:quorum=n/2+1,其中n是副本数。我们可以从下面设置一致性命令一致性[级别]
有关可调一致性的更多详细信息,请参阅下文。
https://medium.com/dugglabs/data-consistency-in-apache-cassandra-part-1-7aee6b472fb4httpshttp://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlaboutdataconsistency.html
https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshconsistency.html
stszievb2#
在cassandra中,很可能不同的客户机应用程序正在更新不同节点上相同密钥的值。您可以通过调整一致性级别来限制这一点。
一致性级别始终取决于您决定的复制因子。
如果rf=5个节点dc中的3个,则一致性级别仲裁或本地\u仲裁表示3个节点中有2个具有副本。
调整后,以下任何组合都应为您提供正确的数据:
您可以根据应用程序的负载调整应用程序中的一致性级别。
根据我的说法,第3个本地仲裁应该工作得更好,因为有时节点可能处于高负载下,或者可能已关闭。您的应用程序不会受到影响。
万一,你写的比读的多;write cl=all将使您的应用程序变慢。