Google Firestore可扩展性限制

时间:2019-10-03 16:29:26

标签: google-cloud-firestore

根据Google Firebase文档,Firestore每个数据库最多支持1,000,000个并发连接和每秒10,000次写入。我们已经进行了可伸缩性测试,以检查Firestore对于我们的解决方案是否可行,并且在针对40K样本的写入操作过程中遇到了“连接至firebase.googleapis.com:443:连接超时”之类的错误,“ firestore.googleapis.com:443” 40K采样写入期间,“:未能响应”。想了解Firestore的限制及其可扩展性

运行JMeter脚本以将数据写入连接到有线网络的多台VM和PC上的Firebase(购买Firestore Blaze Plan进行测试),以检查可伸缩性。 JMeter脚本使用REST API PATCH将数据写入Firebase,PC / VM上的每个脚本在5分钟内写入5K数据。共有8台PC / VM,可将40K数据写入Firebase。在此期间,我们还每天5分钟2次获取500条记录。在此测试中,我们正在尝试Firebase故障

对于40K样本的写入操作期间,错误为“连接到firebase.googleapis.com:443:连接超时”,“ firestore.googleapis.com:443:无法响应”和重置连接。

1 个答案:

答案 0 :(得分:0)

您是否正在考虑针对特定操作的其他限制?

根据https://firebase.google.com/docs/firestore/quotas

例如,对于写操作:

  • 每个数据库每秒最大写入数= 10,000(每秒高达10 MiB)
  • 最大文档写入速率=每秒1次
  • 文档在索引字段中包含顺序值的集合的最大写入速率=每秒500个
  • 可以传递给Commit操作或在事务中执行的最大写入次数= 500

在GET操作过程中,您有以下限制:每个请求最大的exist(),get()和getAfter()调用次数:

10用于单文档请求和查询请求。 20用于多文档读取,事务处理和批量写入。先前的限制10也适用于每个操作。

例如,假设您创建一个具有3个写入操作的批处理写入请求,并且您的安全规则使用2个文档访问调用来验证每个写入。在这种情况下,每次写入使用其10个访问调用中的2个,而批量写入请求使用其20个访问调用中的6个。

超过任何一个限制都会导致权限被拒绝错误。

某些文档访问调用可能会被缓存,并且缓存的调用不计入限制。

我认为某些参数可能会导致这些连接中断。