DynamoDB突发容量和自适应扩展

时间:2019-03-20 14:09:40

标签: amazon-web-services amazon-dynamodb

我正在浏览AWS blog,然后从AWS re:Invent video那里了解DynamoDB的自适应缩放和突发事件的概念。我了解WCU和RCU的概念以及突发存储桶堆积300秒的想法,并且分区的WCU / RCU的峰值为1000/3000。

视频的开始时间23:00:

(1)视频提供了一个示例表,该表配备了500个WCU和1500个RCU。该表具有1个分区。 “假定”不活动5分钟后的突发存储桶将变为500 * 300 = 150K WCU和1500 * 300 = 450K RCU。从那里得出的结论是,现在已经准备好此突发存储桶的这张表可以提供一个分区最多5分钟的持续1K WCU或3K RCU

我们如何得出“持续1K WCU或3K RCU长达5分钟”的数字据我了解,这应该是RCU的计算:450K / 3K = 150秒

(2)再往下,将表分为两个分区后,已配置的WCU / RCU分别在两个分区@ 250/750中平均分配。对于2个分区,峰值RCU翻倍至6K,峰值WCU翻倍至2K,因此他们得出结论,同一突发存储桶现在提供两个分区持续提供2K WCU或6K RCU的持续时间达100秒。 / p>

我们如何得出“持续2K WCU或6K RCU最多100秒”的数字据我了解,这应该是RCU的计算:450K / 6K = 75秒

有任何DynamoDB专家可以帮助得出这个数字吗?

3 个答案:

答案 0 :(得分:0)

  

持续1K WCU或3K RCU长达5分钟

该表仅凭其已配置的容量就可以已经支持500个WCU和1500个RCU。只有超出表的预配容量的使用才消耗突发容量。该表可以从配置的500 WCU到突发的500 WCU = 1K WCU的300 W。

在第二种情况下,问题是相同的。您正在计算450000÷6000,但应该计算450000÷(6000-1500)= 100秒,因为突发容量仅以超额速率消耗。

答案 1 :(得分:0)

<块引用>

每当您没有完全使用分区的吞吐量时,DynamoDB 都会保留一部分未使用的容量,用于以后的吞吐量激增以应对使用高峰。

<块引用>

DynamoDB 目前最多可保留 5 分钟(300 秒)未使用的读写容量。

<块引用>

请注意,这些突发容量详细信息将来可能会发生变化。

来自https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html#bp-partition-key-throughput-bursting

举个例子,假设我用 1RCU 配置了一个最小的 DDB。

我的 RCU 存储桶中的最大容量为 300 RCU 秒。我们知道 1 个 RCU 相当于 2 次 4KB/s 的读取。乘以秒意味着 RCU 秒实际上是 2 次读取 4KB。

我们可以使用这 300 个令牌 (RCU-s) 以我们的表和分区允许的最大速度读取 600 个 4KB 项目、60 个 40KB 项目、6 个 400KB 项目或介于两者之间的任何内容。

>

亚马逊将补货描述为未使用容量的“部分”,但它实际上是任何“未使用的读写容量”。 Rick Houlihan 在 https://www.youtube.com/watch?v=kMY0_m29YzU 中说了同样多的话,套用一句,“如果这张桌子在那里闲置了 5 分钟未使用,最终将有 450k RCU 和 150k WCU”。在我所展示的小表中,它每空闲一秒就有 1 个 RCU-s。

答案 2 :(得分:-1)

(保存5分钟的未使用的WCU / RCU总数)/(((维持的WCU / RCU *分区数)-已配置的WCU / RCU)

单分区:

WCU:15000 /((1000 * 1)-500)= 300秒

RCU:45000 /((3000 * 1)-1500)= 300秒

双分区:

WCU:15000 /((1000 * 2)-500)= 100秒

RCU:45000 /((3000 * 2)-1500)= 100秒