全局二级索引上的限流如何影响我的 Amazon DynamoDB 表?

上次更新日期:2021 年 11 月 5 日

我的全局二级索引 (GSI) 受到限流。这会如何影响基本 Amazon DynamoDB 表?

简短描述

GSI 上的限流会以不同的方式影响基本表,具体取决于限流针对的是读取还是写入活动:

  • 如果 GSI 没有足够的读取容量,则基本表不会受到影响。
  • 如果 GSI 没有足够的写入容量,则基本表或任何 GSI 上的写入操作均不会成功。

有关更多信息,请参阅在 DynamoDB 中使用全局二级索引

解决方法

要防止限流,请执行以下操作:

  • 请确保每个 GSI 的预置写入容量等于或大于基本表的预置写入容量。要修改 GSI 的预置吞吐量,请使用 UpdateTable 操作。如果已在基本表上启动了弹性伸缩,则最好对 GSI 应用相同的设置。您可以通过在 DynamoDB 控制台中选择 Copy from base table(从基本表中复制)来执行此操作。为获得最佳性能,请务必开启对所有全局二级索引使用相同的读/写容量设置。此选项可使 DynamoDB 弹性伸缩统一扩展基本表上的所有全局二级索引。有关更多信息,请参阅在现有表上启用 DynamoDB 弹性伸缩
  • 请确保 GSI 的分区键尽可能地在分区之间平均分布读取和写入操作。这有助于防止分区过热,导致限流。有关更多信息,请参阅设计分区键以均匀分布您的工作负载
  • 使用适用于 DynamoDB 的 Amazon CloudWatch Contributor Insights 来标识最常限流的键。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?