Cross Group(XG)交易及进一步使用说明

时间:2011-10-31 19:14:04

标签: python google-app-engine transactions google-cloud-datastore

GAE的most recent release表示以下更改:

  

数据存储

     

Cross Group(XG)交易:适用于需要交易写入的人   到多个实体组中的实体(这是每个人,对吗?),   XG交易就是这样。此功能使用两阶段提交   使交叉组写入原子就像单组写入一样。

我想我可以在我之前创建的项目代码中使用此更改,但我想了解有关此App Engine更新的更多信息。我似乎无法找到任何其他信息。所以......

关于此更新,编码交易有何变化?用外行人的话来说,如何实现跨群交易,我还需要了解数据存储交易的一些限制吗?

我知道这是一个相当含糊的问题。我的问题是这听起来非常有用,但我不确定如何正确(和有效)地使用这种改变。

1 个答案:

答案 0 :(得分:4)

您是否阅读过任何文档?听起来你没有(基于你说“我似乎无法找到任何其他信息”)。在这种情况下,请查看下面的链接,看看是否还有任何问题。

从概念上讲,执行跨组事务非常类似于典型的GAE事务,只是速度较慢,并且仅在HRD中可用。请注意,通常,“正常”和XG的GAE事务具有与您从SQL数据库中使用的不同的隔离特性。第二个链接在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)