2012-01-04 76 views
0

我要确保一件事的transaction锁GAE的。在本文档中它说:的AppEngine事务锁

在交易必须 如果交易是一个组 交易相同的实体组的实体操作的所有数据存储区操作,....

因此,尽管一个txn正在运行,它只会锁定该单个实体组的每个条目,不会锁定事务中使用的每个模型条目。这样对吗?

回答

3

GAE使用optimistic locking - 这意味着在事务中没有任何东西被锁定,而是检查最后一次更新时间,如果它是在你开始事务之后 - 它会抛出异常(并回滚你的数据)。它在“What Can Be Done In a Transaction

+2

但要回答原来的问题描述,但是misphrased:争只适用于实体相同的实体组中,没有一个给定的模型的所有实体,是的。 – 2012-01-04 05:43:39

+0

哦,是的,your're吧,我已经错过了这个 – 2012-01-04 05:49:19

+0

“什么可以做在一个事务”链接是死的,找不到任何引用的任何地方,以谷歌数据存储的基于时间戳的乐观锁,甚至开始,如果它不知道它已经不再是 – 1977 2017-03-17 04:26:57