Google Cloud Datastore中是否可能存在写偏斜异常?

时间:2018-08-02 12:10:08

标签: google-cloud-platform google-cloud-datastore

根据doc关于Google Cloud Datastore中的事务隔离的说法,write-skew anomalies (ssi-vldb12.pdf#2.1.1)必须是可能的。我说的对吗?

3 个答案:

答案 0 :(得分:0)

Cloud Datastore强制执行可序列化的隔离[1]。这意味着每个事务都是按顺序执行的,没有时间[2],[3]重叠。

根据维基百科文章Snapshot isolation

  

在写偏斜异常中,两个事务(T1和T2)同时进行   同时读取重叠的数据集(例如值V1和V2)   进行脱节更新(例如T1更新V1,T2更新V2),最后   并发提交,但都没有看到由   其他。 如果系统可序列化,那么这种异常将是   ,因为T1或T2必须先“发生”,   对其他人可见。相反,快照隔离允许写入   偏斜异常。

答案 1 :(得分:0)

正如Ivan Prisyazhnyy(OP)所指出的,数据存储区[1]是可序列化的内部事务,但是外部事务是可读取的,这只能防止脏读取,没有写偏斜异常。

下面是[2]的一些工作示例。

答案 2 :(得分:0)

我编写了一些测试来证明数据存储事务隔离(sitano/datastore-writeskew)中的写入偏斜和读取偏斜异常。这些测试未能证明预期的行为。数据存储区事务管理器检测到读写冲突,并中止(重启)事务,这些事务至少在所代表的情况下可能会导致这些异常。