{"id":37585,"date":"2019-10-31T22:18:27","date_gmt":"2019-10-31T19:18:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\/"},"modified":"2019-10-31T22:18:27","modified_gmt":"2019-10-31T19:18:27","slug":"kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","title":{"rendered":"Wie man in Cassandras Augen schaut und dabei keine Daten, Stabilit\u00e4t und Glauben an NoSQL verliert","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wie man in Cassandras Augen schaut und dabei keine Daten, Stabilit\u00e4t und Glauben an NoSQL verliert\" src=\"\/wp-content\/uploads\/2019\/08\/4845d37a9928f888639c4ebeb7807787.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p>Es hei\u00dft, im Leben sollte man alles mindestens einmal ausprobieren. Und wenn Sie daran gew\u00f6hnt sind, mit relationalen DBMS zu arbeiten, dann ist es besonders f\u00fcr die allgemeine Entwicklung sinnvoll, sich praktisch mit NoSQL vertraut zu machen. Aufgrund der schnellen Entwicklung dieser Technologie gibt es viele kontroverse Meinungen und hitzige Debatten zu diesem Thema, was das Interesse daran besonders anheizt.<br \/>\nWenn man sich mit dem Wesen all dieser Debatten besch\u00e4ftigt, erkennt man, dass sie aus falscher Herangehensweise entstehen. Diejenigen, die NoSQL-Datenbanken genau dort einsetzen, wo sie ben\u00f6tigt werden, sind zufrieden und nutzen alle Vorteile dieser L\u00f6sung. Experimentatoren, die auf diese Technologie als Panazee an Orten setzen, wo sie \u00fcberhaupt nicht anwendbar ist, erleben hingegen Entt\u00e4uschungen, da sie die St\u00e4rken relationaler Datenbanken verlieren, ohne daf\u00fcr nennenswerte Vorteile zu gewinnen.<\/p>\n<p><\/p>\n<p>Ich werde \u00fcber unsere Erfahrungen mit der Implementierung einer L\u00f6sung berichten, die auf der DBMS Cassandra basiert: Mit welchen Herausforderungen wir konfrontiert wurden, wie wir aus schwierigen Situationen herausgekommen sind, ob es uns gelungen ist, Vorteile durch die Nutzung von NoSQL zu erzielen und wo wir zus\u00e4tzliche Anstrengungen\/Mittel investieren mussten.<br \/>\nDie urspr\u00fcngliche Aufgabe besteht darin, ein System zu schaffen, das Anrufe in einem bestimmten Speicher aufzeichnet.<\/p>\n<p><\/p>\n<p>Das Prinzip des Systems funktioniert folgenderma\u00dfen: Eingehende Dateien haben eine bestimmte Struktur, die den Anruf beschreibt. Die Anwendung sorgt dann daf\u00fcr, dass diese Struktur in die entsprechenden Spalten gespeichert wird. Sp\u00e4ter werden die gespeicherten Anrufe genutzt \u2013 zur Anzeige der Informationen \u00fcber den Datenverbrauch der Abonnenten (Belastungen, Anrufe, Verlaufsinformationen zum Konto).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wie man in Cassandras Augen schaut und dabei keine Daten, Stabilit\u00e4t und Glauben an NoSQL verliert\" src=\"\/wp-content\/uploads\/2019\/08\/c7b095dc8879011adb751c96427af512.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Warum wir uns f\u00fcr Cassandra entschieden haben, ist vollkommen nachvollziehbar \u2014 sie schreibt wie ein Maschinengewehr, ist leicht skalierbar und ausfallsicher.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>So, das hat uns die Erfahrung geschenkt<\/h2>\n<p><\/p>\n<p>Ja, ein ausgefallener Knoten ist keine Trag\u00f6die. Darin liegt die Essenz der Ausfallsicherheit von Cassandra. Aber <b>ein Knoten kann aktiv sein und trotzdem in der Leistung nachlassen<\/b>. Wie sich herausstellte, wirkt sich das sofort auf die Leistung des gesamten Clusters aus.<\/p>\n<p><\/p>\n<p><b>Cassandra wird dort nicht absichern, wo Oracle mit seinen Constraints geholfen hat<\/b>. Und wenn der Autor der Anwendung das im Voraus nicht verstanden hat, ist das eingegangene Duplikat f\u00fcr Cassandra nicht schlechter als das Original. Wenn es bereits angekommen ist, f\u00fcgen wir es einfach ein.<\/p>\n<p><\/p>\n<p>Die kostenlose Cassandra \u201eout of the box\u201c hat der IKT schlagartig nicht gefallen: <b>Es gibt keine Protokollierung von Benutzeraktionen, auch keine Rechteeinschr\u00e4nkungen.<\/b>. Informationen \u00fcber Anrufe gelten als personenbezogene Daten, was bedeutet, dass alle Versuche, diese in irgendeiner Weise anzufordern oder zu \u00e4ndern, protokolliert werden m\u00fcssen, um sp\u00e4ter gepr\u00fcft zu werden. Au\u00dferdem muss man sich der Notwendigkeit bewusst sein, die Rechte auf verschiedene Ebenen f\u00fcr unterschiedliche Benutzer zu trennen. Ein einfacher Betriebstechniker und ein Superadministrator, der problemlos den gesamten Keyspace l\u00f6schen kann, sind unterschiedliche Rollen mit unterschiedlicher Verantwortung und Kompetenz. Ohne diese Rechteeinschr\u00e4nkung wird der Wert und die Integrit\u00e4t der Daten schneller in Frage gestellt als bei einem Konsistenzlevel von ANY. <\/p>\n<p><\/p>\n<p>Wir haben nicht ber\u00fccksichtigt, dass f\u00fcr Anrufe sowohl ernsthafte Analysen als auch regelm\u00e4\u00dfige Abfragen unter verschiedenen Bedingungen erforderlich sind. Da die gew\u00e4hlten Datens\u00e4tze sp\u00e4ter gel\u00f6scht und \u00fcberschrieben werden sollen (im Rahmen der Aufgabe m\u00fcssen wir den Prozess der Datenaktualisierung unterst\u00fctzen, wenn uns von Anfang an falsche Daten zugef\u00fchrt wurden), ist Cassandra hierf\u00fcr nicht geeignet. <b>Cassandra ist wie ein Sparschwein \u2013 man kann bequem Dinge hineingeben, aber man kann nicht darin z\u00e4hlen.<\/b><\/p>\n<p><\/p>\n<p><b>Wir haben ein Problem mit der Datenmigration in Testumgebungen.<\/b> (5 Knoten im Test gegen\u00fcber 20 in der Produktion). In solch einem Fall kann kein Dump verwendet werden.<\/p>\n<p><\/p>\n<p>Das Problem mit den Aktualisierungen des Datenbankschemas der Anwendung, die in Cassandra schreibt. <b>Ein Rollback w\u00fcrde eine gro\u00dfe Anzahl an Tombstones erzeugen, was auf unvorhersehbare Weise die Leistung beeintr\u00e4chtigen kann.<\/b>. Cassandra ist f\u00fcr das Schreiben optimiert und denkt vor dem Schreiben nicht viel nach. Jede Operation mit bestehenden Daten darin ist ebenfalls ein Schreibvorgang. Das hei\u00dft, wenn wir \u00dcberfl\u00fcssiges l\u00f6schen, erzeugen wir einfach noch mehr Datens\u00e4tze, und nur ein Teil davon wird mit Tombstones markiert.<\/p>\n<p><\/p>\n<p>Timeouts beim Einf\u00fcgen. Cassandra ist beim Schreiben gro\u00dfartig, aber <b>manchmal kann der eingehende Datenstrom sie erheblich verwirren.<\/b>. Dies geschieht, wenn die Anwendung beginnt, mehrere Datens\u00e4tze im Kreis zu bef\u00f6rdern, die aus irgendeinem Grund nicht eingef\u00fcgt werden k\u00f6nnen. Und wir ben\u00f6tigen einen echten DBA, der die gc.log, die System- und Debug-Logs auf langsame Abfragen und Metriken zum Kompaktieren \u00fcberwacht.\n<\/p>\n<p><\/p>\n<p>Mehrere Rechenzentren im Cluster. <b>Woher lesen und wohin schreiben?<\/b> <br \/>\nKann man vielleicht zwischen Lesen und Schreiben unterscheiden? Und wenn ja, sollte sich der DC zum Schreiben oder Lesen n\u00e4her an der Anwendung befinden? Und wird es nicht zu einem echten Split-Brain kommen, wenn wir den falschen Konsistenzgrad w\u00e4hlen? Es gibt viele Fragen, viele unerforschte Einstellungen und Optionen, die wir so gerne ausprobieren w\u00fcrden.\n<\/p>\n<p><\/p>\n<h2>Wie wir das gel\u00f6st haben<\/h2>\n<p><\/p>\n<p><b>Um zu verhindern, dass der Knoten eingest\u00fcrzt, haben wir SWAP deaktiviert.<\/b>. Und jetzt sollte der Knoten bei Ged\u00e4chtnismangel ausfallen und keine langen gc-Pausen erzeugen.<\/p>\n<p><\/p>\n<p>Also setzen wir nicht mehr auf die Logik in der Datenbank. <b>Die Entwickler der Anwendung erlernen neue Strategien und fangen an, in ihrem eigenen Code aktiv Vorsichtsma\u00dfnahmen zu treffen.<\/b> Eine ideale klare Trennung von Speicherung und Verarbeitung der Daten.<\/p>\n<p><\/p>\n<p><b>Wir haben Unterst\u00fctzung von DataStax gekauft.<\/b> Die Box-Version von Cassandra wird nicht mehr weiterentwickelt (der letzte Commit war im Februar 2018). Gleichzeitig bietet Datastax einen hervorragenden Service und eine gro\u00dfe Anzahl von \u00fcberarbeiteten und an bestehende IS-L\u00f6sungen angepassten L\u00f6sungen an.<\/p>\n<p><\/p>\n<p>Ich m\u00f6chte auch hervorheben, dass Cassandra nicht besonders benutzerfreundlich f\u00fcr Abfragen ist. Nat\u00fcrlich ist CQL ein gro\u00dfer Schritt in Richtung Benutzerfreundlichkeit (im Vergleich zu Trift). Aber wenn man ganze Abteilungen hat, die an solch bequemen Joins, freier Filterung nach jedem Feld und M\u00f6glichkeiten zur Optimierung der Abfrage gew\u00f6hnt sind und diese Abteilungen daran arbeiten, Anspr\u00fcche und Notf\u00e4lle zu bew\u00e4ltigen, dann erscheint ihnen die Entscheidung f\u00fcr Cassandra feindlich und dumm. Und wir begannen, das Problem zu l\u00f6sen, wie unsere Kollegen Abfragen durchf\u00fchren k\u00f6nnen. <\/p>\n<p><\/p>\n<p>Wir haben zwei Optionen betrachtet. In der ersten Option schreiben wir die Aufrufe nicht nur in C*, sondern auch in die Archivdatenbank Oracle. Aber im Gegensatz zu C* werden in dieser Datenbank nur die Aufrufe des aktuellen Monats gespeichert (eine ausreichende Speichertiefe f\u00fcr Re-Rate-F\u00e4lle). Hier zeigte sich sofort das n\u00e4chste Problem: Wenn wir synchron schreiben, verlieren wir alle Vorteile von C*, die mit schneller Einf\u00fcgung verbunden sind; bei asynchronem Schreiben gibt es keine Garantie, dass alle ben\u00f6tigten Aufrufe \u00fcberhaupt in Oracle gelangen. Es gab jedoch einen gro\u00dfen Vorteil: F\u00fcr die Nutzung bleibt der gewohnte PL\/SQL Developer, d.h. wir setzen praktisch das Muster \u201eFassade\u201c um. Alternative Option: Wir implementieren einen Mechanismus, der die Aufrufe aus C* ausgibt, einige Daten zur Anreicherung aus den entsprechenden Tabellen in Oracle zieht, die erhaltenen Abfragen zusammenf\u00fchrt und uns das Ergebnis liefert, das wir danach in irgendeiner Weise verwenden (r\u00fcckg\u00e4ngig machen, wiederholen, analysieren, bewundern). Nachteile: Der Prozess stellt sich als ziemlich mehrstufig heraus und zudem fehlt eine Schnittstelle f\u00fcr die Mitarbeiter im Betrieb.<\/p>\n<p><\/p>\n<p>Letztendlich haben wir uns doch f\u00fcr die zweite Option entschieden. <b>F\u00fcr die Abfragen aus verschiedenen Datenbanken haben wir Apache Spark verwendet.<\/b> Der Kernmechanismus bestand aus Java-Code, der anhand der angegebenen Schl\u00fcssel (Abonnent, Zeitpunkt des Anrufs \u2013 Schl\u00fcssel des Abschnitts) Daten aus C* abruft sowie die ben\u00f6tigten Daten f\u00fcr die Anreicherung aus einer anderen Datenbank. Danach hat er sie im Speicher zusammengef\u00fchrt und das Ergebnis in eine Ergebnistabelle ausgegeben. \u00dcber Spark haben wir eine Web-Oberfl\u00e4che erstellt, die ganz gut f\u00fcr den Betrieb geeignet ist.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wie man in Cassandras Augen schaut und dabei keine Daten, Stabilit\u00e4t und Glauben an NoSQL verliert\" src=\"\/wp-content\/uploads\/2019\/08\/5754363569f159dd7b86972bb0cef732.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Bei der L\u00f6sung des Problems mit der Datenaktualisierung hat das Team erneut mehrere L\u00f6sungsans\u00e4tze in Betracht gezogen. Sowohl die \u00dcbertragung \u00fcber Sstloader als auch die M\u00f6glichkeit, den Cluster im Testbereich in zwei Teile zu splitten, von denen jeder abwechselnd mit einem Cluster mit produktiven Daten verbunden wird, wodurch er sich somit von diesem speist. Bei der Aktualisierung des Tests war geplant, die beiden Teile zu tauschen: der Teil, der im Test gearbeitet hat, wird gel\u00f6scht und in die Produktion eingegeben, w\u00e4hrend der andere mit den Daten separat beginnt. Nachdem wir jedoch noch einmal dar\u00fcber nachgedacht haben, bewerteten wir die Daten, die \u00fcbertragen werden sollten, als rationaler und erkannten, dass die Anfragen an sich eine inkonsistente Entit\u00e4t f\u00fcr Tests sind, die im Bedarfsfall schnell erzeugt werden und dass der produktive Datensatz keinen Wert f\u00fcr die \u00dcbertragung in den Test hat. Es gibt einige Speicherobjekte, die es wert sind, \u00fcbertragen zu werden, aber es sind buchst\u00e4blich nur ein paar Tabellen, die zudem nicht sehr schwer sind. Daher <b>kam als L\u00f6sung erneut Spark zur Hilfe, mit dem wir ein Skript zur Daten\u00fcbertragung zwischen den Tabellen von Produktion und Test erstellt und aktiv verwendet haben.<\/b><\/p>\n<p><\/p>\n<p><b>Unsere aktuelle Deployment-Politik erlaubt es uns, ohne Rollbacks zu arbeiten.<\/b> Vor der Produktion erfolgt stets ein obligatorisches Rollout im Test, wo Fehler nicht so kostspielig sind. Im Falle eines Misserfolgs kann man immer den Keyspace l\u00f6schen und das gesamte Schema von Anfang an neu aufspielen.<\/p>\n<p><\/p>\n<p>Um die kontinuierliche Verf\u00fcgbarkeit von Cassandra sicherzustellen, wird ein Database Administrator ben\u00f6tigt, und das ist nicht alles. <b>Alle, die mit der Anwendung arbeiten, m\u00fcssen verstehen, wo und wie sie die aktuelle Situation \u00fcberwachen und Probleme rechtzeitig diagnostizieren k\u00f6nnen.<\/b> Zu diesem Zweck nutzen wir aktiv DataStax OpsCenter (Verwaltung und \u00dcberwachung von Workloads), die systemmetrischen Daten des Cassandra Drivers (Anzahl der Zeit\u00fcberschreitungen beim Schreiben in C*, Anzahl der Zeit\u00fcberschreitungen beim Lesen aus C*, maximale Latenz usw.), und \u00fcberwachen die Funktionalit\u00e4t der Anwendung, die mit Cassandra arbeitet.\n<\/p>\n<p><\/p>\n<p>Als wir \u00fcber die vorherige Frage nachdachten, erkannten wir, wo das Haupt risiko verborgen sein k\u00f6nnte. Es handelt sich um die Formen der Datenanzeige, die Daten aus mehreren voneinander unabh\u00e4ngigen Abfragen an das Speichersystem abrufen. Dadurch k\u00f6nnen wir recht inkonsistente Informationen erhalten. Aber dieses Problem w\u00e4re ebenso relevant, wenn wir nur mit einem Rechenzentrum arbeiten w\u00fcrden. Daher ist es hier am sinnvollsten, eine Batch-Lese operation in einer externen Anwendung zu erstellen, die die Daten zu einem einheitlichen Zeitpunkt abruft. Was die Trennung von Lese- und Schreibvorg\u00e4ngen hinsichtlich der Leistung betrifft, so hielt uns hier das Risiko davon ab, dass wir bei einem gewissen Verlust der Verbindung zwischen den Rechenzentren zwei v\u00f6llig inkonsistente Cluster erhalten k\u00f6nnten.<\/p>\n<p><\/p>\n<p>Insgesamt sind wir derzeit <b>auf einer Konsistenzebene f\u00fcr die Schreiboperationen von EACH_QUORUM und f\u00fcr die Lesevorg\u00e4nge von LOCAL_QUORUM stehen geblieben.<\/b><\/p>\n<p><\/p>\n<h2>Kurze Eindr\u00fccke und Schlussfolgerungen<\/h2>\n<p><\/p>\n<p>Um die entstandene L\u00f6sung hinsichtlich des operativen Supports und der Perspektiven f\u00fcr die weitere Entwicklung zu bewerten, haben wir \u00fcberlegt, wo diese Entwicklung noch angewendet werden kann.<\/p>\n<p><\/p>\n<p>Zur schnellen Erw\u00e4hnung k\u00f6nnten Daten-Scoring f\u00fcr Programme wie \u201eZahle, wann es dir passt\u201c (Laden von Informationen in C*, Berechnungen auf Spark-Skripten), die Erfassung von Reklamationen mit Aggregation nach Richtungen, die Speicherung von Rollen und die Berechnung nach der Rollenmatrix von Benutzerzugriffsrechten sein. <\/p>\n<p><\/p>\n<p>Wie wir sehen, ist das Repertoire breit und vielf\u00e4ltig. Und wenn wir im Lager der Bef\u00fcrworter\/Gegner von NoSQL w\u00e4hlen m\u00fcssten, w\u00fcrden wir uns den Bef\u00fcrwortern anschlie\u00dfen, da wir die Vorteile erhalten haben, genau dort, wo wir es erwartet hatten.<\/p>\n<p><\/p>\n<p>Sogar die Cassandra-Standardl\u00f6sung erm\u00f6glicht eine horizontale Skalierung in Echtzeit, wobei das Problem der Datenwachstums im System v\u00f6llig schmerzlos gel\u00f6st wird. Uns ist es gelungen, einen sehr stark belasteten Mechanismus zur Berechnung von Aggregaten basierend auf Anrufen in einen separaten Kontur zu extrahieren und gleichzeitig das Schema und die Logik der Anwendung zu teilen, indem wir die sch\u00e4dliche Praxis des Schreibens von benutzerdefinierten Jobs und Objekten in der Datenbank aufgegeben haben. Wir haben die M\u00f6glichkeit erhalten, auszuw\u00e4hlen und anzupassen, in welchen Rechenzentren wir Berechnungen durchf\u00fchren und wo wir Daten speichern, und uns bez\u00fcglich Ausf\u00e4llen sowohl einzelner Knoten als auch des gesamten Rechenzentrums abzusichern.<\/p>\n<p><\/p>\n<p>Bei der Anwendung unserer Architektur auf neue Projekte und bereits mit einigem Erfahrung im Gep\u00e4ck m\u00f6chten wir die oben beschriebenen Nuancen sofort ber\u00fccksichtigen und einige Fehler vermeiden, sowie scharfe Kanten entsch\u00e4rfen, die wir anf\u00e4nglich nicht umgehen konnten.<\/p>\n<p><\/p>\n<p>Zum Beispiel, <b>aktuellen Updates von Cassandra rechtzeitig folgen<\/b>, denn viele Probleme, die wir gehabt haben, waren bereits bekannt und haben sich als l\u00f6sbar erwiesen.<\/p>\n<p><\/p>\n<p><b>Die Datenbank und Spark nicht auf denselben Knoten setzen<\/b> oder strikte Trennung nach der zul\u00e4ssigen Ressourcennutzung, da Spark mehr RAM konsumieren kann als erlaubt, und wir schnell Problem Nummer 1 auf unserer Liste erhalten w\u00fcrden.<\/p>\n<p><\/p>\n<p><b>Das Monitoring und die Betriebskompetenz bereits in der Testphase des Projekts zu verbessern. <\/b><b>Von Anfang an alle potenziellen Nutzer unserer L\u00f6sung maximal ber\u00fccksichtigen<\/b>, denn letztendlich wird davon die Struktur der Datenbank abh\u00e4ngen.<\/p>\n<p><\/p>\n<p>Die entstandene Struktur mehrmals auf m\u00f6gliche Optimierungen \u00fcberpr\u00fcfen. Bestimmen, welche Felder serialisiert werden k\u00f6nnen. \u00dcberlegen, welche zus\u00e4tzlichen Tabellen wir erstellen sollten, um die ben\u00f6tigten Informationen auf die korrekte und optimale Weise zu ber\u00fccksichtigen und sie dann auf Anfrage bereitzustellen (zum Beispiel, indem wir davon ausgehen, dass wir dieselben Daten in verschiedenen Tabellen speichern k\u00f6nnen, unter Ber\u00fccksichtigung unterschiedlicher Aufteilungen nach verschiedenen Kriterien, wodurch wir erheblich CPU-Zeit bei Leseanfragen sparen k\u00f6nnen).<\/p>\n<p><\/p>\n<p>Nicht schlecht <b>von Anfang an TTL und die Bereinigung veralteter Daten einzuplanen.<\/b><\/p>\n<p><\/p>\n<p>Beim Export von Daten aus Cassandra <b>soll die Logik der Anwendung nach dem FETCH-Prinzip arbeiten, damit nicht alle Zeilen auf einmal in den Speicher geladen werden, sondern in Batches ausgew\u00e4hlt werden.<\/b><\/p>\n<p><\/p>\n<p>Es ist w\u00fcnschenswert, vor der Migration des Projekts zu der beschriebenen L\u00f6sung <b>die Ausfallsicherheit des Systems zu \u00fcberpr\u00fcfen, indem eine Reihe von Stresstests durchgef\u00fchrt wird<\/b>, wie etwa Datenverluste in einem Rechenzentrum, die Wiederherstellung besch\u00e4digter Daten \u00fcber einen bestimmten Zeitraum, Netzwerkausf\u00e4lle zwischen Rechenzentren. Solche Tests erm\u00f6glichen es nicht nur, die Vor- und Nachteile der vorgeschlagenen Architektur zu bewerten, sondern bieten auch eine gute Aufw\u00e4rmpraxis f\u00fcr die Ingenieure, die sie durchf\u00fchren, und die erlernten F\u00e4higkeiten werden nicht \u00fcberfl\u00fcssig sein, falls Systemausf\u00e4lle im Produkt auftreten.<\/p>\n<p><\/p>\n<p>Wenn wir mit kritischen Informationen (wie Daten f\u00fcr die Abrechnung oder die Berechnung von Kundenschulden) arbeiten, sollten wir auch auf Werkzeuge achten, die helfen, die Risiken zu minimieren, die aufgrund der Eigenschaften von DBMS entstehen. Zum Beispiel, nutzen Sie das Tool nodesync (Datastax) und entwickeln Sie eine optimale Strategie f\u00fcr seine Nutzung, um <b>f\u00fcr die Konsistenz keine \u00fcberm\u00e4\u00dfige Belastung f\u00fcr Cassandra zu erzeugen.<\/b> und verwenden Sie es nur f\u00fcr bestimmte Tabellen in bestimmten Zeitr\u00e4umen.<\/p>\n<p><\/p>\n<p>Wie steht es also seit einem halben Jahr mit Cassandra? Insgesamt gibt es keine ungel\u00f6sten Probleme. Es gab auch keine ernsthaften St\u00f6rungen oder Datenverluste. Ja, wir mussten uns Gedanken \u00fcber die Kompensation einiger zuvor nicht aufgetretener Probleme machen, aber letztlich hat dies unsere architektonische Entscheidung nicht stark getr\u00fcbt. Wenn Sie bereit sind, etwas Neues auszuprobieren und keine Angst haben, dabei entt\u00e4uscht zu werden, sollten Sie sich darauf vorbereiten, dass nichts umsonst ist. Sie m\u00fcssen mehr recherchieren, sich mit der Dokumentation vertrautmachen und Ihre individuellen Stolpersteine sammeln als bei einer alten Legacy-L\u00f6sung, und keine Theorie kann Ihnen im Voraus sagen, welche Stolpersteine genau auf Sie warten.<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465333\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28210,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0433\u043b\u0430\u0437\u0430 \u041a\u0430\u0441\u0441\u0430\u043d\u0434\u0440\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0435\u0440\u0443 \u0432 NoSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wie man Cassandra in die Augen schaut, ohne dabei Daten, Stabilit\u00e4t und Vertrauen in NoSQL zu verlieren | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0433\u043b\u0430\u0437\u0430 \u041a\u0430\u0441\u0441\u0430\u043d\u0434\u0440\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0435\u0440\u0443 \u0432 NoSQL | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:27+00:00","article:modified_time":"2019-10-31T19:18:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37585","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:06:01","updated":"2026-01-23 18:29:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/28210"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}