我看到了这个文档(https://cloud.google.com/firestore/docs/best-practices#hotspots),它说:
避免对按字母顺序关闭文档的高读写率,否则应用程序将遇到争用错误。此问题称为热点,如果您的应用程序执行以下任何操作,则可以进行热点处理:
以非常高的速率创建新文档,并分配自己的单调递增ID。
云修复使用分散算法分配文档ID。如果使用自动文档ID创建新文档,则不应在写入时遇到热点。
在很少文档的集合中以高速率创建新文档。
以非常高的速率创建具有单调递增字段(如时间戳)的新文档。
以高速率删除集合中的文档。
以非常高的速率写入数据库,而不逐渐增加通信量。
当许多用户同时创建文档时,会出现高速率吗?还是说通过运行for或while(roop)语句来创建文档?
发布于 2019-11-21 20:35:20
当许多用户同时创建文档时,
会发生高速率吗?还是说通过运行for或while(roop)语句来创建文档?
在某些情况下,这两种方法都可以以较高的写入速率触发热点。与写入的来源相比,更重要的是写入的速度、如何分配文档is以及是否在单调地增加或减少字段。
本文详细介绍了时间戳的情况,并描述了一个解决办法:https://cloud.google.com/firestore/docs/solutions/shard-timestamp
https://stackoverflow.com/questions/58971641
复制相似问题