首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CouchDB文档更新处理程序可以获得更新冲突吗?

CouchDB文档更新处理程序可以获得更新冲突吗?
EN

Stack Overflow用户
提问于 2010-06-06 05:36:39
回答 1查看 3.5K关注 0票数 9

使用更新处理程序时修订冲突的可能性有多大?在编写健壮的更新函数时,应该关注冲突处理代码吗?

正如文档更新处理程序中所描述的,CouchDB 0.10和更高版本允许按需修改服务器端文档.

Update处理程序可以处理非JSON格式;但其他主要特性如下:

  • 用于任意复杂文档修改代码的HTTP前端
  • 类似的代码不必为所有可能的客户端编写--一种枯燥的体系结构
  • 执行速度更快,并且不太可能发生修订冲突。

我不清楚第三点。在本地执行时,更新处理程序将运行得更快,延迟更小。但是在竞争激烈的情况下,这并不能保证更新成功。还是更新处理程序保证更新成功?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-06 07:53:38

当使用更新处理程序时,更新冲突仍然是可能的。

由于缩短了“往返时间”,更新冲突的几率较低,但不是零。冲突将感觉正常:使用此JSON的409响应代码:

代码语言:javascript
复制
{"error":"conflict","reason":"Document update conflict."}

我成功地使用文档更新处理程序示例触发了一个冲突,并在shell中连续运行了两次。

代码语言:javascript
复制
curl -v -X PUT \
http://localhost:5984/db/_design/app/_update/accumulate/my_doc?amount=10 \
& curl -X PUT \
  http://localhost:5984/db/_design/app/_update/accumulate/my_doc?amount=1

其中一个卷曲反应(随机)为201,另一个为409。

文档更新处理程序不会从根本上改变CouchDB。

更新会发生冲突,以及验证失败(401 Unauthorized403 Forbidden等)。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2983220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档