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)重试请求(读-改-写循环)。如需自动重试,在 _update 请求中使用 retry_on_conflict 参数;在 _update_by_query/_delete_by_query 中传入 conflicts=proceed 以跳过冲突文档并继续。如果意图是仅创建,冲突属于正常情况;在应用中捕获 409 并做相应处理(重试或跳过)。

在 DBAtlas 中打开 →

同一数据库的其他条目