GAE的most recent release指出以下更改:
数据存储
跨组(XG)交易:适用于需要交易写的人
到多个实体组中的实体(就是所有人,对吧?),
XG Transactions就是这样。此功能使用两阶段提交
使跨组写入像单个组写入一样原子。
我想我可以在我不久前创建的项目的代码中使用此更改,但我希望获得有关此App Engine更新的更多信息。我似乎找不到任何其他信息。所以...
关于此更新,编码交易如何更改?用外行的话来说,我该如何实现跨组事务,并且我还需要注意一些数据存储事务的限制?
我知道这是一个相当模糊的问题。我的问题是,这听起来很有用,但是我不确定如何正确(有效)使用此更改。
最佳答案
您阅读过任何文档吗?听起来您还没有(基于您说“我似乎找不到任何其他信息”)。在这种情况下,请查看下面的链接,看看是否还有任何问题。
从概念上讲,进行跨组交易与典型的GAE交易非常相似,只是速度较慢,并且仅在HRD中可用。请注意,一般来说,“普通”事务和XG事务都具有与您习惯于从SQL数据库获得的GAE事务不同的隔离特性。第二个链接在XG部分之后立即讨论。
这是第一个链接的摘录,显示了使用XG可以多么简单。
from google.appengine.ext import db
xg_on = db.create_transaction_options(xg=True)
def my_txn():
x = MyModel(a=3)
x.put()
y = MyModel(a=7)
y.put()
db.run_in_transaction_options(xg_on, my_txn)
quick example
slightly more detail