Im Datenbankkontext bin ich auf die horizontale Skalierbarkeit als einen der Vorteile der NOSQL-Datenbanken gestoßen. Was bedeutet der Begriff?
Wie würde es mit vertikaler Skalierung vergleichen ?
Im Datenbankkontext bin ich auf die horizontale Skalierbarkeit als einen der Vorteile der NOSQL-Datenbanken gestoßen. Was bedeutet der Begriff?
Wie würde es mit vertikaler Skalierung vergleichen ?
Antworten:
Horizontale Skalierung Die
horizontale Skalierung baut sich im Wesentlichen auf und nicht auf. Sie kaufen keinen größeren Server und verlagern Ihre gesamte Last darauf. Stattdessen kaufen Sie 1 oder mehr zusätzliche Server und verteilen Ihre Last auf diese Server.
Die horizontale Skalierung wird verwendet, wenn Sie mehrere Instanzen gleichzeitig auf Servern ausführen können. Normalerweise ist es viel schwieriger, von 1 Server auf 2 Server zu wechseln, als von 2 auf 5, 10, 50 usw.
Sobald Sie die Probleme beim Ausführen paralleler Instanzen behoben haben, können Sie Umgebungen wie Amazon EC2, den Cloud-Service von Rackspace, GoGrid usw. optimal nutzen, da Sie Instanzen je nach Bedarf hoch- und runterfahren können, sodass Sie weniger für die Serverleistung zahlen müssen Sie verwenden nicht nur, um diese Spitzenlasten abzudecken.
Relationale Datenbanken sind eines der schwierigeren Elemente, um das vollständige Lesen / Schreiben parallel auszuführen.
Ich habe gesehen, wie Damien Katz auf den StackOverflow DevDays in Austin über CouchDB gesprochen hat, und einer seiner Hauptschwerpunkte für die Erstellung war diese parallelen Instanzen. Da dies seit dem ersten Tag ein Schwerpunkt ist, ist es viel besser in der Lage, die horizontale Skalierung zu nutzen.
Vertikale Skalierung Die
vertikale Skalierung ist das Gegenteil. Kaufen Sie die stärkste Hardware, die Sie sich leisten können, und legen Sie Ihre Anwendung, Datenbank usw. darauf.
Reale Welt
Natürlich haben beide ihre Vor- und Nachteile. Oft wird eine Kombination dieser beiden Methoden für eine endgültige Lösung verwendet.
Möglicherweise verfügen Sie über Ihre primäre Datenbank, in der alle auf einem großen Hardwareteil Echtzeitdaten schreiben und lesen. Verteilen Sie dann schreibgeschützte Kopien der Datenbank für eine umfassendere Datenanalyse und Berichterstellung, wenn die Aktualität keine Rolle spielt. Dann wird die Front-End-Webanwendung möglicherweise auf mehreren Webservern hinter einem Lastenausgleich ausgeführt.
Die horizontale Skalierung ist ideal, wenn Sie eine Anwendung benötigen, die viele Schreibvorgänge und parallele Lesevorgänge ausführen muss. Stellen Sie sich eine Website vor, die sehr viel Verkehr hat und diese oder eine große Anzahl von Ereignissen protokollieren muss.
Ich denke, der größte Vorteil ist, dass die horizontale Skalierung mit Standardhardware durchgeführt werden kann. Mit der vertikalen Skalierung und dem Versuch, vorhandene Boxen zu vergrößern, können Sie nur so viel tun.
Herkömmliche RDBMS scheitern hier aus einer Vielzahl von Gründen (einschließlich der Tatsache, dass es sich um ACID handelt), und NoSQL-Lösungen zeichnen sich hier durch eine einfache horizontale Skalierbarkeit aus - aber das ist eine andere Geschichte (RDBMS / SQL vs. NoSQL).
Einige Leute in der Branche verwenden unterschiedliche Begriffe, um dasselbe zu bedeuten: