Firestores 10 000 writes/second 限制
Firestores 10 000 writes/second limitation
我目前正在使用 firestore 构建应用程序。 Google 一直在推广 firestore 的可扩展性,但我认为 10 000 writes/second limit 不符合这一承诺。如果您将用户喜欢、通知和不在 firestore 中的内容存储起来,我想您很容易超出该限制。有什么我想念的吗?此限制仅适用于新文档还是也适用于文档更新?
提前致谢。
我不熟悉 GCP 产品,但我使用其他云的经验告诉您可以执行以下操作:
- 确保您选择了正确的数据库。从描述来看,听起来您需要一个具有自动分区和最终一致性的 NoSQL 数据库。
- 文档说 "Standard Limits" 意味着您可以联系可能会扩展限制的技术支持。至少 Azure 是这样工作的。
- 云供应商提供咨询以确保他们的客户成功使用这些技术。你有这样的渠道吗?你和你的 CTO 谈过了吗?
- 如果 GCP 服务不能满足您的要求,您可以查看可以使用 GKE 在云中托管的其他数据库引擎。初始设置和运营的成本较高,但从长远来看是值得的。例如。我接受了这个想法,并在 Azure 中托管了 ElasticSearch,事实证明,与可用的替代方案相比,这是最好的决定。
这些提示可能无法完全回答您的问题,但我希望分享我的经验可能有助于找到整体解决方案。
Firestore 专为高度可扩展的 read 操作而设计。具体来说,它的主要成名之处在于 运行 无论您正在查询的集合中有多少数据,特定查询都将花费固定的时间。因此,如果您从包含 10K 文档的集合中读取 10 份文档并且需要(比如说)1 秒,那么当有 10M 文档或 10B 文档时,您可以保证相同的读取(在相同的客户端条件下)将花费 1 秒在该集合中。
Cloud Firestore 的写入 吞吐量限制主要由物理限制决定。 10K documents/sec 是一个,但您更有可能遇到每秒大约一次写入每个文档的限制。这些限制的原因在于 Firestore 的其他保证。例如:Firestore 保证你写操作的即时一致性;这样一旦写操作完成,没有客户端会从服务器获取旧数据。为了做到这一点,它必须在确认写入之前更新多个数据中心数据的所有索引,这只需要一定的时间,这反过来又会导致它对写入吞吐量的限制。同样,这些选择还有其他限制。
如果您需要更高的写入吞吐量并愿意接受不同的性能保证,您可能希望寻找另一个满足这些需求的数据库。
我目前正在使用 firestore 构建应用程序。 Google 一直在推广 firestore 的可扩展性,但我认为 10 000 writes/second limit 不符合这一承诺。如果您将用户喜欢、通知和不在 firestore 中的内容存储起来,我想您很容易超出该限制。有什么我想念的吗?此限制仅适用于新文档还是也适用于文档更新?
提前致谢。
我不熟悉 GCP 产品,但我使用其他云的经验告诉您可以执行以下操作:
- 确保您选择了正确的数据库。从描述来看,听起来您需要一个具有自动分区和最终一致性的 NoSQL 数据库。
- 文档说 "Standard Limits" 意味着您可以联系可能会扩展限制的技术支持。至少 Azure 是这样工作的。
- 云供应商提供咨询以确保他们的客户成功使用这些技术。你有这样的渠道吗?你和你的 CTO 谈过了吗?
- 如果 GCP 服务不能满足您的要求,您可以查看可以使用 GKE 在云中托管的其他数据库引擎。初始设置和运营的成本较高,但从长远来看是值得的。例如。我接受了这个想法,并在 Azure 中托管了 ElasticSearch,事实证明,与可用的替代方案相比,这是最好的决定。
这些提示可能无法完全回答您的问题,但我希望分享我的经验可能有助于找到整体解决方案。
Firestore 专为高度可扩展的 read 操作而设计。具体来说,它的主要成名之处在于 运行 无论您正在查询的集合中有多少数据,特定查询都将花费固定的时间。因此,如果您从包含 10K 文档的集合中读取 10 份文档并且需要(比如说)1 秒,那么当有 10M 文档或 10B 文档时,您可以保证相同的读取(在相同的客户端条件下)将花费 1 秒在该集合中。
Cloud Firestore 的写入 吞吐量限制主要由物理限制决定。 10K documents/sec 是一个,但您更有可能遇到每秒大约一次写入每个文档的限制。这些限制的原因在于 Firestore 的其他保证。例如:Firestore 保证你写操作的即时一致性;这样一旦写操作完成,没有客户端会从服务器获取旧数据。为了做到这一点,它必须在确认写入之前更新多个数据中心数据的所有索引,这只需要一定的时间,这反过来又会导致它对写入吞吐量的限制。同样,这些选择还有其他限制。
如果您需要更高的写入吞吐量并愿意接受不同的性能保证,您可能希望寻找另一个满足这些需求的数据库。