Saadaval on Apache Cassandra 4.0 DBMS

Apache Software Foundation esitles hajutatud DBMS-i Apache Cassandra 4.0 väljalaset, mis kuulub noSQL-süsteemide klassi ja on loodud assotsiatiivse massiivi (räsi) kujul salvestatud tohutute andmete väga skaleeritava ja usaldusväärse salvestusruumi loomiseks. Cassandra 4.0 väljalaset peetakse tootmiseks juurutamiseks valmis ja seda on juba testitud Amazoni, Apple'i, DataStaxi, Instaclustri, ilandi ja Netflixi infrastruktuurides enam kui 1000 sõlmega klastritega. Projekti kood on kirjutatud Java keeles ja seda levitatakse Apache 2.0 litsentsi all.

Cassandra DBMS-i töötas algselt välja Facebook ja 2009. aastal anti see üle Apache Foundationi egiidi alla. Cassandra baasil põhinevaid tööstuslahendusi on energiateenustes kasutusele võtnud sellised ettevõtted nagu Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit ja Twitter. Näiteks Apple'i juurutatud Apache Cassandra-põhises salvestusinfrastruktuuris on rohkem kui tuhat klastrit, sealhulgas 160 tuhat sõlme ja rohkem kui 100 petabaiti andmeid. Huawei kasutab enam kui 300 Apache Cassandra klastrit, sealhulgas 30 tuhat sõlme, ja Netflix kasutab rohkem kui 100 klastrit, mis katavad 10 tuhat sõlme ja töötlevad päevas üle triljoni päringu.

Cassandra DBMS ühendab täielikult hajutatud Dynamo räsisüsteemi, mis annab andmemahu suurenedes peaaegu lineaarse mastaapsuse. Cassandra kasutab veeruperekonnal (ColumnFamily) põhinevat andmesalvestusmudelit, mis erineb sellistest süsteemidest nagu memcachedb, mis salvestavad andmeid ainult võtme-/väärtusahelas, kuna on võimeline korraldama mitme pesastustasemega räsisalvestust. Andmebaasiga suhtlemise lihtsustamiseks toetatakse struktureeritud päringukeelt CQL (Cassandra Query Language), mis meenutab SQL-i, kuid funktsionaalsuselt on vähenenud. Funktsioonide hulka kuulub nimeruumide ja veeruperekondade tugi ning indeksite loomine väljendi „CREATE INDEX” abil.

DBMS võimaldab teil luua tõrkekindlat salvestusruumi: andmebaasi paigutatud andmed kopeeritakse automaatselt mitmesse hajutatud võrgu sõlme, mis võivad hõlmata erinevaid andmekeskusi. Kui sõlm ebaõnnestub, võtavad teised sõlmed selle funktsioonid üles. Uute sõlmede lisamine klastrisse ja Cassandra versiooni värskendamine toimub käigu pealt, ilma täiendava käsitsi sekkumiseta või teisi sõlmede ümberkonfigureerimiseta. CQL-i toega draiverid on ette valmistatud Pythoni, Java (JDBC/DBAPI2), Ruby, PHP, C++ ja JavaScripti (Node.js) jaoks.

