Die Datenbank Apache Cassandra 4.0 ist verfĂŒgbar

Die Apache Software Foundation hat die Version 4.0 der verteilten NoSQL-Datenbank Apache Cassandra prĂ€sentiert, die fĂŒr den Aufbau hochskalierbarer und zuverlĂ€ssiger Speicher fĂŒr enorme Datenmengen in Form eines assoziativen Arrays (Hash) konzipiert ist. Die Veröffentlichung von Cassandra 4.0 wird als bereit fĂŒr den produktiven Einsatz angesehen und wurde bereits in den Infrastrukturen von Unternehmen wie Amazon, Apple, DataStax, Instaclustr, iland und Netflix getestet, mit Clustern, die mehr als 1000 Knoten umfassen. Der Code des Projekts ist in der Programmiersprache Java verfasst und wird unter der Apache 2.0 Lizenz verbreitet.

UrsprĂŒnglich wurde die Datenbank Cassandra von Facebook entwickelt und 2009 unter die Schirmherrschaft der Apache Foundation gestellt. Industrielle Lösungen auf Basis von Cassandra sind implementiert, um den Betrieb von Diensten solcher Unternehmen wie Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit und Twitter zu gewĂ€hrleisten. Zum Beispiel umfasst die von Apple implementierte Infrastruktur zur Speicherung auf Basis von Apache Cassandra mehr als tausend Cluster mit 160.000 Knoten, die ĂŒber 100 Petabyte Daten speichern. Bei Huawei kommen mehr als 300 Cluster von Apache Cassandra zum Einsatz, die 30.000 Knoten umfassen, wĂ€hrend Netflix ĂŒber 100 Cluster mit 10.000 Knoten verfĂŒgt und mehr als eine Billion Anfragen pro Tag verarbeitet.

Die Datenbank Cassandra vereint ein vollstĂ€ndig verteiltes Hash-System namens Dynamo, das eine fast lineare Skalierbarkeit mit zunehmendem Datenvolumen ermöglicht. Cassandra verwendet ein Datenspeichermodell basierend auf Spaltenfamilien (ColumnFamily), das sich von Systemen wie memcachedb unterscheidet, die Daten nur in einer SchlĂŒssel/Wert-Paar-Kombination speichern, und ermöglicht die Organisation von Hashes mit mehreren Ebenen der Verschachtelung. Um die Interaktion mit der Datenbank zu vereinfachen, wird die Abfragesprache CQL (Cassandra Query Language) unterstĂŒtzt, die SQL Ă€hnlich ist, aber in ihren Funktionen eingeschrĂ€nkt ist. Zu den Möglichkeiten gehören die UnterstĂŒtzung von NamensrĂ€umen und Spaltenfamilien sowie das Erstellen von Indizes durch den Befehl „CREATE INDEX“.

Die Datenbank ermöglicht den Aufbau von fehlerresistenten Speicherlösungen: Die in der Datenbank gespeicherten Daten werden automatisch auf mehrere Knoten eines verteilten Netzwerks repliziert, das unterschiedliche abdecken kann. Rechenzentren. Bei einem Knotenfehler ĂŒbernehmen andere Knoten dessen Funktionen in Echtzeit. Das HinzufĂŒgen neuer Knoten zum Cluster und das Aktualisieren der Cassandra-Version erfolgt in Echtzeit, ohne zusĂ€tzliche manuelle Eingriffe und Neukonfiguration anderer Knoten. Treiber mit CQL-UnterstĂŒtzung sind fĂŒr die Programmiersprachen Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ und JavaScript (Node.js) bereitgestellt.

