更新多个表时Cassandra原子批处理中的写入冲突?

更新多个表时Cassandra原子批处理中的写入冲突?,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,有关原子批次的文档说明: 例如,没有批隔离。客户端能够从批中读取第一个更新的行,而服务器上的其他行仍在更新中 但是,当我作为批处理的一部分更新两个不同表中的列时,是否会出现写冲突场景 参考: 例如: 第一批:表1.column=x,表2.column=x 第2批:表1.column=y,表2.column=y 结果(写-写冲突案例):表1.column=x,表2.column=y您引用的引用回答了您的问题: 例如,没有批隔离。客户端能够从批中读取第一个更新的行,而服务器上的其他行仍在更新中 但是

有关原子批次的文档说明:

例如,没有批隔离。客户端能够从批中读取第一个更新的行,而服务器上的其他行仍在更新中

但是,当我作为批处理的一部分更新两个不同表中的列时,是否会出现写冲突场景

参考:

例如:

第一批:表1.column=x,表2.column=x

第2批:表1.column=y,表2.column=y


结果(写-写冲突案例):表1.column=x,表2.column=y

您引用的引用回答了您的问题:

例如,没有批隔离。客户端能够从批中读取第一个更新的行,而服务器上的其他行仍在更新中

但是,一旦批次完全应用,将以正常时间戳解析为准。值为X的两个单元格都有一个时间戳。值为Y的两个单元格将有另一个时间戳。获胜者将是X或Y,但获胜者将是相同的,因为时间戳将是相同的:

批处理语句将多个数据修改语言(DML)语句(INSERT、UPDATE、DELETE)组合到单个逻辑操作中,并为批处理语句编写的所有列设置客户端提供的时间戳


在这种情况下,您是否看到X/Y或Y/X答案取决于读取的一致性级别,以及完全应用批处理所需的时间。

Yep。这是有道理的。我只是想确认一下。谢谢