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

大型CouchDB数据库中设计文档的命名约定,couchdb,cloudant,Couchdb,Cloudant,我在Cloudant上托管了一个非常大的couchDB数据库。我早期犯的一个错误是将我所有的视图都保存在一个设计文档中。当我通过添加新视图对设计文档进行更改时,它会再次编译设计文档,并使数据库暂时不可用 在我与Cloudant交谈之后,他们告诉我拥有多个设计文档是一种很好的做法,在阅读了一些内容之后,CouchDB似乎为每个设计文档运行一个视图服务器 现在,正如真正的启动方式一样,我们不断地向数据库(正在生产中)添加新功能,从而进行新的更新。每当我想添加一个新视图时,我都会创建一个新的设计文档并

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

在我与Cloudant交谈之后,他们告诉我拥有多个设计文档是一种很好的做法,在阅读了一些内容之后,CouchDB似乎为每个设计文档运行一个视图服务器

现在,正如真正的启动方式一样,我们不断地向数据库(正在生产中)添加新功能,从而进行新的更新。每当我想添加一个新视图时,我都会创建一个新的设计文档并将视图添加到其中

在这种背景下,有两个问题

  • 这是正确的方法吗
  • 我的设计文档应该遵循什么命名方案

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

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

    一般来说,我建议给您的设计文档起一个有意义的名字——如果您确实需要在现有的设计文档中添加新的视图,您可以使用。

    可以在