DynamoDB LSI colección de elementos Límite de 10 GB
TL;DR: en una tabla con un índice secundario local, una colección de elementos (cada elemento que comparte una clave de partición, más sus proyecciones en el LSI) puede totalizar como máximo 10 GB. Solo las tablas con LSI tienen este límite, porque cada colección de elementos debe caber en una única partición. Una escritura que empujaría una colección a más de 10 GB falla con ItemCollectionSizeLimitExceededException. Supervise ItemCollectionMetrics, vuelva a fragmentar la clave en crecimiento o reemplace el LSI con un GSI (que no tiene tal límite).
Qué significa
ItemCollectionSizeLimitExceededException: Collection size exceeded.Una colección de Items es el conjunto de todos los Items con el mismo valor de clave de partición en la tabla y en todos sus LSI. Cuando una tabla tiene un LSI, DynamoDB almacena cada colección de Items en una única partición, así que la colección está acotada por la capacidad de 10 GB de esa partición. Una tabla sin un LSI no tiene límite de tamaño por colección (y los GSI tampoco tienen ninguno). Así que este error es una señal de que los datos de una clave de partición han crecido sin límite bajo un LSI. Es un HTTP 400; AWS lo lista como reintentable, pero un reintento solo tiene éxito después de que la colección encoja — las lecturas y las escrituras que reducen el tamaño (borrados, recortar atributos) siguen permitidas.
Por qué ocurre
- Una clave de partición sin límite — un inquilino grande, un usuario ocupado o un registro de solo-adición, todos escribiendo bajo una clave.
- El propio LSI — el tope de 10 GB existe solo porque la tabla tiene un LSI (creado en el momento de la creación de la tabla y no eliminable).
- Proyecciones de LSI amplias — proyectar muchos atributos en el LSI infla la colección más rápido.
- Crecimiento constante que se acercó silenciosamente a los 10 GB hasta que una escritura finalmente lo cruzó.
Cómo solucionarlo
- Vuelve a fragmentar la clave de partición. Divide la entidad sobredimensionada entre varias claves (
TENANT#42#1,TENANT#42#2, …) para que ninguna colección crezca sin límite. - Reemplaza el LSI por un GSI. Los GSI tienen su propia clave de partición y ningún límite de tamaño de colección de Items — para la mayoría de los patrones de acceso un GSI encaja mejor, y puede añadirse/eliminarse tras la creación de la tabla (un LSI no).
- Recorta las proyecciones de LSI — proyecta menos atributos (
KEYS_ONLY/INCLUDE) para frenar el crecimiento de la colección si debes mantener el LSI. - Archiva los Items fríos fuera de la colección caliente a una tabla separada o a S3.
- Monitoriza antes de chocar contra el muro. Establece
ReturnItemCollectionMetrics: SIZEen las escrituras (PutItem,UpdateItem,DeleteItem,BatchWriteItem,TransactWriteItems); DynamoDB devuelve una estimaciónSizeEstimateRangeGB, y AWS recomienda alertar en un umbral definido por el usuario (8 GB, por ejemplo) para que actúes antes de los 10 GB.
Desde DynoTable
Encuentra la clave de partición que se acerca a los 10 GB — abre la tabla con ⌘K, ordena por clave de partición y cuenta los Items por colección. La calculadora de tamaño de Item estima el crecimiento cuando unas proyecciones de LSI amplias inflan las colecciones.
Compara el coste de escritura del LSI frente a una migración a GSI con la calculadora de precios. Cambia de perfil con ⌘P; consulta Conectar con AWS e Instalación.
Fuentes
- Local secondary indexes (verificado 2026-07-13)
- PutItem — Amazon DynamoDB API Reference (verificado 2026-07-13)
Errores relacionados
- ItemCollectionSizeLimitExceededException — la misma excepción, con el enfoque general de capacidad.
- Item size has exceeded the maximum allowed size — el tope separado por Item de 400 KB.
- Aprende: Colecciones de Items · GSI vs LSI · Índices
Referencias
- Local secondary indexes — Amazon DynamoDB Developer Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- PutItem — Amazon DynamoDB API Reference
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.