面试题答案
一键面试- 版本号生成:CouchDB使用基于修订版本号的机制。每当文档创建时,CouchDB会为其分配一个初始的修订版本号,通常是一个类似
1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
的字符串。其中1
代表初始版本,后面的十六进制部分是一个唯一标识符。 - 版本管理:
- 每个文档的修订版本信息都存储在文档自身内部。这样,获取文档时就可以同时获取到其版本信息。
- 当多个客户端尝试同时更新同一文档时,CouchDB使用乐观并发控制。即每个客户端在更新文档时,必须提供当前文档的修订版本号。
- 文档更新时版本信息变化:
- 当文档更新成功,CouchDB会生成一个新的修订版本号。新版本号的格式类似
N - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
,N
会递增,例如从1
变为2
,后面的十六进制部分也会重新生成。 - 如果客户端提交的修订版本号与服务器上的文档当前版本号不一致(即文档已被其他客户端修改),更新操作会失败,客户端会收到
409 Conflict
错误响应,此时客户端需要重新获取文档,更新本地副本,并再次尝试更新操作。
- 当文档更新成功,CouchDB会生成一个新的修订版本号。新版本号的格式类似