CouchDB 中视图更新的原子性

Atomicity of view updates in CouchDB

CouchDB 文档非常清楚地表明单文档更新是 ACID。但我想知道这是否适用于因文档更新而触发的视图更新。

假设我有一个视图函数来显示 'type' 字段中具有特定值的文档数。如果服务器在我插入具有该类型的文档后但在视图有时间更新之前立即崩溃,会发生什么情况? CouchDB 是否保证下次服务器启动时会更新视图?还是我必须等到其他事件触发重新计算视图?

视图,如 _changes 提要,实际上只是使用与数据库本身相同的仅附加模型构建的。当您更新文档时,您实际上并不是在等待视图也被更新。事实上,视图只有在被查询时才会更新。

因此,即使数据库在文档更改和视图重建之间崩溃,也没有关系,因为数据库实际上是 journal/stream 的更改,并且随时可以从中构建视图时间.