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

10-07 20:25