首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有供给能力的DDB节流

具有供给能力的DDB节流
EN

Stack Overflow用户
提问于 2022-02-11 03:05:32
回答 2查看 81关注 0票数 0

我有一个DDB表,我试图从其中删除一半的密钥。我手上有我想要删除的所有密钥,我现在使用8个进程,每个进程有32个线程,每个线程有256个并发性,用于批处理删除密钥。

我一直打油门,所以我把供应能力远远超过我要打的极限,看看这是否有帮助。它没有,而且我仍然受到严重的节流。

我没有热键,贡献者的洞察力显示,我是被勒死在数千个独特的键最多3-4节流阀事件为顶部节流键。

我确实有一个GSI,其中每个主键可能有2-4个主键在另一边。但在GSI上并没有出现节流现象。

知道我为什么还会被勒死吗?

EN

回答 2

Stack Overflow用户

发布于 2022-02-12 21:08:17

每个DynamoDB分区最多支持1000个WCU。如果delete请求没有同等地命中每个分区,那么在到达您的最大配置WCU之前,您将被节流。

您可能没有热键,但仍然可以有热分区。数据在分区之间也可能不均衡,因此,即使是完全统一的键示例,也可能导致对DynamoDB分区的不平衡访问。

票数 1
EN

Stack Overflow用户

发布于 2022-09-13 15:15:24

我们也面临着类似的问题。我们有大约1000个删除请求分裂成每25个项目删除事务。

在提出aws罚单后,这就是我们收到的回应。希望能在某些情况下有所帮助。但对我们的案子没有帮助。为了缓解这一问题,您应该考虑:

在一个事务中跨多个分区设置删除请求,这样您的访问模式就可以均匀地分布在所有partitions.

  • Changing --您的表设计(如果可行的话)。使用复合属性:如果符合您的访问模式,尝试组合多个属性以形成唯一的键。例如,考虑一个orders表,其中customerid+productid+countrycode作为分区键,order_date作为排序键。b.使用高基数属性:这些属性对每个项都有不同的值,如电子邮件on、employee_no、customerid、sessionid、orderid等。3. c.为编写大量的用例3.从预定范围添加随机数字或数字。

参考资料:1有效设计和使用分区键的最佳实践- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html 2设计分区键以均匀分配工作负载- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-uniform-load.html 3选择正确的DynamoDB分区键:https://aws.amazon.com/blogs/database/choosing-the-right-dynamodb-partition-key/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71074878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档