【发布时间】:2020-05-16 00:33:03
【问题描述】:
我创建了新的 Google Cloud Platform 项目和 Datastore。
Datastore 被创建为“Datastore 模式下的 Firestore”。
但是,如果发生冲突,我认为 Firestore 数据存储和旧数据存储的行为会有所不同。
例如以下情况。
procA: -> enter transaction -> get -> put -----------------> exit transaction
procB: -----> enter transaction -> get -> put -> exit transaction
旧数据存储;
- procB 已完成,数据已更新。
- procA 发生冲突,数据已回滚。
Datastore 模式下的 Firestore;
- procB 在退出事务之前等待,直到 procA 完成。然后发生冲突。
- procA 已完成,数据已更新。
是规格吗? 我在 Google Cloud Platform 文档中找不到文档。
【问题讨论】:
-
@DanCornilescu 你谈到的帖子是关于“尽管 entityGr 与 ndb 中的 Gr 不同,但发生冲突”。我认为这是另一个话题。我的结果是使用 google-client library.Conflict如果 entityGr 不是 sameGr,则不会发生。
-
没错。 不应该存在冲突,但报告的行为似乎会存在冲突。该解释一旦找到,可能也适用于您的案例。
-
您使用的是python2 ndb client 还是cloud ndb?
-
我正在使用python client library。我认为 GUI GCP 控制台的行为似乎相同。(在客户端库的事务中获取 & 放置 & 睡眠,然后 GUI 编辑正在等待。旧数据存储不等待。)
-
来自 GUI 等待的好提示 - 我认为这表明行为更改来自数据存储端,而不是客户端,因此与其他帖子无关。
标签: google-cloud-platform google-cloud-firestore google-cloud-datastore