couchdb视图是否复制?
我指的不是存储在_designdocs中的视图源(那些复制的,因为它们只是文档)。我的意思是,视图结果(计算出的btree)也要复制,或者只复制常规文档(这就是我现在的理解) 有问题的情况是:couchdb视图是否复制?,couchdb,Couchdb,我指的不是存储在_designdocs中的视图源(那些复制的,因为它们只是文档)。我的意思是,视图结果(计算出的btree)也要复制,或者只复制常规文档(这就是我现在的理解) 有问题的情况是: 流量激增,我想启动一个临时服务器,并将数据集的一部分复制到新服务器上。这些(要复制的)文档的视图已在旧服务器上计算,因此不需要在新服务器上重新计算。。。所以我希望这些旧的计算结果和文档的一部分一起传输 另一种情况是使用后端集群计算复杂视图,然后将这些结果复制到一组前端服务器上,这些服务器实际上被用户请求击
流量激增,我想启动一个临时服务器,并将数据集的一部分复制到新服务器上。这些(要复制的)文档的视图已在旧服务器上计算,因此不需要在新服务器上重新计算。。。所以我希望这些旧的计算结果和文档的一部分一起传输
另一种情况是使用后端集群计算复杂视图,然后将这些结果复制到一组前端服务器上,这些服务器实际上被用户请求击中。计算结果不会被复制 以下是一些额外的想法:
- 当您对服务器进行分区并启动第二台服务器时,如何分配读/写操作并合并视图结果?这个设置需要一些思想的代理,我建议您仔细研究一下
- 如果您使用master,则可以使用保持服务器同步。它已经被证明可以用于mysql主复制,我不明白为什么它在这里不起作用。这也意味着计算结果在两台服务器上自动同步
让我知道这是否有帮助 正如蒂尔所说,结果是不可复制的。要了解更多细节,您实际上不希望复制它们。您应该记住的一般CouchDB范例是,每个安装都被视为一个独立的节点-这就是为什么_id、_rev和序列号如此重要的原因。这使得每个节点都可以在不考虑任何其他节点的情况下工作:如果您的一个节点发生故障,那么所有其他节点都将继续启动,而不需要考虑任何其他节点 当然,这引入了一些您可能不习惯的关于一致性的新注意事项。例如,如果您有多个web服务器,每个服务器上都有自己的CouchDB节点,并且这些节点在它们之间运行复制,以便每个实例都保持最新,那么节点之间将存在延迟。下面是一个流程示例:
- 粘贴会话,以便它们的所有读写操作都进入同一服务器。这可能最终会打败负载平衡器
- 将CouchDB节点从web服务器移到它们自己的框中。如果您继续这样做,那么您可能想看看couchdb lounge项目()
- 你的用户真的在乎结果是否过时吗?您的用例可能是这样的:您的用户不会注意到他们的结果是否没有反映他们刚才所做的更改。确保你真的从这项工作中获得了显著的价值