【问题标题】:Cross Group (XG) Transactions and Further Explanation of use跨集团(XG)交易及进一步使用说明
【发布时间】:2011-10-31 19:14:04
【问题描述】:

GAE 的most recent release 声明了以下更改:

数据存储

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

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

就本次更新而言,编码事务发生了哪些变化?通俗的讲,如何实现跨组事务,数据存储事务还有一些限制需要注意吗?

我知道这是一个相当模糊的问题。我的问题是这听起来很有用,但我不确定如何正确(有效)使用此更改。

【问题讨论】:

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


    【解决方案1】:

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

    从概念上讲,执行跨组事务与典型的 GAE 事务非常相似,只是速度较慢,并且仅在 HRD 中可用。请注意,一般来说,GAE 事务,无论是“正常”还是 XG,都具有不同于您可能习惯来自 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)
    

    【讨论】:

    • 是的,我知道我的 cmets 有点含糊,但这正是我想要的。我现在明白了。
    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 2018-12-24
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2013-09-28
    相关资源
    最近更新 更多