了解实体组限制

Understanding Entity group limitations

我正在尝试了解如何解决 google 数据存储区的两个限制

write throughput limit of about one transaction per second for a single entity group.

All the data accessed by a transaction must be contained in at most 25 entity groups.

假设我想存储用户信息。由于第一个限制,我无法将它们存储在实体组中,因为多个用户可能会同时更新他们的信息。现在,如果我尝试将所有用户保存为根实体,第二个限制是我不能对用户使用任何查询(比如查找年龄 > 10 的用户)。现在我想知道在这样的限制下数据存储是如何使用的。

查询不是事务 - 返回的结果可以分布在任意数量的实体组中。

您误解了第二个限制:当然,您可以查询所有年龄大于 10 岁的用户,只是您不能在事务内执行此操作。

如果一致性很重要,您可以:

  1. 在事务外执行仅键查询
  2. 获取最多 25 个操作键的列表(例如使用 Query Cursors
  3. 在交易中访问(按键)与列表中的键对应的实体 - 这些访问将是一致的