Apache Cassandra 4.0 DBMS në dispozicion

Apache Software Foundation prezantoi lëshimin e DBMS të shpërndarë Apache Cassandra 4.0, i cili i përket klasës së sistemeve noSQL dhe është krijuar për të krijuar ruajtje shumë të shkallëzuar dhe të besueshme të sasive të mëdha të të dhënave të ruajtura në formën e një grupi shoqërues (hash). Lëshimi i Cassandra 4.0 konsiderohet i gatshëm për zbatimin e prodhimit dhe tashmë është testuar në infrastrukturat e Amazon, Apple, DataStax, Instaclustr, Iland dhe Netflix me grupime prej më shumë se 1000 nyjesh. Kodi i projektit është shkruar në Java dhe shpërndahet nën licencën Apache 2.0.

Cassandra DBMS fillimisht u zhvillua nga Facebook dhe në 2009 u transferua nën kujdesin e Fondacionit Apache. Zgjidhjet industriale të bazuara në Cassandra janë vendosur në shërbimet e energjisë nga kompani të tilla si Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit dhe Twitter. Për shembull, infrastruktura e ruajtjes e bazuar në Apache Cassandra e vendosur nga Apple ka më shumë se një mijë grupime, duke përfshirë 160 mijë nyje dhe që ruan më shumë se 100 petabajt të dhëna. Huawei përdor më shumë se 300 grupe Apache Cassandra, që përbëhen nga 30 mijë nyje, dhe Netflix përdor më shumë se 100 grupe, duke mbuluar 10 mijë nyje dhe duke përpunuar më shumë se një trilion kërkesa në ditë.

Cassandra DBMS kombinon një sistem hash Dynamo plotësisht të shpërndarë, i cili siguron shkallëzim pothuajse linear ndërsa vëllimi i të dhënave rritet. Cassandra përdor një model të ruajtjes së të dhënave të bazuar në një familje kolonash (ColumnFamily), e cila ndryshon nga sistemet si memcachedb, të cilat ruajnë të dhënat vetëm në një zinxhir çelësi/vlere, nga aftësia për të organizuar ruajtjen e hasheve me disa nivele të foleve. Për të thjeshtuar ndërveprimin me bazën e të dhënave, mbështetet gjuha e strukturuar e pyetjeve CQL (Cassandra Query Language), e cila të kujton SQL, por funksionalitet i reduktuar. Veçoritë përfshijnë mbështetjen për hapësirat e emrave dhe familjet e kolonave, dhe krijimin e indekseve duke përdorur shprehjen "KRIJO INDEKS".

DBMS ju lejon të krijoni ruajtje rezistente ndaj dështimeve: të dhënat e vendosura në bazën e të dhënave replikohen automatikisht në disa nyje të një rrjeti të shpërndarë, të cilat mund të përfshijnë qendra të ndryshme të të dhënave. Kur një nyje dështon, funksionet e saj merren menjëherë nga nyjet e tjera. Shtimi i nyjeve të reja në grup dhe përditësimi i versionit Cassandra bëhet menjëherë, pa ndërhyrje shtesë manuale ose rikonfigurim të nyjeve të tjera. Drejtuesit me mbështetje CQL janë përgatitur për Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ dhe JavaScript (Node.js).

