Firestore 500+每秒写入一个集合

问题描述 投票:1回答:1

Firestore每秒限制为500次写入

“文档在索引字段中包含顺序值的集合”

https://cloud.google.com/firestore/quotas#writes_and_transactions

在一个集合中,我可以将哪些场景增加到每秒10,000次写入的限制?

假设我使用Best Practices来保持文档ID在整个密钥范围内相对均匀分布。

A)如果文档不包含任何顺序值怎么办?

例如。我在每个文档中的唯一字段如下。

  • 字段A:随机字符串
  • 字段B:随机字符串

B)如果文档包含顺序字段,但我不查询该字段怎么办?

  • 字段A:随机字符串
  • 字段B(顺序):日期

C)如果文档包含字段B中日期的连续字段but I turn off indexing,该怎么办?

  • 字段A:随机字符串
  • 字段B(顺序):日期(自动索引关闭)

C)第2部分 - 如果我关闭索引到该日期字段(这将删除每秒500个限制),如果我将字段C随机添加到集合中的SINGLE文档会发生什么?将这一个带有字段C的文档破坏了每秒10,000个写入限制的集合吗?因为现在Firestore不得不担心任何新Field C的自动索引?

(然后,每次向该集合中的任何文档添加随机字段时都会发生这种情况,因此必须关闭索引到集合中的每个可能字段以删除500ps限制吗?)

database firebase google-cloud-platform google-cloud-firestore autoscaling
1个回答
1
投票

每秒500次写入是对单个服务器可以处理的保守估计。 Cloud Firestore为文档和索引存储执行水平行分片;这意味着使用顺序ID编写的文档或按顺序添加的索引条目将由单个服务器处理。将这些放在一起(每台服务器500次写入+ 1台服务器处理的顺序更新)就是为您提供的限制。

当您具有良好的分布式数据时,我们的水平行分片可以将工作负载拆分为多个服务器。对于Native模式下的Cloud Firestore,这将一直有效,直到达到我们的实时系统的上限,即大约10K写入/秒。对于数据存储模式下的Cloud Firestore,只要您给我们一个抬头(客户可以超过1M写入/秒),就没有实际限制

简而言之,A)和C)将受模式上限(10K或可用容量)的限制。 B)将受到单个服务器可以处理的负载的限制。

对于C2),如果您只是将其添加到单个文档中,则不会产生任何影响。限制完全基于传入负载以及分配给哪些服务器。

© www.soinside.com 2019 - 2024. All rights reserved.