Vis*_*rma 5 cassandra cassandra-3.0
根据datastax文章,如果R + W > N,则可以保证强一致性,其中R是读操作的一致性级别W是写操作的一致性级别N是副本数
这里的强一致性是什么意思?这是否意味着“每次”从数据库给出查询响应,响应将“始终”是最后更新的值?如果在cassandra中保持强一致性的条件,那么,不存在返回数据可能不一致的场景吗?简而言之,强一致性是否意味着 100% 的一致性?
编辑 1
添加一些关于某些场景的额外材料,即使 R+W>RF Cassandra 也可能不一致
Cassandra 具有可调的一致性,您可以选择一些权衡。
R + W > N - 这仅意味着往返中必须有一个重叠节点,该节点具有可用的实际和最新数据以保持一致。
例如,如果您在 CL.ONE 处写入,则需要在 CL.ALL 处读取以确保获得一致的结果:N+1 > N - 但您可能不想要 CL.ALL,因为您无法容忍单个节点故障在您的集群中。
通常,您可以在读写时选择 CL.QUORUM 以确保一致性并容忍节点故障。例如,在 RF=3 时,QUORUM 需要 (3/2)+1=2 个可用节点,因此 R+W>N 将是 4>3 - 您的请求是一致的,并且您可以容忍单个节点故障。
要记住的一件事 - 在您的所有节点(cassandra 和应用程序)上拥有大腿同步时钟非常重要,您需要启动并运行 ntp。
是的。如果 R + W 一致性大于副本,那么您将始终获得一致的数据。100% 一致性。但您必须牺牲可用性才能获得更高的一致性。
Cassandra 有可调一致性的概念(基于查询设置一致性)。
| 归档时间: |
|
| 查看次数: |
5155 次 |
| 最近记录: |