DBAtlas · Atlas für Datenbankbetrieb

version_conflict_engine_exception: version_conflict_engine_exception: [_doc][id]: version conflict, current version [x] is different than the one provided [y] (HTTP 409) (Versionskonflikt)

Elasticsearch

Was bedeutet das?

Eine Update-/Delete-Anfrage für ein Dokument wurde von der optimistischen Nebenläufigkeitskontrolle abgelehnt. Die Dokumentversion (bzw. _seq_no/_primary_term) stimmt nicht mit der in der Anfrage überein; jemand anderes hat das Dokument also nach deinem Lesen geändert. Liefert HTTP 409.

Ursache

Parallele Updates desselben Dokuments, ein Schreibversuch mit veralteter version/seq_no, der Versuch, ein bereits existierendes Dokument anzulegen (op_type=create), oder eine Race Condition bei _bulk.

Lösung

Lies das Dokument erneut und wiederhole die Anfrage mit den aktuellen Werten _seq_no und _primary_term (bzw. version) (Read-Modify-Write-Schleife). Verwende für automatische Wiederholungen den Parameter retry_on_conflict in der _update-Anfrage; übergib bei _update_by_query/_delete_by_query conflicts=proceed, um kollidierende Dokumente zu überspringen und fortzufahren. Ist nur Anlegen beabsichtigt, ist der Konflikt normal; fange 409 in der Anwendung ab und behandle ihn passend (wiederholen oder überspringen).

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank