0

私はcouchDBで奇妙な問題に遭遇しています。不明な競合のため、データベース内の一部のドキュメントを更新できません。それらを Futon の他のドキュメントと比較すると、他のドキュメントと大きな違いは見られません。これらのドキュメントの 1 つを更新しようとすると、リビジョン番号が 45 から 58 にジャンプしますが、変更は表示されません。これは、couchdb ログ ファイルに表示される内容です。

[Tue, 22 Nov 2016 13:45:10 GMT] [debug] [<0.30579.229>] Minor error in HTTP request: conflict
[Tue, 22 Nov 2016 13:45:10 GMT] [debug] [<0.30579.229>] Stacktrace: [{couch_db,update_doc,4,
                                  [{file,"couch_db.erl"},{line,432}]},
                                 {couch_httpd_db,update_doc,6,
                                  [{file,"couch_httpd_db.erl"},
                                   {line,753}]},
                                 {couch_httpd_db,do_db_req,2,
                                  [{file,"couch_httpd_db.erl"},
                                   {line,234}]},
                                 {couch_httpd,handle_request_int,5,
                                  [{file,"couch_httpd.erl"},{line,318}]},
                                 {mochiweb_http,headers,5,
                                  [{file,"mochiweb_http.erl"},{line,94}]},
                                 {proc_lib,init_p_do_apply,3,
                                  [{file,"proc_lib.erl"},{line,239}]}]
[Tue, 22 Nov 2016 13:45:10 GMT] [info] [<0.30579.229>] 127.0.0.1 - - PUT /DBNAME/external_link-35174841-41a5-44e3-a567-ec56209dc8b8-de_DE-1 409
[Tue, 22 Nov 2016 13:45:10 GMT] [debug] [<0.30579.229>] httpd 409 error response:
{"error":"conflict","reason":"Document update conflict."}

ここで何が起こっているのですか?

4

1 に答える 1

0

ドキュメントによると、複数のスレッドまたはプログラムが同時にドキュメントを更新しようとすると、競合が発生する可能性があります。

データベースに別のスレッド (おそらく mapreduce) が書き込まれていませんか? それは異なるリビジョン番号を説明するでしょう。

于 2016-11-29T15:41:03.540 に答える