我的预配置Dynamodb吞吐量支持每秒多少个请求

时间:2019-08-13 23:58:42

标签: amazon-dynamodb

在阅读了有关Dynamodb的一些文档和博客之后,我仍在努力了解RCU和WCU的工作原理。

我部署了一个带有5个RCU的表。该表上的请求主要是GetItem请求,平均响应有效载荷为7KB。我知道不是要测量的有效负载大小,而是读取操作期间消耗的数据大小。但是,仅假设它消耗了相似的数据大小。

从Dynamodb文档中,每个配置的RCU最多可支持4KB的一致读取 因此,据我了解,我的预配置吞吐量可以支持每秒高达20KB的速度而不会受到限制。

基于此,如果我的平均有效负载为7KB, 我说对了,我的表可以支持大约每秒2个请求吗?

如果有人能对此有所了解,将不胜感激。

1 个答案:

答案 0 :(得分:1)

TD; LR

是的,您是正确的

更多详细信息

您可能已经知道其中一些内容,但是为了完整起见并为他人提供帮助,我将详细介绍一下:

  • RCU 是读取容量单位
  • WCU 是写入容量单位

  • 最终一致的读取:如果最新的写入尚未在所有地方复制,您可能会获得过时的数据。

  • 高度一致的读取结果:您始终可以获得最新数据。
  • 事务性读取:您正在将其作为DynamoDB事务的一部分进行读取。

单位不等于每秒请求数。根据您阅读的内容和方式,有不同的性能配置文件。我会解释。

读取效果

共有3种读物:高度一致,事务性和最终一致。它是这样的:

每4Kb返回的数据块(可能是数据库中的多行):

  • 最终一致:1个RCU每秒可读取2个块
  • 高度一致:1个RCU每秒可读取1个块
  • 事务性:2个RCU每秒可读取1个块

因此,在您的示例中,您的项目约为7Kb,并且您要进行高度一致的读取,因此,需要2个RCU才能每秒读取1个项目。由于您已设置了5个RCU,因此您是正确的,并且可以预期每秒读取2次。

如果要从数据库中榨取更多汁,请注意要返回多少数据。我认为,如果您的平均物品大小为7Kb,这有点令人担忧。您可能要考虑使用对象存储,并在dynamodb中存储对有效负载的引用,而不是有效负载本身。我想这取决于您存储的内容和用例。这可能是合法的,但听起来有点可疑。