Video: horizontale Skalierung und vertikale Skalierung - einfach & schnell erklärt 2024
Ein gemeinsames Merkmal von NoSQL-Systemen ist ihre Skalierbarkeit über viele Commodity-Server hinweg. Diese relativ billigen Plattformen bedeuten, dass Sie Datenbanken erweitern können, indem Sie einen neuen Server hinzufügen, anstatt alte Hardware durch neue, leistungsstärkere Hardware in einer einzigen Aufnahme zu ersetzen.
Es gibt Anwendungsfälle mit hohem Volumen, die Sie schnell zum Skalieren zwingen. Dazu gehören
-
Sie erhalten Statusberichte und Protokollnachrichten aus einer IT-Landschaft. Dieses Szenario erfordert schnelle Ingest-Zeiten, erfordert jedoch wahrscheinlich keine erweiterte Analysesupport.
-
Sie möchten High-Speed-Caching für komplexe Abfragen. Vielleicht möchten Sie die neuesten Nachrichten auf einer Website erhalten. Lese-Caches nehmen hier Vorrang vor Abfrage- oder Ingest-Geschwindigkeiten.
Das einzige, was für die Leistung aller NoSQL-Datenbanken typisch ist, ist, dass Sie sich nicht auf veröffentlichte Daten verlassen können - keine davon - um herauszufinden, wie hoch die Leistung Ihrer Daten für Ihren eigenen Anwendungsfall ist.
Sie können sich sicherlich nicht auf das Leistungsversprechen eines bestimmten Datenbankanbieters verlassen! Viele Anbieter nennen hohe Ingest-Geschwindigkeiten gegen einen künstlichen Anwendungsfall, der keine realistische Nutzung ihrer Datenbank ist, als Beweis für die Vorherrschaft ihrer Datenbank.
Das Problem ist jedoch, dass diese Studien die Abfragegeschwindigkeit völlig ignorieren können. Was ist der Sinn beim Speichern von Daten, wenn Sie es nie verwenden?
Diese Studien können auch auf Systemen durchgeführt werden, bei denen wichtige Funktionen deaktiviert sind. Sicherheitsindizes sind möglicherweise nicht aktiviert, oder möglicherweise wird die ACID-Transaktionsunterstützung während der Studie deaktiviert, sodass Daten schnell gespeichert werden, aber es gibt keine Garantie dafür, dass sie sicher ist.
Dies alles bedeutet, dass Sie Ihre eigenen Tests durchführen müssen, was einfach ist, aber stellen Sie sicher, dass der Test Ihrem endgültigen System so nahe wie möglich kommt. Zum Beispiel ist es nicht sinnvoll, einen einzelnen Server zu testen, wenn Sie planen, auf 20 Server zu skalieren. Achten Sie insbesondere darauf, eine genaue Mischung aus Einlesen, Ändern und Abfragen von Daten zu haben.
Fragen Sie Ihren NoSQL-Anbieter nach diesen Fragen:
-
Können Sie sicherstellen, dass alle angegebenen Größen und Leistungsdaten für Systeme gelten, die während der Aufnahme ACID-Transaktionen sicherstellen, die Echtzeit-Indizierung unterstützen und eine realistische Mischung aus Ingest und Read enthalten? / Abfrage-Anfragen?
-
Verfügt Ihr Produkt über Funktionen, die die Erhöhung der Serverkapazität vereinfachen?
-
Verfügt Ihr Produkt über Funktionen, die das Entfernen ungenutzter Serverkapazität vereinfachen?
-
Ist die Datenabfragegeschwindigkeit Ihres Produkts durch die Menge der Informationen begrenzt, die im RAM zwischengespeichert werden müssen?
-
Verwendet Ihr Produkt eine Speicherzuordnungsstrategie, bei der alle Indizes im RAM für eine angemessene Leistung gehalten werden müssen (Memory Mapped bedeutet, dass die maximale Menge der gespeicherten Daten mit der Menge des installierten physischen RAM übereinstimmt).
-
Kann Ihre Datenbank Antwortzeiten von unter einer Sekunde beibehalten, während sie Hochfrequenz-Updates empfängt?
-
Stellt das System sicher, dass keine Ausfallzeit erforderlich ist, um Serverkapazität hinzuzufügen oder zu entfernen?
-
Stellt das System sicher, dass Informationen sofort zur Abfrage verfügbar sind, nachdem es der Datenbank hinzugefügt wurde?
-
Stellt das System sicher, dass die Sicherheit der Daten gewährleistet ist, ohne die Abfragegeschwindigkeit zu beeinträchtigen?
-
Stellt das System sicher, dass die Scale-Out- und Scale-Back-Funktionen der Datenbank skriptfähig sind und in die ausgewählte Serverbereitstellungssoftware (z. B. VMWare und Amazon Cloud Formation) integriert werden können?