通用并发GAE数据存储区事务

时间:2013-09-04 09:18:05

标签: google-app-engine concurrency transactions google-cloud-datastore objectify

这可能是一个常见的问题,但我仍然不清楚解决方案。我正在使用GAE(数据存储区),与Objectify进行交互。我有一个关于并发的问题。

假设我们有一个对象,我们称之为blarkar。用户'A'启动一个事务,他将尝试从数据库加载blarkar,修改它,并将修改后的版本保存回数据库。

我理解在事务中要么一切都发生了,要么什么也没发生,但我感到困惑的是blarkar对象是否被标记为已检出,以及是否可以或者不能覆盖事务,由用户'A启动', 正在处理。

例如,如果另一个用户,我们称她为'B',尝试将新版本的blarkar保存到数据库中,在用户'A'开始他的交易之后但在他结束之前,她的变化很好当用户'A的交易结束时被覆盖?

同样,我正在使用GAE数据存储区,并与Objectify进行交互。但是,Objectify似乎只是实现了Datastore的事务API。

非常感谢。

1 个答案:

答案 0 :(得分:1)

阅读本文:https://code.google.com/p/objectify-appengine/wiki/Concepts#Transactions

您还可以google for Optimistic Concurrency。