Límites y transacciones largas

Cuánto puede durar y cuánto puede ocupar una transacción.

Ajusta tus transacciones a sus límites de duración y de memoria, o sube el límite de duración si tu caso lo pide.

Requisitos

  • Un usuario con permiso para setParameter si vas a cambiar el límite.

Duración

Una transacción se anula al pasar de transactionLifetimeLimitSeconds, 60 segundos por defecto. Para cambiarlo:

JavaScript
db.adminCommand({ setParameter: 1, transactionLifetimeLimitSeconds: 120 });

Tamaño

El estado de la transacción tiene que caber en la memoria de su coordinador. Una transacción que escribe demasiados documentos falla con TransactionTooLarge (257).

Comprobar

JavaScript
db.adminCommand({ getParameter: 1, transactionLifetimeLimitSeconds: 1 });

getParameter responde con el valor de transactionLifetimeLimitSeconds que está en vigor en el nodo que usa tu sesión, así que ves el límite de vida con el que va a chocar una transacción abierta desde esa sesión.

Problemas frecuentes

  • Una carga masiva dentro de una transacción choca con los dos límites. Haz la carga en lotes fuera de transacción.

Ver también