DBAtlas · Atlas de operaciones de bases de datos

257 TransactionTooLarge: TransactionTooLarge

MongoDB

¿Qué significa?

Una transacción multidocumento superó los límites de tamaño/número de operaciones permitidos. La transacción se rechazó porque los cambios acumulados en ella (entrada de oplog o uso de memoria) superaron el límite superior.

¿Por qué ocurre?

Modificar/insertar un gran número de documentos en una sola transacción elevó demasiado el total de datos producidos por la transacción (p. ej., el volumen de cambios que deben mantenerse en la caché de WiredTiger, o límites del servidor como transactionLimitBytes). Desde 4.2 una transacción puede repartirse en varias entradas de oplog, por lo que el límite de 16 MB por entrada de oplog no es decisivo por sí solo. Usar transacciones para migraciones masivas de datos/ETL alcanza fácilmente este límite.

Cómo solucionarlo

Divida la transacción en partes más pequeñas; confirme cada lote en una transacción aparte. Las transacciones multidocumento están pensadas para ser cortas y pequeñas; es preferible hacer las actualizaciones masivas grandes sin transacciones (de forma idempotente, fragmento a fragmento) o dividirlas con bulk write. Evite modificar miles de documentos en una sola transacción.

Abrir en DBAtlas →

Más entradas de este motor