google-app-engine - GAE Multi-Tenancy 和交易 - Go

标签 google-app-engine transactions go google-cloud-datastore multi-tenant

如果我在 GAE 数据存储上使用 Multi-Tenancy 功能,是否也会为每个租户应用数据存储事务锁?或者,如果租户正在使用数据存储事务,所有其他租户都必须等到租户的事务完成?

最佳答案

需要注意两点:

  1. 命名空间是实体键的一部分,因此交易仅适用于属于您的交易的实体。其他命名空间的实体即使具有相同的 ID 也不会受到影响。

  2. GAE 上的事务不进行锁定,而是 they use optimistic concurrency control .所以事务永远不会阻塞,只是当两个事务对同一个实体进行操作时,第二个将失败,然后运行时将尝试重复它最多 3 次。这种自动重试是您的事务应该是幂等的(= 多次运行代码应该产生相同的最终结果)的原因。

关于google-app-engine - GAE Multi-Tenancy 和交易 - Go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185920/

相关文章:

c# - Entity Framework 事务: What is better performance-wise?

http覆盖golang中的http头代码而json编码有错误

session - 在 golang 中检查 HTML 文件中的用户 session

java - 无法从 GAE 的 java mail APi 发送邮件

postgresql - 在 PostgreSQL 中创建一个永不回滚的存储过程?

python - 使用 python ( 谷歌应用程序引擎) 获取上传文件的名称和扩展名

c# - 事务性 CloudBlob

go - Viper AddConfigPath 仅在当前文件夹中查找文件 "."

google-app-engine - 在响应中设置 Access-Control-Allow-Credentials header

google-app-engine - 如何将 `http://` 和 `www.` URL 永久重定向到 `https://`?