Per*_*on1 5 database amazon-web-services nosql amazon-dynamodb devops
我目前正在研究 DynamoDB 的按需设置。我们偶尔会在高流量高峰期间看到一些限制,它跨越所有索引,因此不特定于某个分区。所有与按需容量模式相关的 DynamoDB 文档似乎都表明,一旦设置了新的峰值使用量,它基本上就无限期地达到峰值。我的假设是否正确,还是在一段时间后它会重置/缩小?是否有任何地方记录了按需容量模式的发电机扩展的内部结构?
我想通过配置任意高容量并切换回按需容量模式来预热我的低容量表,只是想最终发现该策略会随着时间的推移而持续下去吗?
这些文档确认了您对 DynamoDB 如何在按需容量模式下进行扩展的理解(重点是我的):
\n\n\n峰值流量和扩展属性
\n[...]按需容量模式可立即容纳桌子上之前峰值流量的两倍。例如,如果您的应用程序\xe2\x80\x99s 流量模式在每秒 25,000 次和 50,000 次强一致性读取之间变化,其中每秒 50,000 次读取是之前的流量峰值,则按需容量模式会立即容纳高达 100,000 次读取的持续流量第二。如果您的应用程序维持每秒 100,000 次读取的流量,该峰值将成为您之前的新峰值,从而使后续流量达到每秒 200,000 次读取。
\n如果您需要的表数量是先前峰值的两倍以上,DynamoDB 会随着您的流量增加而自动分配更多容量,以帮助确保您的工作负载不会受到限制。但是,如果您在 30 分钟内超过之前峰值的两倍,则可能会发生限制。例如,如果您的应用程序\xe2\x80\x99s 流量模式在每秒 25,000 次到 50,000 次强一致性读取之间变化,其中每秒 50,000 次读取是之前达到的流量峰值,DynamoDB 建议将流量增长间隔至少 30 分钟,然后再推动更多流量增长每秒读取次数超过 100,000 次。
\n
关于为新表设置初始峰值的策略,首先将它们部署在预配置容量模式和较大的 RCU/WCU 值中,然后将其切换到按需模式 - 这也是可行的。通过将前一个峰值的起始值设置为 RCU/WCU 的一半,它会自动允许相同的吞吐量,并且由于始终支持该数字的两倍,因此您可以保留容量。
\n文档没有明确指出它会无限期地保持这种状态,但他们也没有谈论缩小规模。在实践中我也没有看到这种情况发生。根据我的经验,AWS 不会在文档中遗漏这样的内容。
\n基于 DynamoDB 的架构,这也是不可能的,AWS 在re:invent 2018 的这个非常酷的技术演讲中解释了这一点。DynamoDB 可以扩展分区,并且表的分区数量只会增加。每个存储分区都能够:
\n一旦达到这些限制中的任何一个,就会发生分区拆分 - 创建两个新分区并将数据分布在它们之间。这种情况会根据需要多次发生,直到可以容纳新配置的参数(RCU、WCU、存储)为止。
\n虽然没有明确说明,但由于您几乎可以立即从按需容量更改为预配置容量,反之亦然,因此可以公平地假设底层架构相同或至少非常相似,但计费方式不同模型在其之上。
\n由于分区数量始终只能增加,因此峰值容量不太可能下降。
\n话虽这么说:它不是已发布 API 的一部分,并且被视为实现细节,因此不能保证或承诺它将始终保持这样。
\n 归档时间: |
|
查看次数: |
4612 次 |
最近记录: |