Risitë kryesore:

  • Performanca dhe shkallëzueshmëria e përmirësuar. Efikasiteti i shkëmbimit të të dhënave në formatin SSTable (Tabela e vargjeve të renditura) ndërmjet nyjeve është përmirësuar. Protokolli i Mesazheve Internode është optimizuar. Shpejtësia e transferimit të rrjedhave të të dhënave ndërmjet nyjeve është rritur deri në 5 herë (kryesisht për shkak të përdorimit të teknikës Zero Copy dhe transferimit të të gjithë SSTables), dhe xhiroja për operacionet e leximit dhe shkrimit është rritur në 25%. Procesi i rikuperimit në rritje është optimizuar. Vonesat për shkak të ndalimit të grumbullimit të mbeturinave reduktohen në disa milisekonda.
  • Mbështetje e shtuar për një regjistër auditimi që ju lejon të gjurmoni operacionet e vërtetimit të përdoruesit dhe të gjitha pyetjet e ekzekutuara CQL.
  • U shtua aftësia për të mbajtur një regjistër të plotë të kërkesave binar, duke ju lejuar të ruani të gjithë trafikun e kërkesave dhe përgjigjeve. Për menaxhim, propozohen komandat "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" dhe mjeti fqltool ofrohet për analizën e regjistrave. Janë dhënë komanda për konvertimin e regjistrit në një formë të lexueshme (Dump), krahasimin e pjesëve të aktivitetit (Krahaso) dhe riekzekutimin (Riplay) për analizë duke riprodhuar kushtet e qenësishme në ngarkesën reale.
  • Mbështetje e shtuar për tabelat virtuale që pasqyrojnë jo të dhënat e ruajtura në SSTables, por daljen e informacionit nëpërmjet API-së (metrika e performancës, informacioni i cilësimeve, përmbajtjet e cache-it, informacioni për klientët e lidhur, etj.).
  • Efikasiteti i ruajtjes së të dhënave të kompresuara është përmirësuar, duke reduktuar konsumin e hapësirës në disk dhe duke përmirësuar performancën e leximit.
  • Të dhënat që lidhen me hapësirën kryesore të sistemit (sistemi.*) vendosen tani në direktorinë e parë si parazgjedhje në vend që të shpërndahen në të gjitha drejtoritë e të dhënave, gjë që lejon që nyja të mbetet funksionale nëse një nga disqet shtesë dështon.
  • U shtua mbështetje eksperimentale për përsëritjen kalimtare dhe kuorumet e lira. Kopjet e përkohshme nuk i ruajnë të gjitha të dhënat dhe përdorin rikthimin në rritje për të qenë në përputhje me kopjet e plota. Kuorumet e lehta zbatojnë optimizimin e shkrimit në të cilin nuk bëhen shkrime për kopjet e përkohshme derisa të ketë një grup të mjaftueshëm kopjesh të plota.
  • U shtua mbështetje eksperimentale për Java 11.
  • Opsioni eksperimental i shtuar për të krahasuar të gjitha Pemët Merkle. Për shembull, aktivizimi i opsionit në një grup me 3 nyje, në të cilin dy kopje janë identike dhe njëra është e vjetëruar, do të rezultojë në një përditësim të kopjes së vjetër duke përdorur vetëm një operacion kopjimi të kopjes aktuale.
  • U shtuan funksione të reja aktualeTimestamp, CurrentDate, Current Time dhe CurrentTimeUUID.
  • Mbështetje e shtuar për operacionet aritmetike në pyetjet CQL.
  • Ofrohet aftësia për të kryer veprime aritmetike ndërmjet të dhënave me tipet “timestamp”/”datë” dhe “kohëzgjatje”.
  • U shtua një modalitet për shikimin paraprak të rrjedhave të të dhënave të kërkuara për rikuperim (riparimi i mjetit nyje - parapamje) dhe aftësia për të kontrolluar integritetin e të dhënave që po restaurohen (riparimi i mjetit nyje - verifikimi).
  • Pyetjet SELECT tani kanë aftësinë për të përpunuar elementët Harta dhe Set.
  • Mbështetje e shtuar për paralelizimin e fazës fillestare të ndërtimit të pamjeve të materializuara (cassandra.yaml:concurrent_materialized_view_builders).
  • Komanda "nodetool cfstats" ka shtuar mbështetje për renditjen sipas metrikave të caktuara dhe kufizimin e numrit të rreshtave të shfaqur.
  • Paraqiten cilësime për të kufizuar lidhjen e përdoruesit vetëm me disa qendra të dhënash.
  • U shtua aftësia për të kufizuar intensitetin (kufirin e normës) të krijimit të fotografive dhe operacioneve të pastrimit.
  • cqlsh dhe cqlshlib tani mbështesin Python 3 (Python 2.7 është ende i mbështetur).
  • Mbështetja për platformën Windows është ndërprerë. Për të ekzekutuar Cassandra në Windows, rekomandohet përdorimi i mjediseve Linux të krijuara në bazë të nënsistemit WSL2 (Windows Subsystem për Linux 2) ose sistemeve të virtualizimit.



Burimi: opennet.ru

Shto një koment