MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Hat jemand mit Aerospike gearbeitet? Wie ist es im Vergleich zu MongoDB?

Ich habe Aerospike, MongoDB und Redis verwendet und viele andere NoSQL-Datenbanken getestet. Ich würde sagen, Aerospike ist sehr gut in dem, was es tut, aber es ist anders als MongoDB. Alles hängt davon ab, wofür Sie eine Datenbank verwenden möchten. Ich kann Ihnen ein Beispiel dafür geben, wofür ich meine verschiedenen Datenbanken verwende. Ich kann auch die Unterschiede zwischen ihnen durchgehen und die Vorteile von Aerospike erörtern.

MongoDB

Ich verwende MongoDB als SQL-Alternative. In meiner MongoDB-Datenbank habe ich viele verschiedene Felder. Oft ändern sich die Felder und ich muss nach dem Zufallsprinzip verschiedene Felder abfragen. Es ist eine sehr unstrukturierte Datenbank und MongoDB ist darin erstaunlich. Ich habe MongoDB auch als Standard-Key-Value-Store verwendet. Es funktioniert gut, aber MongoDB hat sowohl bei der Transaktionsskalierung als auch bei der Skalierung der Datenbankgröße nicht optimal funktioniert. Zugegeben, die Datenbank könnte etwas besser optimiert worden sein, aber ich finde es sehr schwierig, Dokumentationen zur korrekten Konfiguration von MongoDB in verschiedenen Situationen zu finden.

Redis

Redis ist ein reiner Key-Value-Store. Das größte Problem von Redis ist, dass es rein im Arbeitsspeicher ist (es wird die Festplatte als Backup verwenden, aber Sie können nicht mehr Informationen speichern, als Sie Arbeitsspeicher zur Verfügung haben). Es ist extrem schnell für das, wofür es verwendet wird. Ich persönlich verwende es für eine kleine Transaktionsdatenbank:Ich mache sehr einfache Funktionen für Schlüssel, wie zum Beispiel zu zählen, wie oft ein Ereignis für einen bestimmten Benutzer aufgetreten ist. Ich mache auch schnelle In-Memory-Lookups, die ich verschiedenen Werten zuordnen muss. Redis ist ein großartiges Tool für einen kleinen Datensatz und extrem schnell. Auch die Konfiguration ist sehr einfach.

Aerospike

Ich persönlich verwende Aerospike, um Redis zu ersetzen, wenn es an der Zeit ist, zu skalieren. Nach meinem Verständnis kann es für mehr verwendet werden. Wie Redis ist Aerospike ein Key-Value-Store. Ich glaube, dass die Open-Source-Edition auch Sekundärindizes unterstützt, was Redis nicht tut (ich habe keine Sekundärindizes in der Produktion verwendet, aber nur wenig mit ihnen getestet).

Das beste Merkmal von Aerospike ist seine Skalierbarkeit. Das größte Problem, das ich lösen musste, als ich mich mit Aerospike befasste, war die Skalierung meines Systems, um große Datensätze zu verarbeiten und gleichzeitig extrem schnell zu bleiben. Das Projekt, für das ich Aerospike verwende, hat sehr strenge Anforderungen an die Geschwindigkeit. Ich mache normalerweise 3-4 Datenbanksuchen plus andere Verarbeitung und muss Transaktionszeiten von weniger als 50 ms haben. Einige Lookups beziehen sich auf Datensätze mit mehr als 300 GB. Ich konnte keine Lösung finden, um diese Daten zu speichern und in angemessener Zeit zugänglich zu machen. Redis funktioniert offensichtlich nur, wenn ich einen Computer mit mehr als 300 GB RAM habe. MongoDB begann bei einer Größe von viel weniger als 300 GB extrem schlecht zu funktionieren. Also habe ich Aerospike eine Chance gegeben, und es hat alles sehr gut gemeistert. Das Beste an Aerospike:Da mein Datensatz gewachsen ist, musste ich nicht viel mehr tun, als bei Bedarf eine neue Box aufzustellen. Die Geschwindigkeit ist konstant geblieben.

Ich finde auch die Dokumentation von Aerospikes sehr gut. Es ist nicht zu schwer zu konfigurieren und es ist ziemlich einfach, Antworten auf alle auftretenden Probleme zu finden.

Fazit

Ist Aerospike also so gut, wie sie behaupten? Ich persönlich habe nichts weniger als das gesehen, was behauptet wurde. Ich musste nicht auf 1 Million TPS skalieren, aber ich glaube, mit genügend Hardware wäre das möglich. Ich glaube auch, dass die Zahlen einen Geschwindigkeitsunterschied zwischen Aerospike und MongoDB zeigen. Aerospike ist eine viel "konfiguriertere" und "ausgeplantere" Datenbank als MongoDB. Aus diesem Grund wird Aerospike im Maßstab viel schneller sein als MongoDB. Es muss sich im Gegensatz zu MongoDB, das sich dynamisch ändern kann, nur um einen einzigen (oder im Falle von Sekundärindizes einige Hundert) Indizes kümmern. Die Frage, die Sie sich wirklich stellen müssen, ist, was Sie mit Ihrer Datenbank erreichen möchten. Sehen Sie sich dann an, welche Datenbank Ihren Anforderungen am besten entspricht. Wenn Sie eine skalierbare, schnelle Key-Value-Store-Datenbank benötigen, würde ich sagen, dass Aerospike wahrscheinlich die beste auf dem Markt ist.

Lassen Sie mich wissen, wenn Sie spezielle Fragen haben oder etwas geklärt werden müssen. Wahrscheinlich kann ich Ihnen weiterhelfen.