Apache Cassandra 4.0 DBMS beskikbaar

Die Apache Software Foundation het die vrystelling van die verspreide DBMS Apache Cassandra 4.0 aangebied, wat aan die klas van noSQL-stelsels behoort en ontwerp is om hoogs skaalbare en betroubare berging te skep van groot hoeveelhede data wat in die vorm van 'n assosiatiewe skikking (hash) gestoor is. Die Cassandra 4.0-vrystelling word beskou as gereed vir produksie-implementering en is reeds getoets in die infrastruktuur van Amazon, Apple, DataStax, Instaclustr, iland en Netflix met groepe van meer as 1000 nodusse. Die projekkode is in Java geskryf en word onder die Apache 2.0-lisensie versprei.

Die Cassandra DBMS is oorspronklik deur Facebook ontwikkel en in 2009 onder die vaandel van die Apache-stigting oorgedra. Industriële oplossings gebaseer op Cassandra is ontplooi om dienste van maatskappye soos Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit en Twitter aan te dryf. Byvoorbeeld, die Apache Cassandra-gebaseerde berging-infrastruktuur wat deur Apple ontplooi is, het meer as 'n duisend groepe, insluitend 160 duisend nodusse en stoor meer as 100 petagrepe data. Huawei gebruik meer as 300 Apache Cassandra-klusters, bestaande uit 30 duisend nodusse, en Netflix gebruik meer as 100 trosse, wat 10 duisend nodusse dek en meer as 'n triljoen versoeke per dag verwerk.

Die Cassandra DBMS kombineer 'n volledig verspreide Dynamo-hash-stelsel, wat byna lineêre skaalbaarheid bied namate die volume data toeneem. Cassandra gebruik 'n databergingsmodel gebaseer op 'n kolomfamilie (ColumnFamily), wat verskil van stelsels soos memcachedb, wat data slegs in 'n sleutel/waardeketting stoor, deur die vermoë om berging van hashes met verskeie vlakke van nes te organiseer. Om interaksie met die databasis te vereenvoudig, word die gestruktureerde navraagtaal CQL (Cassandra Query Language) ondersteun, wat aan SQL herinner, maar in funksionaliteit verminder. Kenmerke sluit in ondersteuning vir naamruimtes en kolomfamilies, en die skep van indekse deur die "CREATE INDEX"-uitdrukking te gebruik.

Die DBBS laat jou toe om foutbestande berging te skep: data wat in die databasis geplaas word, word outomaties na verskeie nodusse van 'n verspreide netwerk gerepliseer, wat verskillende datasentrums kan strek. Wanneer 'n nodus faal, word sy funksies dadelik deur ander nodusse opgetel. Die toevoeging van nuwe nodusse by die groepering en die opdatering van die Cassandra-weergawe word dadelik gedoen, sonder bykomende handmatige ingryping of herkonfigurasie van ander nodusse. Bestuurders met CQL-ondersteuning is voorberei vir Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ en JavaScript (Node.js).

Belangrikste innovasies:

  • Verbeterde werkverrigting en skaalbaarheid. Die doeltreffendheid van data-uitruiling in SSTable (Sorted Strings Table) formaat tussen nodusse is verbeter. Die Internode Messaging Protocol is geoptimaliseer. Die spoed van die oordrag van datastrome tussen nodusse het tot 5 keer toegeneem (hoofsaaklik as gevolg van die gebruik van die Zero Copy-tegniek en die oordrag van hele SSTables), en die deurset vir lees- en skryfbewerkings het tot 25% toegeneem. Die inkrementele herstelproses is geoptimaliseer. Latensies as gevolg van die pouse van vullisversameling word tot 'n paar millisekondes verminder.
  • Bygevoeg ondersteuning vir 'n oudit log wat jou toelaat om gebruiker stawing bedrywighede en alle uitgevoer CQL navrae op te spoor.
  • Bygevoeg die vermoë om 'n volledige binêre versoek log te handhaaf, sodat jy alle versoek en reaksie verkeer te stoor. Vir bestuur word die opdragte "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" voorgestel, en die fqltool-nutsding word verskaf vir log-analise. Opdragte word verskaf vir die omskakeling van die logboek in 'n leesbare vorm (Dump), vergelyking van aktiwiteitskywe (Vergelyk) en heruitvoering (Replay) vir analise wat die toestande inherent aan die werklike las weergee.
  • Bygevoeg ondersteuning vir virtuele tabelle wat nie data weerspieël wat in SSTables gestoor is nie, maar inligting-uitset via die API (prestasiemaatstawwe, instellingsinligting, kasinhoud, inligting oor gekoppelde kliënte, ens.).
  • Die doeltreffendheid van saamgeperste databerging is verbeter, wat skyfspasieverbruik verminder en leeswerkverrigting verbeter.
  • Data wat verband hou met die stelselsleutelspasie (stelsel.*) word nou by verstek in die eerste gids geplaas in plaas daarvan om oor alle datagidse versprei te word, wat die nodus in staat stel om operasioneel te bly as een van die bykomende skywe misluk.
  • Bygevoeg eksperimentele ondersteuning vir verbygaande replikasie en goedkoop kworums. Tydelike replikas stoor nie alle data nie en gebruik inkrementele herstel om in ooreenstemming met volledige replikas te wees. Ligte kworums implementeer skryfoptimering waarin geen skryfwerk aan tydelike replikas gemaak word totdat 'n voldoende stel volledige replikas beskikbaar is nie.
  • Bygevoeg eksperimentele ondersteuning vir Java 11.
  • Eksperimentele opsie bygevoeg om alle Merkle-bome te vergelyk. Byvoorbeeld, om die opsie op 'n 3-node-kluster te aktiveer waarin twee replikas identies is en een verouderd is, sal lei tot 'n opdatering van die verouderde replika deur slegs een kopieerbewerking van die huidige replika te gebruik.
  • Bygevoeg nuwe funksies currentTimestamp, currentDate, currentTime en currentTimeUUID.
  • Bygevoeg ondersteuning vir rekenkundige bewerkings in CQL-navrae.
  • Die vermoë om rekenkundige bewerkings uit te voer tussen data met die tipes "tydstempel"/"datum" en "duur" word verskaf.
  • Bygevoeg 'n modus vir die voorskou van datastrome wat nodig is vir herstel (nodetool herstel —voorskou) en die vermoë om die integriteit van die data wat herstel word na te gaan (nodetool herstel —validate).
  • SELECT-navrae het nou die vermoë om kaart- en stelelemente te verwerk.
  • Bygevoeg ondersteuning vir die parallellisering van die aanvanklike konstruksiestadium van gematerialiseerde aansigte (cassandra.yaml:concurrent_materialized_view_builders).
  • Die "nodetool cfstats"-opdrag het ondersteuning bygevoeg vir sortering volgens sekere maatstawwe en die beperking van die aantal rye wat vertoon word.
  • Instellings word verskaf om die gebruiker se verbinding slegs met sekere datasentrums te beperk.
  • Bygevoeg die vermoë om die intensiteit (koerslimiet) van momentopname-skepping en skoonmaakoperasies te beperk.
  • cqlsh en cqlshlib ondersteun nou Python 3 (Python 2.7 word steeds ondersteun).
  • Ondersteuning vir die Windows-platform is gestaak. Om Cassandra op Windows te laat loop, word dit aanbeveel om Linux-omgewings te gebruik wat op die basis van die WSL2-substelsel (Windows Subsystem for Linux 2) of virtualisasiestelsels geskep is.



Bron: opennet.ru

Voeg 'n opmerking