DBAtlas · Atlas d'exploitation des bases de données

257 TransactionTooLarge: TransactionTooLarge

MongoDB

Que signifie cette erreur ?

Une transaction multi-documents a dépassé les limites autorisées de taille/de nombre d'opérations. La transaction a été refusée car les modifications accumulées (entrée d'oplog ou utilisation mémoire) ont dépassé la limite supérieure.

Cause

La modification/l'insertion d'un grand nombre de documents dans une seule transaction a fait trop grossir le total des données produites par la transaction (par ex. le volume de modifications à conserver dans le cache WiredTiger, ou des limites serveur comme transactionLimitBytes). Depuis 4.2, une transaction peut être répartie sur plusieurs entrées d'oplog, la limite de 16 MB par entrée d'oplog n'est donc pas à elle seule déterminante. Utiliser des transactions pour une migration de données en masse/de l'ETL atteint facilement cette limite.

Comment la corriger

Découpez la transaction en morceaux plus petits ; validez chaque lot dans une transaction distincte. Les transactions multi-documents sont conçues pour être courtes et petites ; préférez effectuer les grosses mises à jour en masse sans transaction (de façon idempotente, bloc par bloc) ou les découper avec bulk write. Évitez de modifier des milliers de documents dans une seule transaction.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur