cat case/PM-2015-0025.md

AWS DynamoDB 2015-09-20 GSI 新负载致元数据响应超时,部分服务停止接受请求

P1 · DynamoDB 部分表写入/读取错误率升高,依赖的 AWS 内部与外部服务受影响

summary

2015-09-20,DynamoDB 上一项新的工作负载被加到一个全局二级索引(GSI),使该索引背后的元数据/存储服务请求量超过其处理能力,出现响应超时。部分表/分区因此无法在时限内接受新请求,依赖这些表的 AWS 内部服务与外部客户调用出现错误率升高。

timeline

新 GSI 负载上线后,相关元数据服务逐步出现超时;受影响的表错误率上升,部分写入被拒绝。AWS 通过限流保护与扩容缓解,相关表在一段时间后恢复接受请求。

root_cause

单个 GSI 的新负载使底层元数据服务的容量被突破,而该服务是请求路由与分区管理的关键,容量不足直接转化为请求被拒。

amplifiers

① 共享元数据服务成瓶颈:GSI 负载集中冲击同一控制面。② 容量评估不足:新负载未充分预演对元数据的压力。③ 错误被转化为拒绝:超时即拒绝请求,用户侧感知为服务不可用。④ 影响外溢:依赖表的服务连锁。

mitigation

对受影响 GSI/表做限流保护与后端扩容;优化元数据服务的容量模型。后续 AWS 强化 GSI 的容量规划与全局二级索引的隔离。

lessons

共享控制面需按最坏负载做容量规划;GSI 等新负载上线前做容量预演;关键服务对超时做优雅降级而非简单拒绝;加强容量监控。

checklist

① 元数据/控制面按峰值负载留余量。② GSI 上线前做容量压测。③ 超时请求做限流+优雅降级。④ 增加控制面容量实时告警。