抱歉,我想不出更具描述性的标题:我们在更新couchDB视图时遇到问题,因为在重新编制索引设计文档时它们无法访问。是允许陈旧观点的唯一解决方案吗?
在一种情况下,有几个couchDB节点相互复制。在一个视图中更新视图将导致所有couchDB节点重新索引设计文档。是否无法更新一个节点上的视图,然后复制出结果?我假设存在的问题是,新的文档可以插入到其他节点中,而重新编制索引。
在另一种情况下,我们有几个couchDB节点可以读/写并相互复制。对于Web应用程序,还有另一个具有只读couchDB节点的集群......它们不会复制出来,而是从读/写池复制到。这里的解决方案可以是将节点从群集中取出,更新视图并等待它重新索引。但是,该节点是否会丢失在重建索引期间创建的任何文档?是否有可能在重建索引时继续接收文档插入?
还有其他可能的解决方案吗?我们正在迁移到第二种情况,所以这是我最关心的问题,但我想知道是否有任何一种情况的通用解决方案。使用过时的视图并不是理想的情况,因为重建索引可能需要很长时间,而且它是一个高流量的站点。
答案 0 :(得分:4)
很高兴听到您在使用CouchDB取得成功。
我建议你使用wiki中描述的staging-and-upgrade technique。它需要一些准备才能开始工作,但是一旦你有了工作,它就能很好地工作而不需要任何人力。