CouchDB是否真的在服务器之间分割视图?

时间:2010-10-07 17:30:36

标签: couchdb mapreduce

我正在深入研究CouchDB,我对视图中Map-Reduce计算的分布感到困惑。我看到很多资源都提到Map-Reduce本身是分布式的,因为你可以在服务器A上处理一半数据,另一半在服务器B上处理,然后减少两个结果。一个例子是本演示文稿的幻灯片16:

http://www.slideshare.net/gabriele.lana/couchdb-vs-mongodb-2982288

这看似合乎逻辑,但是:

  • CouchDB似乎没有提供用于将计算分派给多个服务器的API。它似乎提供的唯一分发是将整个数据集复制到其他服务器(我假设它会计算自己的视图数据)。

  • CouchDB使用B-Tree来存储基于视图算法的Map步骤中生成的密钥的视图数据,这排除了基于应该在哪个服务器上对文档进行适当分区。

那么,CouchDB是否会分发Map-Reduce计算?或者Map-Reduce属性仅用于缓存B树节点中的值?

2 个答案:

答案 0 :(得分:9)

您正在寻找BigCouch,它启用了CouchDB群集并使用分布式MapReduce。

答案 1 :(得分:3)

CouchDB不会跨节点分发视图,因为couchdb不是分布式应用程序。您只能从一个实例连续复制到另一个实例,但每个实例仍可单独工作。