Apache Cassandra 4.0 DBMS beskikber

De Apache Software Foundation presintearre de frijlitting fan 'e ferspraat DBMS Apache Cassandra 4.0, dy't heart ta de klasse fan noSQL-systemen en is ûntworpen om heul skalberbere en betroubere opslach te meitsjen fan enoarme hoemannichten gegevens opslein yn 'e foarm fan in assosjatyf array (hash). De Cassandra 4.0-release wurdt beskôge as klear foar produksje-ymplemintaasje en is al hifke yn 'e ynfrastruktueren fan Amazon, Apple, DataStax, Instaclustr, iland en Netflix mei klusters fan mear dan 1000 knopen. De projektkoade is skreaun yn Java en wurdt ferspraat ûnder de Apache 2.0-lisinsje.

De Cassandra DBMS waard oarspronklik ûntwikkele troch Facebook en yn 2009 oerdroegen ûnder auspysjes fan de Apache Foundation. Yndustriële oplossingen basearre op Cassandra binne ynset foar machttsjinsten fan bedriuwen lykas Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit en Twitter. Bygelyks, de Apache Cassandra-basearre opslachynfrastruktuer ynset troch Apple hat mear as tûzen klusters, ynklusyf 160 tûzen knooppunten en it bewarjen fan mear as 100 petabytes oan gegevens. Huawei brûkt mear dan 300 Apache Cassandra-klusters, besteande út 30 tûzen knooppunten, en Netflix brûkt mear dan 100 klusters, dy't 10 tûzen knooppunten beslaan en mear dan in triljoen oanfragen per dei ferwurkje.

De Cassandra DBMS kombineart in folslein ferspraat Dynamo-hash-systeem, dat hast lineêre skalberens leveret as it folume fan gegevens ferheget. Cassandra brûkt in gegevensopslachmodel basearre op in kolomfamylje (ColumnFamily), dy't ferskilt fan systemen lykas memcachedb, dy't gegevens allinich opslaan yn in kaai / weardeketen, troch de mooglikheid om opslach fan hashes te organisearjen mei ferskate nivo's fan nêst. Om de ynteraksje mei de databank te ferienfâldigjen, wurdt de strukturearre query-taal CQL (Cassandra Query Language) stipe, dy't docht tinken oan SQL, mar fermindere yn funksjonaliteit. Funksjes omfetsje stipe foar nammeromten en kolomfamyljes, en it oanmeitsjen fan yndeksen mei de útdrukking "CREATE INDEX".

De DBMS lit jo flaterbestindige opslach oanmeitsje: gegevens pleatst yn 'e databank wurde automatysk replikearre nei ferskate knooppunten fan in ferspraat netwurk, dat ferskate datasintra kin oerspanje. As in knooppunt mislearret, wurde syn funksjes op 'e flecht ophelle troch oare knooppunten. It tafoegjen fan nije knopen oan it kluster en it bywurkjen fan de Cassandra-ferzje wurdt dien op 'e flecht, sûnder ekstra hânmjittich yntervinsje of opnij konfigurearjen fan oare knopen. Bestjoerders mei CQL-stipe wurde taret foar Python, Java (JDBC / DBAPI2), Ruby, PHP, C ++ en JavaScript (Node.js).

Wichtichste ynnovaasjes:

  • Ferbettere prestaasjes en skaalberens. De effisjinsje fan gegevensútwikseling yn SSTable (Sorted Strings Table) opmaak tusken knopen is ferbettere. It Internode Messaging Protocol is optimalisearre. De snelheid fan it oerdragen fan gegevensstreamen tusken knooppunten is oant 5 kear ferhege (benammen troch it gebrûk fan 'e Zero Copy-technyk en de oerdracht fan folsleine SSTables), en de trochfier foar lês- en skriuwoperaasjes is ferhege nei 25%. It ynkrementele herstelproses is optimalisearre. Latencies fanwege pauze fan ôffalopfang wurde fermindere nei in pear millisekonden.
  • Tafoege stipe foar in kontrôle log wêrmei jo te folgjen brûker autentikaasje operaasjes en alle útfierd CQL queries.
  • De mooglikheid tafoege om in folslein binêre fersyklog te behâlden, wêrtroch jo alle fersyk- en antwurdferkear kinne bewarje. Foar behear wurde de kommando's "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" foarsteld, en it fqltool-hulpprogramma wurdt levere foar loganalyse. Kommando's wurde levere foar it konvertearjen fan it log yn in lêsbere foarm (Dump), it fergelykjen fan aktiviteitsplakken (Fergelykje) en it opnij útfiere (Replay) foar analyse dy't de betingsten reprodusearje dy't ynherint binne yn 'e echte lading.
  • Stipe tafoege foar firtuele tabellen dy't net reflektearje gegevens opslein yn SSTables, mar ynformaasjeútfier fia de API (prestaasjesmetriken, ynstellingsynformaasje, cache-ynhâld, ynformaasje oer ferbûne kliïnten, ensfh.).
  • De effisjinsje fan komprimearre gegevens opslach is ferbettere, ferminderjen skiif romte konsumpsje en ferbetterjen lêzen prestaasjes.
  • Gegevens dy't relatearre binne oan it systeemkaairomte (systeem.*) wurde no standert yn 'e earste map pleatst ynstee fan ferdield oer alle gegevensmappen, wêrtroch't it knooppunt operasjoneel bliuwt as ien fan' e ekstra skiven mislearret.
  • Eksperimintele stipe tafoege foar transiente replikaasje en goedkeape kworums. Tydlike replika's bewarje net alle gegevens en brûke inkrementele werstel om konsekwint te wêzen mei folsleine replika's. Lichte quorums implementearje skriuwoptimalisaasje wêryn gjin skriuwingen wurde makke nei tydlike replika's oant in foldwaande set folsleine replika's beskikber binne.
  • Eksperimintele stipe tafoege foar Java 11.
  • Eksperimintele opsje tafoege om alle Merkle Trees te fergelykjen. Bygelyks, it ynskeakeljen fan de opsje op in kluster fan 3 knooppunten wêryn twa replika's identyk binne en ien is ferâldere sil resultearje yn in fernijing fan 'e ferâldere replika mei mar ien kopyoperaasje fan 'e hjoeddeistige replika.
  • Nije funksjes tafoege currentTimestamp, currentDate, currentTime en currentTimeUUID.
  • Stipe tafoege foar arithmetyske operaasjes yn CQL-fragen.
  • De mooglikheid om arithmetyske operaasjes út te fieren tusken gegevens mei de typen "timestamp"/"date" en "duration" wurdt levere.
  • In modus tafoege foar it besjen fan gegevensstreamen dy't nedich binne foar herstel (nodetool reparaasje -foarbyld) en de mooglikheid om de yntegriteit te kontrolearjen fan 'e gegevens dy't wurde restaurearre (nodetool repair -validate).
  • SELECT-fragen hawwe no de mooglikheid om Map- en Set-eleminten te ferwurkjen.
  • Stipe tafoege foar it parallellisearjen fan 'e earste boufaze fan materialisearre werjeften (cassandra.yaml: concurrent_materialized_view_builders).
  • It kommando "nodetool cfstats" hat stipe tafoege foar it sortearjen op bepaalde metriken en it beheinen fan it oantal werjûn rigen.
  • Ynstellings wurde levere om de ferbining fan 'e brûker allinich te beheinen nei bepaalde datasintra.
  • De mooglikheid tafoege om de yntensiteit (taryflimyt) te beheinen fan it meitsjen en wiskjen fan snapshots.
  • cqlsh en cqlshlib stypje no Python 3 (Python 2.7 wurdt noch altyd stipe).
  • Stipe foar it Windows-platfoarm is stopset. Om Cassandra op Windows út te fieren, wurdt it oanrikkemandearre om Linux-omjouwings te brûken makke op basis fan it WSL2-subsysteem (Windows Subsystem foar Linux 2) of virtualisaasjesystemen.



Boarne: opennet.ru

Add a comment