【问题标题】:Cloud Firestore - write indexing rate limit on compound indexesCloud Firestore - 对复合索引写入索引速率限制
【发布时间】:2020-01-30 01:45:17
【问题描述】:

在 Cloud Firestore 'Usage and Limits' documentation 中,将文档写入单个集合(考虑到顺序索引)的规定速率限制如下:

文档在索引字段中包含顺序值的集合的最大写入速率:每秒 500 个

我了解此限制是由于创建顺序索引时出现“热点”。

我的问题是:如果我禁用集合中所有顺序字段的索引(例如timestamp)并且只使用复合索引(例如[user_id, timestamp]),那么速率限制是否仍然适用于整个timestamp 字段集合还是仅在特定的user_id 内?

【问题讨论】:

标签: firebase google-cloud-firestore


【解决方案1】:

这个解决方案似乎缓解单个集合的速率限制,正如 Firebase 官方工作人员 hereexample solution provided for sharding timestamps 所提到的那样。

解决方案的精髓在于确保被索引的顺序值分散在多个数据库分片中。这是因为相邻的顺序值倾向于集群到单个内部数据库机器,当在短时间内对单个机器发生太多写入时,会强制进行限制。

在对顺序值进行索引之前有一个前缀(这可以使用复合索引来实现)确保这些索引在内部机器之间进行分区(假设方差显示在复合索引的第一部分)。然后可以通过给定复合索引前缀内的写入来确定速率限制,而不是全局地在集合中。

【讨论】:

猜你喜欢
  • 2019-05-16
  • 2019-06-19
  • 1970-01-01
  • 2021-06-26
  • 2020-01-26
  • 1970-01-01
  • 2018-10-08
  • 2011-07-07
  • 1970-01-01
相关资源
最近更新 更多