Действительно ли CouchDB разделяет представления между серверами? - PullRequest
9 голосов
/ 07 октября 2010

В настоящее время я изучаю 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-Tree?

Ответы [ 2 ]

9 голосов
/ 09 октября 2010

Вы ищете BigCouch , он включает кластер CouchDB и использует распределенный MapReduce.

3 голосов
/ 08 октября 2010

CouchDB НЕ распределяет представления по узлам, поскольку couchdb не является распределенным приложением. Вы можете выполнять непрерывную репликацию только из одного экземпляра в другой, но каждый экземпляр работает в одиночку.

...