如果我在 GAE 数据存储上使用 Multi-Tenancy 功能,是否也会为每个租户应用数据存储事务锁?或者,如果租户正在使用数据存储事务,所有其他租户都必须等到租户的事务完成?
最佳答案
需要注意两点:
命名空间是实体键的一部分,因此交易仅适用于属于您的交易的实体。其他命名空间的实体即使具有相同的 ID 也不会受到影响。
GAE 上的事务不进行锁定,而是 they use optimistic concurrency control .所以事务永远不会阻塞,只是当两个事务对同一个实体进行操作时,第二个将失败,然后运行时将尝试重复它最多 3 次。这种自动重试是您的事务应该是幂等的(= 多次运行代码应该产生相同的最终结果)的原因。
关于google-app-engine - GAE Multi-Tenancy 和交易 - Go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185920/