【问题标题】:Does a cross-entity-group (XG) transaction incur overhead when it in fact only hits one entity group?当跨实体组 (XG) 事务实际上只针对一个实体组时,它是否会产生开销?
【发布时间】:2011-11-01 03:21:40
【问题描述】:

App Engine 最近宣布支持Cross Group (XG) transactions;人们会期望这些事务在跨多个实体组使用时会产生额外的开销,但如果我指定我想要在事务开始时进行 XG 事务,但实际上只访问一个实体组,我会看到显着的性能影响吗?

我问是因为 JDO 要求在持久性管理器级别指定 XG-ness,并且为所有事务打开它会更简单(我只在少数情况下需要它)......

【问题讨论】:

    标签: performance google-app-engine transactions


    【解决方案1】:

    来自官方文档:

    仅涉及单个实体组的 XG 事务的行为类似于 单组交易。此类事务中的操作具有 与同等单组相同的性能和成本 关于计费和资源使用的交易,但会 体验更高的延迟。

    来源: https://developers.google.com/appengine/docs/python/datastore/overview

    【讨论】:

    • 有人有jdo案例的示例代码来更新多个实体吗?
    【解决方案2】:

    如果是这种情况,则没有记录或定义,但最安全的做法是假设所有事务都存在开销。

    如果您担心开销,您可能不应该使用 JDO,因为创建 PersistenceManager 本身就有很多开销。

    【讨论】:

    • 是的,在仔细研究了 JDO 的混乱之后,我最终切换到了 Objectify :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 2021-08-28
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多