Hauptneuheiten:

  • Die Leistung und Skalierbarkeit wurden verbessert. Die Effizienz des Datenaustauschs im SSTable-Format (Sorted Strings Table) zwischen Knoten wurde erhöht. Das Protokoll fĂŒr die NachrichtenĂŒbertragung zwischen Knoten (Internode Messaging Protocol) wurde optimiert. Die Übertragungsrate von Datenströmen zwischen Knoten hat sich um das FĂŒnffache erhöht (hauptsĂ€chlich aufgrund der Anwendung der Zero-Copy-Technik und der vollstĂ€ndigen Übertragung von SSTables), und die Bandbreite bei Lese- und SchreibvorgĂ€ngen ist um bis zu 25 % gestiegen. Der Prozess der inkrementellen Wiederherstellung wurde optimiert. Verzögerungen durch eine Pause des Garbage Collectors wurden auf einige Millisekunden reduziert.
  • Die UnterstĂŒtzung fĂŒr ein Audit-Log wurde hinzugefĂŒgt, das die Authentifizierungsoperationen der Benutzer und alle ausgefĂŒhrten CQL-Anfragen verfolgt.
  • Die Möglichkeit zur FĂŒhrung eines vollstĂ€ndigen BinĂ€rlogs fĂŒr Anfragen wurde hinzugefĂŒgt, das den gesamten Datenverkehr von Anfragen und Antworten speichert. Zur Verwaltung stehen die Befehle «nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog» zur VerfĂŒgung, und zur Analyse des Logs wird das Tool fqltool bereitgestellt. Es wurden Befehle zur Umwandlung des Logs in ein lesbares Format (Dump), zum Vergleichen von AktivitĂ€tsausschnitten (Compare) und zur Wiederholung (Replay) zur Analyse mit Wiedergabe der Bedingungen, die fĂŒr die reale Last typisch sind, bereitgestellt.
  • Die UnterstĂŒtzung fĂŒr virtuelle Tabellen wurde hinzugefĂŒgt, die nicht die in SSTables gespeicherten Daten, sondern Informationen bereitstellen, die ĂŒber die API ausgegeben werden (Leistungsmetriken, Informationen zu Einstellungen, Cache-Inhalte, Informationen ĂŒber verbundene Clients usw.).
  • Die Effizienz der Speicherung von Daten in komprimierter Form wurde erhöht, was zu einer Verringerung des Speicherplatzbedarfs und einer Verbesserung der LesevorgĂ€nge fĂŒhrt.
  • Daten, die mit dem System-SchlĂŒsselraum (system.*) verbunden sind, werden jetzt standardmĂ€ĂŸig im ersten Verzeichnis platziert, anstatt auf alle Verzeichnisse mit Daten verteilt zu werden, was die FunktionsfĂ€higkeit des Knotens im Falle eines Ausfalls einer der zusĂ€tzlichen Festplatten gewĂ€hrleistet.
  • Experimentelle UnterstĂŒtzung fĂŒr die temporĂ€re Replikation (Transient Replication) und leichte Quoren (Cheap Quorums) wurde hinzugefĂŒgt. TemporĂ€re Replikate speichern nicht alle Daten und verwenden inkrementelle Wiederherstellung, um mit vollstĂ€ndigen Replikaten synchronisiert zu werden. Leichte Quoren implementieren eine Optimierung fĂŒr SchreibvorgĂ€nge, bei der in temporĂ€re Replikate erst dann geschrieben wird, wenn eine ausreichende Anzahl vollstĂ€ndiger Replikate verfĂŒgbar ist.
  • Experimentelle UnterstĂŒtzung fĂŒr Java 11 wurde hinzugefĂŒgt.
  • Eine experimentelle Option zum Vergleich aller Merkle-BĂ€ume (Merkle Tree) wurde hinzugefĂŒgt. Beispielsweise fĂŒhrt die Aktivierung der Option in einem Cluster mit 3 Knoten, in dem zwei Replikate identisch und eines veraltet ist, zur Aktualisierung des veralteten Replikats unter Verwendung nur einer Kopieroperation des aktuellen Replikats.
  • Neue Funktionen currentTimestamp, currentDate, currentTime und currentTimeUUID wurden hinzugefĂŒgt.
  • UnterstĂŒtzung fĂŒr arithmetische Operationen in CQL-Abfragen wurde hinzugefĂŒgt.
  • Die Möglichkeit, arithmetische Operationen zwischen Datentypen "timestamp" / "date" und "duration" auszufĂŒhren, wurde bereitgestellt.
  • Ein Modus zur Vorschau der Datenströme, die fĂŒr die Wiederherstellung erforderlich sind (nodetool repair —preview), sowie die Möglichkeit zur ÜberprĂŒfung der IntegritĂ€t der wiederhergestellten Daten (nodetool repair —validate) wurde hinzugefĂŒgt.
  • In SELECT-Abfragen wurde die Möglichkeit zur Verarbeitung von Map- und Set-Elementen eingefĂŒhrt.
  • UnterstĂŒtzung fĂŒr die Parallelisierung der Anfangsbauten von Materialized Views (cassandra.yaml:concurrent_materialized_view_builders) wurde hinzugefĂŒgt.
  • Die UnterstĂŒtzung fĂŒr die Sortierung nach bestimmten Metriken und das Limitieren der Anzahl ausgegebener Zeilen wurde im Befehl "nodetool cfstats" hinzugefĂŒgt.
  • Einstellungen wurden bereitgestellt, um die Verbindung des Benutzers nur mit bestimmten Rechenzentren zu begrenzen.
  • Die Möglichkeit zur Begrenzung der IntensitĂ€t (Rate Limit) von Erstellungs- und LöschvorgĂ€ngen fĂŒr Snapshots wurde hinzugefĂŒgt.
  • In cqlsh und cqlshlib wurde UnterstĂŒtzung fĂŒr Python 3 implementiert (die UnterstĂŒtzung fĂŒr Python 2.7 bleibt vorerst erhalten).
  • Die UnterstĂŒtzung fĂŒr die Windows-Plattform wurde eingestellt. Zur AusfĂŒhrung von Cassandra unter Windows wird empfohlen, Linux-Umgebungen zu verwenden, die auf dem WSL2 (Windows Subsystem for Linux 2) oder Virtualisierungssystemen basieren.

Video abspielen


Quelle: opennet.ru
ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster