我有一个DDB表,我试图从其中删除一半的密钥。我手上有我想要删除的所有密钥,我现在使用8个进程,每个进程有32个线程,每个线程有256个并发性,用于批处理删除密钥。
我一直打油门,所以我把供应能力远远超过我要打的极限,看看这是否有帮助。它没有,而且我仍然受到严重的节流。
我没有热键,贡献者的洞察力显示,我是被勒死在数千个独特的键最多3-4节流阀事件为顶部节流键。
我确实有一个GSI,其中每个主键可能有2-4个主键在另一边。但在GSI上并没有出现节流现象。

知道我为什么还会被勒死吗?
发布于 2022-02-12 21:08:17
每个DynamoDB分区最多支持1000个WCU。如果delete请求没有同等地命中每个分区,那么在到达您的最大配置WCU之前,您将被节流。
您可能没有热键,但仍然可以有热分区。数据在分区之间也可能不均衡,因此,即使是完全统一的键示例,也可能导致对DynamoDB分区的不平衡访问。
发布于 2022-09-13 15:15:24
我们也面临着类似的问题。我们有大约1000个删除请求分裂成每25个项目删除事务。
在提出aws罚单后,这就是我们收到的回应。希望能在某些情况下有所帮助。但对我们的案子没有帮助。为了缓解这一问题,您应该考虑:
在一个事务中跨多个分区设置删除请求,这样您的访问模式就可以均匀地分布在所有partitions.
参考资料: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/
https://stackoverflow.com/questions/71074878
复制相似问题