gpt4 book ai didi

erlang - CouchDB文档更新处理程序可以获取更新冲突吗?

转载 作者:行者123 更新时间:2023-12-04 03:46:46 24 4
gpt4 key购买 nike

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

Document Update Handlers中所述,CouchDB 0.10和更高版本允许按需服务器端文档修改。

更新处理程序可以处理非JSON格式;但其他主要功能如下:

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

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

    最佳答案

    使用更新处理程序时,仍然可能发生更新冲突。

    由于减少了“往返时间”,因此更新冲突的可能性降低了
    但不为零。冲突会感觉很正常:409响应码
    与此JSON:

    {"error":"conflict","reason":"Document update conflict."}

    我使用 document update handler example成功触发了冲突,
    并在 shell 中连续短时两次 curl 。
    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

    curl 响应之一(随机)为201,另一个为409。

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

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

    关于erlang - CouchDB文档更新处理程序可以获取更新冲突吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2983220/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com