我看到了这个文档(https://cloud.google.com/firestore/docs/best-practices#hotspots),上面写着:
避免按字典顺序关闭文档的高读写率, 否则您的应用程序将遇到争用错误。这个问题是 称为热点,您的应用程序可能会遇到热点 是否执行以下任一操作:
以很高的速度创建新文档并分配自己的文档 单调递增的ID。
Cloud Firestore使用分散算法分配文档ID。您 如果您创建新文档,则不应在写入时遇到热点 使用自动文档ID。
在极少的集合中快速创建新文档 文档。
使用单调递增的字段创建新文档,例如 时间戳,而且速率很高。
高速删除集合中的文档。
以极高的速率写入数据库,而不会逐渐 增加流量。
许多用户一次创建文档时,发生率很高吗? 还是在谈论通过运行for或while(roop)语句来创建文档?
答案 0 :(得分:1)
许多用户一次创建文档时,发生率很高吗?还是在谈论通过运行for或while(roop)语句来创建文档?
在某些情况下,任何一种都可以触发高写入率的热点。比写入来自何处更重要的是写入的速度,如何分配文档ID以及是否要单调地增加或减少字段。
本文将详细介绍时间戳情况,并描述一种解决方法: https://cloud.google.com/firestore/docs/solutions/shard-timestamp