DBAtlas · データベース運用アトラス

version_conflict_engine_exception: version_conflict_engine_exception: [_doc][id]: version conflict, current version [x] is different than the one provided [y] (HTTP 409)(バージョンの競合)

Elasticsearch

意味

ドキュメントの更新/削除要求が楽観的同時実行制御により拒否された。ドキュメントのバージョン (または _seq_no/_primary_term) が要求内のものと一致しない。つまり、読み取った後に別の誰かがドキュメントを変更した。HTTP 409 を返す。

原因

同じドキュメントへの同時更新、古い version/seq_no での書き込み試行、既存ドキュメントの作成 (op_type=create) の試行、または _bulk 中の競合状態。

対処方法

ドキュメントを再度読み取り、現在の _seq_no と _primary_term (または version) で要求を再試行する (read-modify-write ループ)。自動再試行には _update 要求の retry_on_conflict パラメータを使う。_update_by_query/_delete_by_query では conflicts=proceed を指定して競合するドキュメントをスキップして続行する。作成のみが目的なら競合は正常であり、アプリケーションで 409 を捕捉して適切に処理する (再試行またはスキップ)。

DBAtlas で開く →

同じデータベースの他の項目