Google App Engine数据存储区中实体组的吞吐量限制究竟是什么?

use*_*609 9 google-app-engine google-cloud-datastore

该文档描述了对数据存储区中实体组的吞吐量的限制,但对于具体的限制是模糊的.我的困惑分为两部分:

1.什么是受限制的?

具体来说,是:

  1. 写入次数?
  2. 写入数据存储区的事务数?
  3. 无论是读取还是写入数据存储区的事务数量?

2.限制的类型是什么?

具体来说,是:

  1. 人为强制执行每秒一次的硬规则?
  2. 根据经验观察到的最大吞吐量,实际上可能更好地基于网络负载等因素?

Jai*_*mez 4

本身没有吞吐量限制,但为了保证事务中的原子性,更新必须序列化并按顺序应用,因此,如果您进行了足够多的更新,事情就会开始失败/超时。这称为数据存储区争用

当单个实体或实体组更新太快时,就会发生数据存储争用。数据存储将对并发请求进行排队以等待轮到它们。超过超时时间在队列中等待的请求将引发并发异常。如果您希望每秒更新单个实体或写入实体组多次,那么最好尽早重新设计您的设计,以避免部署应用程序后可能出现的争用。

为了简单地直接回答您的问题,它具体是每个实体组的写入次数(每秒 5 次左右),这只是一个经验法则,您的里程可能会有所不同(很大)。

有些人报告根本没有争用,而另一些人则遇到每秒超过 1 次更新的问题。正如您可以想象的那样,这取决于操作的复杂性以及执行中涉及的所有机器的负载。