了解Cassandra Db中的分离

Yug*_*ngh 3 database isolation cassandra nosql cassandra-3.0

根据Cassandra文档,Cassandra中的隔离提供了行级隔离.这意味着对单个节点上单个分区内的行的写入仅对执行操作的客户端可见.

现在我假设在cassandra docs中写入它们意味着插入和更新.

我的问题是:

考虑我正在更新行的情况,同时其他用户也在更新同一行.现在由于Cassandra提供的隔离保证,我们无法确定更新行的最终状态.

从上面的陈述中可以看出我对Cassandra db中隔离的理解是否正确?

Chr*_*ink 6

隔离意味着在更新期间读取时,人们会看到应用该行的整个更新或者没有.即如果行中的a agefavorite_color列,并且它们正在更新两列,那么阅读的人将看到整个旧版本或整个新版本.他们不会看到age旧的价值和favorite_color新版本.

写入行[...]在任何其他用户完成之前是不可见的

为了防止两个更新者同时写入的竞争条件是一个不同的问题,可以通过轻量级事务解决(在使用paxos round写入之前读取),其中只有一个写入将"获胜"而另一个查询将报告它未被应用.