【发布时间】:2016-10-06 15:02:29
【问题描述】:
我有一个游戏,其中用户联系服务器以查找想要玩游戏的同级别用户。这是游戏请求的基本架构。
我正在使用ndb 在 Google DataStore 中为每个用户级别存储一个等待队列。
我通过它们的键访问这些队列以确保强一致性(根据this article)。实体使用重复的(列表)LocalStructuredProperty 存储在队列中。
问题:
- 一个实体被从等待队列中删除,因为它与一个请求相匹配。事务已提交但尚未应用。同一实体与另一个请求匹配并被删除。这会引发错误吗?
- 这些高度一致的访问被限制为 ~1 写入/秒。有没有更好的架构可以消除这种限制?
我为后一个问题考虑的一件事是维护多个队列(其数量随需求而增长和缩小)。
【问题讨论】:
标签: python google-app-engine google-cloud-datastore app-engine-ndb