485 Stimmen

MongoDB oder CouchDB - geeignet für die Produktion?

Ich wollte fragen, ob mir jemand sagen kann, ob MongoDB o CouchDB sind bereit für eine Produktion Umwelt.

Ich schaue mir jetzt diese Speicherlösungen an (im Moment favorisiere ich MongoDB), allerdings sind diese Projekte noch recht jung, und so sehe ich voraus, dass ich meinen Vorgesetzten ziemlich hart davon überzeugen muss, dass wir diese neue Technologie übernehmen sollten.

Was ich gerne wissen möchte, ist:

  1. Wer nutzt heute MongoDB oder CouchDB in einer Produktionsumgebung?

  2. Wie verwenden Sie MongoDB/CouchDB?

  3. Auf welche Probleme sind Sie bei der Einführung dieses neuen Speichersystems gestoßen (und wie haben Sie sie gelöst)?

  4. Wie sind Sie mit den Problemen der Migration umgegangen, mit denen Sie konfrontiert waren?

  5. Haben Sie gute/schlechte Erfahrungen mit einer dieser Lösungen gemacht, die Sie gerne teilen möchten?

267voto

Ich bin der CTO von 10gen (Entwickler von MongoDB), daher bin ich etwas voreingenommen, aber ich verwalte auch einige Websites, die MongoDB in der Produktion einsetzen.

businessinsider verwendet Mongo nun schon seit über einem Jahr in der Produktion. Sie verwenden es für alles, von Benutzern und Blogbeiträgen bis hin zu jedem Bild auf der Website.

shopwiki verwendet es unter anderem für Echtzeit-Analysen und als Caching-Schicht. Es werden über 1000 Schreibvorgänge pro Sekunde in eine ziemlich große Datenbank durchgeführt.

Wenn Sie zum mongodb Produktionseinsätze Seite werden Sie einige Leute sehen, die Mongo in der Produktion verwenden.

Wenn Sie Fragen zum Umfang der Produktionsbereitstellung haben, schreiben Sie an unsere Benutzerliste, und wir helfen Ihnen gerne weiter.

110voto

Matt Aimonetti Punkte 1102

Le site BBC y meebo.de Ich verwende CouchDB in der Produktion und einer meiner Kunden tut das auch. Hier ist eine Liste von Leuten, die Couch benutzen: CouchDB in freier Wildbahn

Die größte Herausforderung besteht darin, zu wissen, wie man seine Dokumente organisiert und nicht mehr in relationalen Daten zu denken.

44voto

dormsbee Punkte 1

SourceForge verwendet MongoDB. Siehe diese Präsentation o hier lesen .

34voto

okurow Punkte 949

Wir verwenden CouchDB als Ersatz für MySQL für unsere Shops (70.0000 Artikel/Shop, insgesamt 4 Millionen Attribute aller Artikel, Querverbindungen zwischen den Artikeln).

Unsere Ziele waren:

  1. Einfache Replikation von einer Master-Datenbank auf mehrere Clients mit unterschiedlichen Dokumenten.

  2. Schnelle, vorberechnete Daten wie "wie viele Teile habe ich mit diesem Attribut und diesem Filter, die zu diesen Bedingungen passen"

Fakten:

  1. Unsere Shops laufen jetzt viel schneller als mit MySQL (und die mysql-Datenbank brauchte zusätzlich 1-3 Tage zur Vorberechnung (so dass die Aktualisierung zweimal im Monat stattfand), um die Daten für die Produktzählung und -filterung vorzubereiten, CouchDB braucht 5 Stunden, so dass wir die Produktdaten jede Nacht aktualisieren konnten)
  2. Die Einrichtung einer (gefilterten) Datenverteilung und von Backups auf den Shop-Knoten ist schnell und einfach

sondern auch:

  1. Das Verständnis von map/reduce und die Grenzen des Verzichts auf Joins ist ziemlich schwierig
  2. Keine Operationen auf Daten wie "Löschen wo" oder "Aktualisieren wo" ohne externe Programme
  3. Die Replikation funktioniert gut, es sei denn, es tritt ein Problem auf; dann ist es sehr schwer herauszufinden, woran es lag (für Anfänger)
  4. Die Installation von CouchDB ohne Binärdateien (ja, es gibt welche, aber nicht für alle Betriebssysteme/Versionen) könnte schwierig sein, wenn man kein Linux-Freak ist. Aber die CouchDB Community ist hilfreich (#couchdb), und glücklicherweise gibt es Firmen (cloudant, iriscouch), die Dienstleistungen von kostenlos bis hin zu großen Unternehmen anbieten.
  5. CouchDB entwickelt sich weiter und es gibt viele Änderungen (Verbesserungen), die die Art und Weise, wie Sie arbeiten, verändern können. Aber die grundlegenden Dinge bleiben stabil.

Daraus folgt: MySQL als Datenbank zur Datenerstellung und -pflege ist zuverlässig und einfach zu verstehen und zu handhaben. Ich denke, wir werden das nicht ändern. Aber ich möchte auch nicht die Leistungsfähigkeit von CouchDB Views und die einfache Einrichtung der Replikation missen.

Produktions-Couches verursachten manchmal nach monatelanger Arbeit Probleme aufgrund von Fehlkonfigurationen und vergessenen Logrotates (der Aufbau von Ansichten dauert zu lange oder hängt, die Replikation stoppt), aber es gingen nie Daten verloren, und sie konnten immer leicht zurückgesetzt werden.

27voto

Sergio Tulentsev Punkte 218286

Ich verwende CouchDB in der Produktion. Zurzeit speichert es alle "optionalen" Felder, die nicht im ursprünglichen DB-Schema enthalten waren. Und im Moment denke ich darüber nach, alle Daten nach CouchDB zu verschieben.

Das ist ein ziemlich riskanter Schritt, das gebe ich zu. Erstens, weil es noch nicht v1.0 ist. Und zweitens, weil es sehr viel Speicherplatz braucht. Nach meinen Berechnungen ist die CouchDB Datei (mit Indizes) ~30 mal größer als eine MySQL Datenbank mit den gleichen Zeilen. Aber ich bin mir ziemlich sicher, dass es gut funktionieren wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X