大型CouchDB数据库中设计文档的命名约定

时间:2014-07-04 02:01:11

标签: couchdb cloudant

我有一个非常大的couchDB数据库,我在Cloudant上托管。我提出的早期noob错误之一是将我的所有观点都保存在一个设计文档中。当我通过添加新视图对设计文档进行更改时,它将再次编译设计文档并使数据库暂时不可用。

在与Cloudant交谈之后,他们告诉我,拥有多个设计文档是一种很好的做法,经过一些阅读后,看起来CouchDB每个设计文档都运行一个视图服务器。

现在,正如真正的初创时尚一样,我们不断添加新功能,因此对数据库进行了新的更新(正在生产中)。每当我想添加一个新视图时,我都会创建一个新的设计文档并将视图添加到其中。

有了这个背景两个问题。

  1. 这是正确的方法吗?
  2. 我的设计文件应遵循哪种命名方案?

2 个答案:

答案 0 :(得分:3)

您可以拥有一个主设计文档,该文档为另一个包含您要执行的实际视图的设计文档提供rewrite。主设计文档不应该有任何视图,因此您可以随时根据需要随时更新。使用这种方法,只要您在主设计文档的重写规则中正确引用它,命名约定就由您自己决定。

答案 1 :(得分:0)

这当然不是一个坏方法。鉴于设计文档中的视图是一起处理的,更多设计文档在构建视图时会给您更大的并行性(假设集群可以处理它)。您还可以查看使用Cloudant Query,它提供了map / reduce上的抽象层,因此您无需关心您的设计文档名称。

一般情况下,我建议为您的设计文档提供有意义的名称 - 如果您确实需要向现有设计文档添加新视图,则可以使用this trick