2010-10-07 10 views
9

Ich beschäftige mich derzeit mit CouchDB, und ich bin verwirrt über die Verteilung von Map-Reduce-Berechnungen in Ansichten. Ich sehe eine Menge Ressourcen, in denen erwähnt wird, dass Map-Reduce inhärent verteilt ist, da Sie die eine Hälfte Ihrer Daten auf Server A und die andere Hälfte auf Server B verarbeiten und dann beide Ergebnisse reduzieren können. Ein Beispiel dafür wäre 16 dieser Präsentation gleiten:Sortiert CouchDB wirklich Ansichten auf mehrere Server?

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

Diese ziemlich logisch erscheint, aber:

  • CouchDB scheint nicht eine API für die Einplanung Berechnungen auf mehrere Server zur Verfügung zu stellen. Die einzige Distribution, die es zu bieten scheint, ist die Replikation des gesamten Datensatzes auf andere Server (die dann, wie ich annehme, ihre eigenen View-Daten berechnen).

  • CouchDB verwendet einen B-Tree zum Speichern von Ansichtsdaten auf der Grundlage von Schlüsseln, die im Map-Schritt des Ansichtsalgorithmus generiert werden. Dadurch wird eine angemessene Partitionierung von Dokumenten basierend auf dem jeweiligen Server ausgeschlossen.

Also verteilt CouchDB Map-Reduce-Berechnungen überhaupt? Oder wird die Map-Reduce-Eigenschaft lediglich zum Zwischenspeichern von Werten in den B-Tree-Knoten verwendet?

Antwort

9

Sie suchen nach BigCouch, es aktiviert einen CouchDB-Cluster und verwendet verteilte MapReduce.

3

CouchDB verteilt KEINE Sichten über Knoten, da couchdb keine verteilte Anwendung ist. Sie können nur kontinuierlich von einer Instanz zur anderen replizieren, aber jede Instanz arbeitet immer noch alleine.