Peamised uuendused:

  • Parem jõudlus ja mastaapsus. Täiustatud on andmevahetuse efektiivsust SSTable (Sorted Strings Table) formaadis sõlmede vahel. Sõnumitevaheline sõnumsideprotokoll on optimeeritud. Andmevoogude edastamise kiirus sõlmede vahel on kasvanud kuni 5 korda (peamiselt nullkoopia tehnika kasutamise ja tervete SSTable-ide edastamise tõttu) ning lugemis- ja kirjutamisoperatsioonide läbilaskevõime on tõusnud 25%-ni. Järkjärguline taastamise protsess on optimeeritud. Prügikoristuste peatamisest tingitud latentsusajad vähenevad mõne millisekundini.
  • Lisatud auditilogi tugi, mis võimaldab jälgida kasutaja autentimistoiminguid ja kõiki käivitatud CQL-päringuid.
  • Lisatud on võimalus pidada täielikku binaarset päringulogi, mis võimaldab salvestada kogu päringu- ja vastuseliikluse. Haldamiseks pakutakse käske "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" ja logianalüüsi jaoks on kaasas utiliit fqltool. Käsud on ette nähtud logi teisendamiseks loetavaks vormiks (Dump), tegevuslõikude võrdlemiseks (Compare) ja uuesti käivitamiseks (Replay) analüüsiks, mis taasesitab tegelikule koormusele omased tingimused.
  • Lisatud on tugi virtuaalsetele tabelitele, mis ei kajasta mitte SST-tabelites salvestatud andmeid, vaid API kaudu väljastatud teavet (jõudlusmõõdikud, seadete teave, vahemälu sisu, teave ühendatud klientide kohta jne).
  • Tihendatud andmesalvestuse tõhusust on parandatud, vähendades kettaruumi tarbimist ja parandades lugemisjõudlust.
  • Süsteemi võtmeruumiga (system.*) seotud andmed paigutatakse nüüd vaikimisi esimesse kataloogi, mitte ei jaotatud kõigi andmekataloogide vahel, mis võimaldab sõlmel töötada, kui mõni lisaketastest ebaõnnestub.
  • Lisatud eksperimentaalne tugi ajutise replikatsiooni ja odavate kvoorumite jaoks. Ajutised koopiad ei salvesta kõiki andmeid ja kasutavad järkjärgulist taastamist, et olla kooskõlas täielike koopiatega. Kerged kvoorumid rakendavad kirjutamise optimeerimist, mille puhul ajutistesse koopiatesse ei kirjutata enne, kui saadaval on piisav kogus täielikke koopiaid.
  • Lisatud Java 11 eksperimentaalne tugi.
  • Lisatud eksperimentaalne võimalus kõigi Merkle puude võrdlemiseks. Näiteks, kui lubate suvandi 3-sõlmelises klastris, milles kaks koopiat on identsed ja üks on aegunud, värskendatakse aegunud koopiat, kasutades ainult ühte praeguse koopia kopeerimistoimingut.
  • Lisatud uued funktsioonid currentTimestamp, currentDate, currentTime ja currentTimeUUID.
  • Lisatud on CQL-i päringute aritmeetiliste toimingute tugi.
  • Pakutakse võimalust sooritada aritmeetilisi toiminguid tüüpidega “ajatempel”/”kuupäev” ja “kestus” andmete vahel.
  • Lisatud on taastamiseks vajalike andmevoogude eelvaate režiim (nodetool remont — eelvaade) ja võimalus kontrollida taastatavate andmete terviklikkust (nodetool remont — validate).
  • SELECT päringutel on nüüd võimalus töödelda kaardi- ja seadistuselemente.
  • Lisatud toetus materialiseeritud vaadete (cassandra.yaml:concurrent_materialized_view_builders) esialgse ehitusetapi paralleelseerimiseks.
  • Käsk "nodetool cfstats" on lisanud toe teatud mõõdikute järgi sortimiseks ja kuvatavate ridade arvu piiramiseks.
  • Seaded on ette nähtud selleks, et piirata kasutaja ühendust ainult teatud andmekeskustega.
  • Lisatud on võimalus piirata hetktõmmiste loomise ja tühjendamise intensiivsust (kiiruse limiiti).
  • cqlsh ja cqlshlib toetavad nüüd Python 3 (Python 2.7 on endiselt toetatud).
  • Windowsi platvormi tugi on lõpetatud. Cassandra käivitamiseks Windowsis on soovitatav kasutada WSL2 alamsüsteemi (Windows Subsystem for Linux 2) baasil loodud Linuxi keskkondi või virtualiseerimissüsteeme.



Allikas: opennet.ru

Lisa kommentaar