Dynamo DB中的热分区问题与新的按需功能一起消失了吗?

时间:2018-12-05 11:59:11

标签: amazon-web-services amazon-dynamodb

我很感兴趣地阅读了以下公告。

https://aws.amazon.com/about-aws/whats-new/2018/11/announcing-amazon-dynamodb-on-demand/

新的“按需”功能确实有助于容量规划。阅读文档,我真的看不出来他们是否做了一些“魔术”来解决热分区和分区密钥分发的问题。

如果按需配置表,分区键设计是否同样重要?

4 个答案:

答案 0 :(得分:1)

是的,分区键设计同样重要。那方面没有改变。

由于您在评论中提到了自适应能力,因此请确保一件事很明确。一旦打开了表,它就打开了,并且DynamoDB正在监视您的表。

答案 1 :(得分:1)

这里有两个功能: *按需容量模式 *适应能力

按需容量模式使您可以为每个请求支付给DynamoDB,而不是预配一定数量的RCU / WCU(这称为预配置容量)。好处是您只为使用的内容付费(而不是为提供的内容付费),但缺点是,如果收到的请求量持续不断,那么如果您提供了适当数量的RCU / WCU,最终您将需要支付更多费用。按需容量模式最适合尖峰流量,而预配置模式更适合具有恒定,可预测请求流的应用程序

自适应容量是一项不同的功能,它可以与按需容量模式或预配置容量模式一起使用。如果您的一个分区收到更高份额的请求,则可以从其他分区“借用”未使用的容量。过去曾经需要一段时间才能启用自适应能力,但到目前为止,自适应能力会立即启用。

即使具有自适应能力,良好的密钥设计仍然很重要。它仅在难以在分片之间实现请求的均衡分配的情况下才有用。 DynamoDB中的单个分区最多只能处理3K RCU和1K WCU。因此,如果单个分区收到的容量甚至更多,即使具有自适应容量,请求也会受到限制。因此,您必须设计密钥来避免这种情况。

答案 2 :(得分:0)

@Glenn首先感谢您提出的重大问题,经过一些研究,我得出的结论是,热分区问题仍然很重要,但是只要dynamo db能够检测到您有热分区,它就只需要5-30分钟dynamo db将使用自适应容量和自动重新分片等机制,自启动以来dynamo db已有很大改进,现在AWS通过称为自动重新分片的方式处理热分区,我认为自动重新分片在按需模型和置备模型中均有效,但是我找不到为此,我会尽快更新答案以供参考,您可以观看此主题演讲。

AWS reinvent 2018 keynote

答案 3 :(得分:0)

截至5/2019,此问题的答案已更改。我想通过说我没有针对生产工作负载来验证这一点作为开头。我的回答还假设您像OP一样正在使用on-demand pricing

首先,可以通过阅读this来大致了解DynamoDB(DDB)自适应功能的工作原理。自适应容量为on by default。简而言之,当热分区超过其吞吐容量时,DDB会“移动舵”并立即增加该分区的吞吐容量。

在5/2019之前,您有300秒的瞬间burst capacity,然后就会受到限制,直到完全适应容量"kicked in" (5-30 minutes)

2019年5月23日,AWS宣布自适应容量为now instant。这意味着无需再等待5-30分钟。

这是否意味着如果您使用DDB按需定价,您的热分区问题就消失了?是的,没有。

是的,因为您不应受到限制。

否,因为您的银行帐户会受到打击。为了避免受到限制,DDB将按需扩展(现在立即扩展)。您将支付处理吞吐量所需的RCU和WCU。

因此,在道德上,您仍然必须考虑热分区并设计应用程序以尽可能避免它们。您不会在停机时间/客户不满意的情况下付款,而是从利润中付款。