理解Cassandra数据库中的隔离性

5
根据Cassandra文档,Cassandra中的隔离提供了行级隔离。这意味着在单个节点上单个分区内对行进行的写入只对执行该操作的客户端可见。
现在我假设在Cassandra文档中,通过写入它们的意思是插入和更新。 我的问题是: 考虑这样一种情况,我正在更新一行,与此同时其他用户也在更新同一行。现在由于Cassandra提供的隔离保证,我们无法确定更新后的行的最终状态。
从上述陈述中看到的Cassandra数据库中的隔离,我的理解是正确的吗?
1个回答

8
隔离级别指的是在更新期间读取数据时,人们只会看到应用于该行的整个更新或没有更新。例如,如果一行中有“age”和“favorite_color”列,并且正在更新这两列,那么读取者将只能看到旧版本的全部内容或新版本的全部内容。他们不会看到“age”作为旧值,“favorite_color”作为新值的情况。

对一行的写操作[...]在完成之前对其他用户不可见

为了防止同时进行两个更新操作导致的竞态条件,可以使用轻量级事务(先读后写带Paxos回合),其中只有一个写操作会“胜出”,而另一个查询将报告该操作未被应用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接