【问题标题】:appengine transaction lock应用引擎事务锁
【发布时间】:2012-01-04 04:59:37
【问题描述】:

我想确定关于 GAE 的 transaction 锁的一件事。在文档中它说:

事务中的所有数据存储操作都必须在 如果事务是单个组,则为同一实体组 交易,....

因此,当 txn 正在运行时,它只会锁定该单个实体组的每个条目,不会锁定事务中使用的模型的每个条目。对吗?

【问题讨论】:

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


    【解决方案1】:

    GAE 使用optimistic locking - 这意味着事务中没有任何内容被锁定,而是检查上次更新时间,如果是在您开始事务的时间之后 - 它会抛出异常(并回滚您的数据)。它在'What Can Be Done In a Transaction'中描述

    【讨论】:

    • 但要回答原始问题,无论措辞如何:争用仅适用于同一实体组中的实体,而不是给定模型的所有实体,是的。
    • 'What Can Be Done In a Transaction' 链接已失效,无法在任何地方找到对 google 数据存储基于时间戳的乐观锁定的任何引用,开始怀疑它是否还能做到
    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多