DBAtlas · Atlas für Datenbankbetrieb

257 TransactionTooLarge: TransactionTooLarge

MongoDB

Was bedeutet das?

Eine Multi-Document-Transaktion hat die erlaubten Limits für Größe/Operationsanzahl überschritten. Die Transaktion wurde abgelehnt, weil die darin angesammelten Änderungen (Oplog-Eintrag oder Speichernutzung) die Obergrenze überschritten haben.

Ursache

Das Ändern/Einfügen einer großen Zahl von Dokumenten in einer einzigen Transaktion hat die von der Transaktion erzeugte Datenmenge zu stark anwachsen lassen (z. B. das Volumen der Änderungen, das im WiredTiger-Cache gehalten werden muss, oder Serverlimits wie transactionLimitBytes). Seit 4.2 kann eine Transaktion auf mehrere Oplog-Einträge verteilt werden, daher ist das 16-MB-Limit für Oplog-Einträge allein nicht entscheidend. Transaktionen für Massendatenmigration/ETL zu nutzen, erreicht dieses Limit leicht.

Lösung

Teile die Transaktion in kleinere Stücke auf; committe jeden Batch in einer eigenen Transaktion. Multi-Document-Transaktionen sind für kurze, kleine Vorgänge gedacht; führe große Massenupdates bevorzugt ohne Transaktionen durch (idempotent, blockweise) oder teile sie per Bulk Write auf. Vermeide es, Tausende Dokumente in einer einzigen Transaktion zu ändern.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank