Apache Cassandra 4.0 DBMS beschikbaar

De Apache Software Foundation presenteerde de release van het gedistribueerde DBMS Apache Cassandra 4.0, dat behoort tot de klasse van noSQL-systemen en is ontworpen om zeer schaalbare en betrouwbare opslag te creëren van enorme hoeveelheden gegevens die zijn opgeslagen in de vorm van een associatieve array (hash). De Cassandra 4.0-release wordt beschouwd als klaar voor productie-implementatie en is al getest in de infrastructuren van Amazon, Apple, DataStax, Instaclustr, iland en Netflix met clusters van meer dan 1000 knooppunten. De projectcode is geschreven in Java en wordt gedistribueerd onder de Apache 2.0-licentie.

Het Cassandra DBMS is oorspronkelijk ontwikkeld door Facebook en in 2009 overgedragen onder auspiciën van de Apache Foundation. Industriële oplossingen op basis van Cassandra zijn ingezet om diensten van bedrijven als Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit en Twitter aan te drijven. De op Apache Cassandra gebaseerde opslaginfrastructuur die door Apple wordt geïmplementeerd, heeft bijvoorbeeld meer dan duizend clusters, waaronder 160 knooppunten, die meer dan 100 petabytes aan gegevens opslaan. Huawei gebruikt meer dan 300 Apache Cassandra-clusters, bestaande uit 30 knooppunten, en Netflix gebruikt meer dan 100 clusters, die 10 knooppunten bestrijken en meer dan een biljoen verzoeken per dag verwerken.

Het Cassandra DBMS combineert een volledig gedistribueerd Dynamo-hashsysteem, dat vrijwel lineaire schaalbaarheid biedt naarmate het gegevensvolume toeneemt. Cassandra gebruikt een gegevensopslagmodel gebaseerd op een kolomfamilie (ColumnFamily), dat verschilt van systemen zoals memcachedb, die gegevens alleen in een sleutel-/waardeketen opslaan, door de mogelijkheid om de opslag van hashes te organiseren met verschillende nestingniveaus. Om de interactie met de database te vereenvoudigen, wordt de gestructureerde querytaal CQL (Cassandra Query Language) ondersteund, die doet denken aan SQL, maar beperkt in functionaliteit. Functies omvatten ondersteuning voor naamruimten en kolomfamilies, en het maken van indexen met behulp van de expressie "CREATE INDEX".

Met het DBMS kunt u storingsbestendige opslag creëren: gegevens die in de database zijn geplaatst, worden automatisch gerepliceerd naar verschillende knooppunten van een gedistribueerd netwerk, dat verschillende datacenters kan omspannen. Wanneer een knooppunt uitvalt, worden de functies ervan meteen overgenomen door andere knooppunten. Het toevoegen van nieuwe knooppunten aan het cluster en het updaten van de Cassandra-versie gebeurt in een handomdraai, zonder extra handmatige tussenkomst of het opnieuw configureren van andere knooppunten. Drivers met CQL-ondersteuning zijn voorbereid voor Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ en JavaScript (Node.js).

Belangrijkste innovaties:

  • Verbeterde prestaties en schaalbaarheid. De efficiëntie van gegevensuitwisseling in SSTable-formaat (Sorted Strings Table) tussen knooppunten is verbeterd. Het Internode Messaging Protocol is geoptimaliseerd. De snelheid van het overbrengen van datastromen tussen knooppunten is tot vijf keer toegenomen (voornamelijk dankzij het gebruik van de Zero Copy-techniek en de overdracht van volledige SSTables) en de doorvoer voor lees- en schrijfbewerkingen is toegenomen tot 5%. Het incrementele herstelproces is geoptimaliseerd. Latenties als gevolg van het onderbreken van de garbagecollection worden teruggebracht tot enkele milliseconden.
  • Ondersteuning toegevoegd voor een auditlogboek waarmee u gebruikersauthenticatiebewerkingen en alle uitgevoerde CQL-query's kunt volgen.
  • De mogelijkheid toegevoegd om een ​​volledig binair verzoeklogboek bij te houden, zodat u al het verzoek- en antwoordverkeer kunt opslaan. Voor beheer worden de commando's “nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog” voorgesteld, en het hulpprogramma fqltool wordt geleverd voor loganalyse. Er zijn opdrachten beschikbaar voor het omzetten van het logboek in een leesbare vorm (Dump), het vergelijken van activiteitsplakken (Vergelijken) en het opnieuw uitvoeren (Replay) voor analyse, waarbij de omstandigheden worden gereproduceerd die inherent zijn aan de werkelijke belasting.
  • Ondersteuning toegevoegd voor virtuele tabellen die geen gegevens weerspiegelen die zijn opgeslagen in SSTables, maar informatie-uitvoer via de API (prestatiestatistieken, instellingeninformatie, cache-inhoud, informatie over verbonden clients, enz.).
  • De efficiëntie van gecomprimeerde gegevensopslag is verbeterd, waardoor het schijfruimteverbruik is verminderd en de leesprestaties zijn verbeterd.
  • Gegevens gerelateerd aan de systeemsleutelruimte (system.*) worden nu standaard in de eerste map geplaatst in plaats van over alle gegevensmappen te worden verdeeld, waardoor het knooppunt operationeel kan blijven als een van de extra schijven uitvalt.
  • Experimentele ondersteuning toegevoegd voor tijdelijke replicatie en goedkope quorums. Tijdelijke replica's slaan niet alle gegevens op en gebruiken incrementeel herstel om consistent te zijn met volledige replica's. Lichte quorums implementeren schrijfoptimalisatie waarbij er geen schrijfbewerkingen worden uitgevoerd naar tijdelijke replica's totdat er voldoende volledige replica's beschikbaar zijn.
  • Experimentele ondersteuning toegevoegd voor Java 11.
  • Experimentele optie toegevoegd om alle Merkle-bomen te vergelijken. Als u bijvoorbeeld de optie inschakelt op een cluster met drie knooppunten waarin twee replica's identiek zijn en één verouderd is, resulteert dit in een update van de verouderde replica met slechts één kopieerbewerking van de huidige replica.
  • Nieuwe functies currentTimestamp, currentDate, currentTime en currentTimeUUID toegevoegd.
  • Ondersteuning toegevoegd voor rekenkundige bewerkingen in CQL-query's.
  • Er wordt voorzien in de mogelijkheid om rekenkundige bewerkingen uit te voeren tussen gegevens met de typen “timestamp”/”date” en “duration”.
  • Een modus toegevoegd voor het bekijken van gegevensstromen die nodig zijn voor herstel (nodetool reparatie –preview) en de mogelijkheid om de integriteit te controleren van de gegevens die worden hersteld (nodetool reparatie –validate).
  • SELECT-query's hebben nu de mogelijkheid om Map- en Set-elementen te verwerken.
  • Ondersteuning toegevoegd voor het parallelliseren van de initiële constructiefase van gematerialiseerde weergaven (cassandra.yaml:concurrent_materialized_view_builders).
  • De opdracht "nodetool cfstats" heeft ondersteuning toegevoegd voor het sorteren op bepaalde statistieken en voor het beperken van het aantal weergegeven rijen.
  • Er zijn instellingen beschikbaar om de verbinding van de gebruiker met bepaalde datacenters te beperken.
  • De mogelijkheid toegevoegd om de intensiteit (snelheidslimiet) van het maken en wissen van snapshots te beperken.
  • cqlsh en cqlshlib ondersteunen nu Python 3 (Python 2.7 wordt nog steeds ondersteund).
  • Ondersteuning voor het Windows-platform is stopgezet. Om Cassandra op Windows te draaien, wordt aanbevolen om Linux-omgevingen te gebruiken die zijn gemaakt op basis van het WSL2-subsysteem (Windows Subsystem for Linux 2) of virtualisatiesystemen.



Bron: opennet.ru

Voeg een reactie