了解实体组限制
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 岁的用户,只是您不能在事务内执行此操作。
如果一致性很重要,您可以:
- 在事务外执行仅键查询
- 获取最多 25 个操作键的列表(例如使用 Query Cursors)
- 在交易中访问(按键)与列表中的键对应的实体 - 这些访问将是一致的
我正在尝试了解如何解决 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 岁的用户,只是您不能在事务内执行此操作。
如果一致性很重要,您可以:
- 在事务外执行仅键查询
- 获取最多 25 个操作键的列表(例如使用 Query Cursors)
- 在交易中访问(按键)与列表中的键对应的实体 - 这些访问将是一致的