Saadaval on Andmebaasis Apache Cassandra 4.0

Apache Software Foundation tutvustas jaotatud andmebaasi Apache Cassandra 4.0, mis kuulub noSQL-süsteemide klassi ja on mõeldud suurte andmemahtude kõrge skaleeritavuse ja usaldusväärsuse tagamiseks, salvestades andmeid assotsiatiivsete massiivide (häälekaupluste) kujul. Cassandra 4.0 on tunnustatud tootmisrakenduste jaoks ja on juba testitud ettevõtete Amazon, Apple, DataStax, Instaclustr, iland ja Netflix infrastruktuurides, mille klastrid koosnevad enam kui 1000 sõlmest. Projekti kood on kirjutatud Java keeles ja jagatud Apache 2.0 litsentsi alusel.

Esialgu töötas andmebaasis Cassandra Facebooki poolt, kuid 2009. aastal anti see Apache'i fondi hoolde. Tööstuslikud lahendused, mis põhinevad Cassandra'l, on 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 kasutusele võetud Apache Cassandra põhinev infrastruktuur sisaldab rohkem kui tuhat klasterit, mis koosnevad 160 000 sõlmest ja salvestavad üle 100 petabaidi andmeid. Huawei kasutab rohkem kui 300 Apache Cassandra klastrit, mis koosnevad 30 000 sõlmest, ning Netflixil on üle 100 klaster, mis katab 10 000 sõlme ja töötleb rohkem kui triljon päringut päevas.

Cassandra andmebaas ühendab endas täielikult jaotatud hash-süsteemi Dynamo, mis tagab praktiliselt lineaarselt skaleeritava tööd erineva andmemahu korral. Cassandra kasutab veergude perekonnale (ColumnFamily) põhinevat andmemudeleid, mis erineb sarnastest süsteemidest nagu memcachedb, mis salvestab andmeid ainult võtme/väärtuse paarides, võimaldades korraldada mitmetasandiliste sisendite salvestamist. Andmebaasiga suhtlemise lihtsustamiseks toetab see struktureeritud päringute keelt CQL (Cassandra Query Language), mis meenutab SQL-i, kuid on funktsionaalsuse poolest piiratud. Toetatakse nime ruume ja veergude perekondi, samuti indeksite loomist käsuga „CREATE INDEX”.

Andmebaas võimaldab luua tõrkealti salvestusruume: andmebaasi sisestatud andmed replitseeritakse automaatselt mitmele sõlmele jaotatud võrgus, mis võib katab erinevaid. andmekeskustesse. Sõlme rikke korral üle võtavad selle funktsioonid teised sõlmed koheselt. Uute sõlmede lisamine klastrisse ja Cassandra versiooni uuendamine toimub reaalajas, ilma täiendava käsitsi sekkumise ja teiste sõlmede ümberkonfigureerimiseta. CQL-i toetavad draiverid on valmistatud keeltele Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ ja JavaScript (Node.js).

Põhilised uuendused:

  • Tõhusus ja skaleeritavus on suurenenud. Andmevahetuse efektiivsus SSTable (Sorted Strings Table) formaadis sõlmede vahel on paranenud. Sõlmede vahelise sõnumivahetuse protokoll (Internode Messaging Protocol) on optimeeritud. Andmevoogude edastamise kiirus sõlmede vahel on kasvanud kuni 5 korda (peamiselt tänu Zero Copy tehnikale ja SSTable-de edastamisele tervikuna), samas kui lugemise ja kirjutamise toimingute läbilaskvus on kasvanud kuni 25%. Inkrementaalne taastamise protsess on optimeeritud. Jäätmed, mis tulenevad prügi koristaja peatamisest, on vähenenud vaid mõne millisekundi võrra.
  • Lisatud on auditi logi tugi, mis võimaldab jälgida kasutajate autentimise operatsioone ja kõiki teostatavaid CQL päringuid.
  • Lisatud täieliku binaarsete päringulogide pidamise võimalus, mis võimaldab salvestada kogu päringu- ja vastustrafiku. Hallamiseks on ette nähtud käsud „nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog“, ning logi analüüsimiseks on saadaval utiliit fqltool. Pakutakse käske logi lugemise tõttu (Dump), aktiivsuse lõikude võrdlemiseks (Compare) ja tingimuste taastamiseks, mis on iseloomulikud tõelisele koormusele (Replay).
  • Lisatud toetus virtuaalsete tabelite jaoks, mis kajastavad mitte SSTables'is sisalduvaid andmeid, vaid teavet, mis edastatakse API kaudu (tõhususe mõõdud, seadistuste info, vahemälu sisu, ühendatud klientide andmed jne).
  • Tõhustatud andmete salvestamise efektiivsust kokkupressitud vormis, mis võimaldab vähendada kettaruumi tarbimist ja suurendada lugemisoperatsioonide tõhusust.
  • Süsteemi võtme ruumile (system.*) seotud andmed asetatakse nüüd vaikimisi esimesse katalooge, selle asemel, et jaotuda kõigisse andmekataloogidesse, mis aitab säilitada sõlme töökorras, kui üks lisadiskidest tõrkub.
  • Käegakatsutav toetus ajutisele replikatsioonile (Transient Replication) ja kergetele kvoorumitele (Cheap Quorums) on lisatud. Ajutised replikad ei salvestada kõiki andmeid ja kasutavad täiendavate replikate konsolideerimiseks inkrementaalset taastamist. Kerged kvoorumid realiseerivad kirjutamisoperatsioonide optimeerimise, kus kirjutamine ajutistesse replikatesse ei toimu, kuni piisav arv täiendavaid replikas on kergesti saadaval.
  • Käegakatsutav toetus Java 11-le on lisatud.
  • Käegakatsutav valik kõigi Merkle puude (Merkle Tree) võrdlemiseks on lisatud. Näiteks valiku lubamine kolmnodega klastris, kus kaks replikat on samad ja üks on aegunud, toob kaasa aegunud replikate uuendamise ainult ühe aktiivse replikati kopeerimise operatsiooni abil.
  • Uued funktsioonid currentTimestamp, currentDate, currentTime ja currentTimeUUID on lisatud.
  • Lisatud to suport matemaatilisi opereerimise CQL-i päringutes.
  • Toodud võimalus teostada matemaatilisi opereerimisi „timestamp” / „date” ja „duration” tüüpide vahel.
  • Lisatud režiim andmevoogude eelvaateks, mis on vajalik taastamiseks (nodetool repair —preview) ja võimalus kontrollida taastatud andmete terviklikkust (nodetool repair —validate).
  • SELECT-päringutes on lisatud võimalus töödelda Map ja Set elemente.
  • Lisatud tugi materjaliseeritud vaadete algse koostamise paralleelseks teostamiseks (cassandra.yaml:concurrent_materialized_view_builders).
  • nodetool cfstats käsk on täiustatud, et toetada sortimist teatud mõõdikute järgi ja ridade arvu piiramist.
  • Kasutajate ühenduse piiramiseks on antud seadistused ainult teatud andmekeskustega ühendamiseks.
  • Lisatud võimalus piirata toimingute intensiivsust (rate limit) pildistamiste loomisel ja puhastamisel.
  • CQLSH ja CQLSHLIB toetavad nüüd Python 3 (Python 2.7 tugi on jätkuvalt säilinud).
  • Windows platvormi toetus on lõpetatud. Cassandra käivitamiseks Windowsis on soovitatav kasutada Linuxi keskkondi, mis on loodud WSL2 (Windows Subsystem for Linux 2) või virtualiseerimissüsteemide alusel.

Vaata videot


Allikas: opennet.ru
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster