一致性
GAE 上的事务隔离是快照隔离。在事务开启后,可以把事务中操作的实体组看作是该实体组在数据存储中的一个带有版本的快照。
事务中的所有操作都将只针该快照进行,并且事务中的查询操作只能获取到事务开启时快照中的实体。这一点前面已经提到过 ;-)
快照隔离的最终目的就是乐观并发控制,保证一致性。
可用性
GAE 一直在限制事务内只能操作同一个实体组是有原因的。同一实体组将被存储在同一 Google 分布式存储单元中,如果事务中
同时操作多个实体组,失败的可能性会增加很多。所以为了保证可用性,才做出了这个限制。
不过这个限制即将为可选的,SDK 1.5.3 里面已经加入了事务配置,可以让事务操作多个实体组。不过目前经测试,1.5.3 里面还不可用。