2009-03-01 6 views
6

Ich versuche zu entscheiden, ob Voldemort oder Couchdb für ein bevorstehendes Gesundheitsprojekt verwendet werden soll. Ich möchte ein Speichersystem mit hoher Verfügbarkeit und Fehlertoleranz, das auf die riesigen Datenmengen skaliert werden kann.voldemort vs couchdb

Was sind die Vor-/Nachteile von jedem?

Dank

+0

ich oft habe, dass Cache von Intersystems gemacht gelesenen im Gesundheitswesen 'Welt' stark genutzt. Können sie nicht eine Lösung bieten? – tuinstoel

Antwort

1

Ist memcachedb eine Option? Ich habe gehört, dass Digg HA-Probleme behandelt hat.

+0

sicher, was wäre der Vorteil von MemcacheDB über die anderen 2 – py213py

+0

Whats HA-Probleme? – Sam152

+0

lol. Wie ist Memcached fehlertolerant? –

5

Project Voldemort sieht gut aus, aber ich habe bis jetzt nicht tief in sie hineingeschaut.

Im aktuellen Zustand ist CouchDB möglicherweise nicht die richtige Lösung für "große Datenmengen". Das Verteilen von Daten zwischen Knoten und das Weiterleiten von Abfragen sind in der Roadmap enthalten, aber noch nicht implementiert. Die größten bekannten Produktions-Setups von CouchDB verwenden "Tabellen" ("Datenbanken" in Couch-Sprache) von etwa 200G.

HA wird nicht nativ von CouchDB unterstützt, kann aber leicht erstellt werden: Alle CouchDB-Knoten replizieren die Datenbankknoten untereinander in einem Multi-Master-Setup. Wir setzen zwei Varnish proxies vor die CouchDB Maschinen und die Varnish Boxen werden mit CARP redundant gemacht. CouchDBs "Build from the Web" Design macht solche Dinge sehr einfach.

Das dringendste Problem in our setup ist die Tatsache, dass es immer noch Probleme mit der Replikation von großen (Multi-MB) Anhänge zu CouchDB-Dokumente gibt.

Ich schlage vor, Sie überprüfen auch die traditionelle RDBMS-Route. There are huge issues mit verfügbaren Talente außerhalb des RDBMS Ansatz und es gibt sehr fähige Angebote zur Verfügung von Oracle & Co.

4

nicht genug von Ihrer Frage zu wissen, würde ich in der Regel trotzdem sagen Projekt Voldemort oder verteilte Hash-Tabellen (DHTs) wie CouchDB sind eine Lösung für Ihr HA-Problem.

Diese DHTs sind sehr schön für hohe Verfügbarkeit, aber schwerer Code zu schreiben als traditionelle relationale Datenbanken (RDBMS) bezüglich der Konsistenz.

Sie sind recht gut zum Speichern von Dokumenttypinformationen, die zwar gut zu Ihrem Gesundheitsprojekt passen, aber die Entwicklung für Daten erschweren.

  • Die größte Einschränkung von den meisten Geschäften ist, dass sie selbst nicht transaktions sicher (Siehe Scalaris für einen transaktions sicheren Speicher), und Sie müssen die Datenkonsistenz sicherzustellen, sind - die meisten lesen Zeitkonsistenz durch widersprüchliche verschmelzenden Daten). RDBMS sind viel einfacher zu verwenden für Konsistenz der Daten (ACID)
  • Joining Daten ist viel schwieriger. In RDBMs können Sie einfach Daten über mehrere Tabellen hinweg abfragen, Sie müssen Code in CouchDB schreiben, um Daten zu aggregieren. Für andere Geschäfte Hadoop kann eine gute Wahl für das Aggregieren von Informationen sein.

über BASE und den CAP Satz auf Konsistenz gegen Verfügbarkeit lesen.

Siehe