Dynamodb 什么是 WCU 和 RCU?

Dynamodb what are WCU and RCU?

看了很多文章,还是搞不懂WCU和RCU是什么意思。 Dynamo 提供以下免费等级:

“每秒 25 次读写”是什么意思?我有一个从 Dynamo 读取的带有 API 的 Web 应用程序。这是否意味着它每秒只能处理 25 个查询和写入?如果是,如果我们在一秒钟内收到 26 个读取请求会怎样?

我很困惑,希望得到一个使用网络应用程序的真实示例的解释。

如您所说,RCU 和 WCU 测量每秒(分别)读取和写入的次数。然而,出于显而易见的原因,执行 10 字节读取与读取整个数据库的计费不同——一个 RCU 最多读取 4KB,更大的读取计为多次读取。 WCU 使用较小的量程 (1KB)。您应该知道的另一件事是,最终一致性 读取算作半个 RCU,事务性 读取算作两个 RCU。例如参见 [​​=11=].

你的下一个问题是,如果你提供(即使用“预配置”计费模式)25 个 RCU,然后尝试每秒发出 26 个请求,会发生什么情况。好吧,首先,25 不是硬 per-second 限制,而是平均限制。如果你在前一秒使用了 0 个 RCU,亚马逊 让你在一秒内使用 50 个 RCU。关于这种平均是如何发生的以及它的周期是什么的细节不是 public,但众所周知,亚马逊过去曾收到投诉,称人们为 25 个 RCU 付费,但在 1000 秒内没有获得 25,000 次读取,他们对这些投诉采取了行动,现在您应该能够 long-term 平均每秒读取 25 次。

现在,对于 return 你的问题,如果你始终尝试仅使用 25 个已配置的 RCU 每秒发送 26 次读取会发生什么,那么,你的一些请求将失败并显示 ProvisionedThroughputExceededException。在这种情况下,Amazon 的客户端库将自动返回并重试请求。因此,如果您正在使用这样的库,在您看来您的请求会变慢,直到您每秒收到恰好 25 个响应,并且所有请求都会成功。这也在我上面给出的相同 link 中进行了解释。