couchdb修订号跳转和文档更改导致冲突

时间:2016-11-22 15:29:43

标签: php couchdb agavi

我遇到了一个与couchDB有关的奇怪问题。由于未知冲突,我的数据库中的某些文档无法更新。将它们与Futon中的其他文档进行比较时,我发现其他文档没有任何重大差异。当我尝试更新其中一个文件时,修订号从例如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."}

有什么想法在这里发生了什么?

1 个答案:

答案 0 :(得分:0)

docs表示当多个线程或程序尝试同时更新文档时可能会发生冲突。

你确定你的数据库中没有另一个线程写入,也许是mapreduce?这可以解释不同的修订号。