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

问题描述 投票:0回答:3

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

google-cloud-platform google-cloud-datastore
3个回答
0
投票

Cloud Datastore强制执行可序列化隔离[1]。这意味着每个交易都是连续执行的,没有及时重叠[2],[3]。

根据维基百科的文章,Snapshot isolation

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


0
投票

正如Ivan Prisyazhnyy(OP)指出的那样,Datastore [1]在事务中是Serializable,但在事务外部它是Read Committed,它只能防止Dirty Reads,没有写入偏差异常。

以下是一些如何运作[2]的例子。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.