CouchDb和数据写入

时间:2011-05-17 14:10:25

标签: couchdb b-tree

据我了解,CouchDb永远不会覆盖记录,而是使用新的_rev创建一个新文档。在这种情况下会发生什么?

  1. 用户A阅读文档
  2. 用户B读取同一文档
  3. 用户A更新文档
  4. 用户B更新文档
  5. 在这种情况下,用户A的更改是否丢失了?

1 个答案:

答案 0 :(得分:6)

不,用户B将获得409错误,因为转速将不再匹配。对于用户B提交其文档,他们将需要重新获取文档,以便他们可以获得最新的文档修订。

这称为乐观锁定,旨在专门防止您遇到的问题。

没有什么可以阻止用户B踩踏用户A的文档,但现在他们通过重新获取文档并使用新的_rev参数来更加清楚它。