繁体   English   中英

GAE多租户和交易 - 去

[英]GAE Multitenancy and Transaction - Go

如果我在GAE数据存储区上使用多租户功能,那么每个租户是否也会应用数据存储区事务锁? 或者,如果租户正在使用数据存储区交易,则所有其他租户必须等到租户的交易完成后?

有两点需要注意:

  1. 命名空间是实体密钥的一部分,因此事务仅适用于作为事务一部分的实体。 即使其他名称空间具有相同的ID,它们也不会受到影响。

  2. GAE上的事务不进行锁定,而是使用乐观并发控制 所以事务永远不会阻塞,只是当两个事务在相同的实体上运行时,第二个事务将失败,然后运行时将尝试重复三次。 这种自动重试是您的事务应该是幂等的原因(=多次运行代码应该产生相同的最终结果)。

交易范围仅限于实体组。 命名空间(多租户)不会自己定义实体组。 你需要钥匙(加上潜在的祖先)。

唯一的冲突将是写入同一实体组的多个请求。 使用的命名空间在租户之间不可能发生。

https://developers.google.com/appengine/docs/go/datastore/entities#Go_Ancestor_paths

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM