Scaling NoSQL

Ein gemeinsames Merkmal der NoSQL-Systeme ist ihre Fähigkeit, viele Standardserver zu skalieren über. Diese relativ günstige Plattformen bedeuten, dass Sie Datenbanken skalieren können einen neuen Server durch das Hinzufügen und nicht ersetzen alte Hardware mit neuen, leistungsfähigeren Hardware in einem einzigen Schuss.

Es gibt hohe # 8208-Volumen Anwendungsfälle, die Sie schnell zu skalieren zwingen wird. Diese beinhalten

  • Sie erhalten Statusberichte und Log-Meldungen aus einer gesamten IT-Landschaft. Dieses Szenario erfordert schnelle Ingest Zeiten, aber es wahrscheinlich nicht die erweiterte Analyse-Unterstützung erfordern.

  • Sie wollen hoch # 8208-Speed-Caching für komplexe Abfragen. Vielleicht möchten Sie die neuesten Nachrichten Geschichten auf einer Website zu bekommen. Hier lesen Caches Prominenz über Abfrage oder Ingest Geschwindigkeiten nehmen.

Das einzige, was gemeinsam mit der Leistung aller NoSQL-Datenbanken ist, dass Sie nicht auf die veröffentlichten Daten verlassen können - nichts davon - um herauszufinden, was die Leistung wahrscheinlich auf Ihre Daten zu sein, für den eigenen Gebrauch Fall.

Sie können sicherlich nicht verlassen sich auf eine bestimmte Versprechen der Datenbank-Anbieter auf Leistung! Viele Anbieter zitieren hohe Ingest Geschwindigkeiten gegen einen künstlichen Anwendungsfall, die keine realistische Nutzung ihrer Datenbank ist, als Beweis ihrer Datenbank Vorherrschaft.

Allerdings ist das Problem, dass eben diese Studien können völlig Abfragegeschwindigkeit ignorieren. Was ist der Punkt, Daten bei der Speicherung, wenn Sie es noch nie benutzen?

Diese Untersuchungen können auch auf Systemen durchgeführt werden, in denen wichtige Funktionen deaktiviert sind. Sicherheits Indizes können nicht aktiviert werden, oder vielleicht ACID Transaktionsunterstützung wird während der Studie ausgeschaltet, so dass die Daten schnell gespeichert ist, aber es gibt keine Garantie dafür, dass es sicher ist.

Dies alles bedeutet, dass Sie Ihre eigenen Tests durchführen müssen, die einfach genug ist, aber sicher sein, dass der Test auf Ihre endgültige System so nahe wie möglich ist. Zum Beispiel, gibt es keinen Punkt in einen einzelnen Server zu testen, ob Sie zu 20 Server zu skalieren planen. Insbesondere sollten Sie eine genaue Mischung der Einnahme zu haben, Modifizieren und Abfragen von Daten.

Betrachten Sie Ihre NoSQL-Anbieter diese Fragen:

  • Können Sie sich für Systeme alle Sizing und Performance genannten Zahlen sind, die sicherstellen, ACID-Transaktionen während des Ingest, dass die Unterstützung echte # 8208 Zeitindizierung, und das sind eine realistische Mischung aus Ingest und Lese- / Abfrageanforderungen sicherzustellen, dass?

  • Hat Ihr Produkt-Features bereitzustellen, die es leicht machen, eines Servers die Kapazität zu erhöhen?

  • Hat Ihr Produkt-Features bieten, die es einfach nicht genutzten Serverkapazität zu entfernen?

  • Ist Datenabfragegeschwindigkeit Ihres Produkts durch die Menge an Informationen beschränkt, die im RAM zwischengespeichert werden muss?

  • Hat Ihr Gerät über einen Speicherkartenstrategie verwenden, die alle Indizes erfordert im RAM für eine angemessene Leistung gehalten werden (Memory-Mapped bedeutet, dass die maximale Datenmenge, die gleiche wie die Menge des physischen RAM installiert gespeichert ist)?

  • Kann Ihre Datenbank sub # 8208-Sekunden-Abfrage-Antwortzeiten zu erhalten, während eine hohe # 8208 Frequenz-Updates zu erhalten?

  • Stellt das System sicher, dass keine Ausfallzeiten erforderlich ist hinzuzufügen, oder die Serverkapazität zu entfernen?

  • Stellt das System sicher, dass die Informationen für die Abfrage sofort verfügbar ist, nachdem sie in die Datenbank hinzugefügt wird?

  • Stellt das System sicher, dass die Sicherheit der Daten beibehalten wird, ohne daß Abfragegeschwindigkeit zu beeinflussen?

  • Stellt das System sicher, dass die Skala der Datenbank # 8208-out und Skala # 8208-Back-Funktionen sind skriptfähig und dass sie auf dem gewählten Server Provisioning Software (zB VMWare und Amazon Cloud Formation) integrieren?

Menü