我正在读一本关于GAE的书。在关于交易的章节中,它说:
更新组中的实体可能会取消另一个进程对组中任何其他实体的更新。您应该设计数据模型,以便实体组不需要同时由许多用户更新。
如果同时更新一个,请特别小心 单个组随着应用程序获得更多用户而增长。在这种情况下, 您通常希望将负载分散到多个实体组中,并且 作为用户群自动增加实体组的数量 增长。像这样的数据资源的可扩展划分被称为 分片。
实体组的常用示例是留言板,其中董事会是属于该董事会的消息的祖先。
但是,如果更新消息(即编辑它)会导致争用,并且更常见的是随着用户群的增长,以电路板为其祖先创建大量消息并不是一件坏事吗?实体组的写入速率限制为每秒1。这是否意味着董事会内的任何信息每秒最多可以更新一次?
此外,仅仅向组添加实体(即发布新消息)也算作“更新”并导致争用吗?
答案 0 :(得分:1)
是的,这样的设计可能被认为是一个糟糕的设计,因为它不能很好地适应用户数量。我无法看出哪些消息需要董事会作为祖先。
是的,在组中创建新实体将计为实体组更新,所有更新都可能导致争用。
附注:您可能会发现此澄清有用:https://stackoverflow.com/a/39309022/4495081(但对于有充分理由使用多实体组的设计)。