Pieejama datubāze Apache Cassandra 4.0

Apache Software Foundation ir laidusi izplatīto datubāzi Apache Cassandra 4.0, kas pieder pie noSQL sistēmu klases un ir paredzēta augsti mērogojamu un uzticamu milzīgu datu apjomu glabāšanai asociatīvā masīva (hash) formā. Cassandra 4.0 izlaišana ir atzīta par gatavu izmantošanai darbā un jau ir pārbaudīta Amazon, Apple, DataStax, Instaclustr, iland un Netflix infrastruktūrās ar klasteriem, kuros ir vairāk nekā 1000 mezglu. Projekta kods ir rakstīts programmēšanas valodā Java un tiek izplatīts saskaņā ar Apache 2.0 licenci.

Sākotnēji datubāze Cassandra tika izstrādāta Facebook uzņēmumā un 2009. gadā tika nodota Apache fonda pārraudzībā. Rūpnieciskie risinājumi, kas balstīti uz Cassandra, ir izvietoti, lai nodrošinātu pakalpojumu darbību tādās kompānijās kā Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit un Twitter. Piemēram, Apple kompānijas izvietotā glabāšanas infrastruktūra, kas balstās uz Apache Cassandra, ietver vairāk nekā tūkstoti klasteru ar 160 tūkstošiem mezglu un glabā vairāk nekā 100 petabajtu datu. Huawei kompānijā tiek izmantoti vairāk nekā 300 Apache Cassandra klasteru, kas ietver 30 tūkstošus mezglu, kamēr Netflix — vairāk nekā 100 klasteru, kas aptver 10 tūkstošus mezglu un apstrādā vairāk nekā vienu triljonu pieprasījumu dienā.

Cassandra datubāze apvieno pilnīgi izplatītu hash sistēmu Dynamo, kas nodrošina praktiski lineāru mērogojamību datu apjoma palielināšanās gadījumā. Cassandra izmanto kolonu ģimenes (ColumnFamily) datu uzglabāšanas modeli, kas atšķiras no līdzīgām sistēmām, piemēram, memcachedb, kuras glabā datus tikai atslēgas/vērtības saistē, ļaujot organizēt glabāšanu ar vairāku līmeņu ieliktņiem. Lai atvieglotu mijiedarbību ar datubāzi, tiek atbalstīta strukturēto vaicājumu valoda CQL (Cassandra Query Language), kas atgādina SQL, bet ir ierobežota funkcionalitātē. No iespējām var atzīmēt nosaukumu telpu un kolonu ģimenes atbalstu, kā arī indeksu izveidi, izmantojot izteiksmi "CREATE INDEX".

Datubāze ļauj izveidot noturīgas pret kļūdām glabāšanas sistēmas: datu, kas tiek ievietoti datubāzē, automātiska replikācija notiek uz vairākiem izplatītās tīkla mezgliem, kas var aptvert dažādas datu centru. Ja mezgls izjūk, tā funkcijas nekavējoties uzņem citi mezgli. Jaunu mezglu pievienošana klasterim un Cassandra versijas atjaunināšana notiek automātiski, neprasot papildu manuālu iejaukšanos un citu mezglu pārkonfigurāciju. CQL atbalstošie draiveri ir sagatavoti Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ un JavaScript (Node.js) valodām.

Galvenās jauninājumi:

  • Uzlabota veiktspēja un elastība. Uzlabota datu apmaiņas efektivitāte SSTable (Sorted Strings Table) formātā starp mezgliem. Optimizēts ziņojumu apmaiņas protokols starp mezgliem (Internode Messaging Protocol). Datu plūsmas pārsūtīšanas ātrums starp mezgliem palielinājies līdz piecām reizēm (galvenokārt pateicoties Zero Copy tehnoloģijas izmantošanai un SSTables pilnīgas pārsūtīšanas ietveršanai), bet caurlaidība lasīšanas un rakstīšanas operācijās palielinājusies par 25%. Optimizēts inkrementālā atjaunošana. Aizkavēšanās, kas saistītas ar atkritumu savācēja izpildes apturēšanu, samazinātas līdz dažām milisekundēm.
  • Pievienots atbalsts auditācijas žurnālam, kas ļauj uzraudzīt lietotāju autentifikācijas operācijas un visus pieprasījumus CQL.
  • Pievienota iespēja veidot pilnu bināro pieprasījumu žurnālu, kas ļauj saglabāt visu pieprasījumu un atbilžu trafiku. Lai pārvaldītu, ir ieteiktas komandas «nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog», bet žurnāla analīzei tiek nodrošināta rīks fqltool. Ieteiktas komandas žurnāla pārveidošanai lasāmā formātā (Dump), aktivitātes griezumu salīdzināšanai (Compare) un atkārtotai izpildei (Replay) analīzei, lai atkārtotu apstākļus, kas raksturīgi reālai slodzei.
  • Pievienots atbalsts virtuālajām tabulām, kas atspoguļo ne datus, kas glabājas SSTables, bet informāciju, ko nodrošina API (veiktspējas metriķi, iestatījumu informācija, kešatmiņas saturs, informācija par pievienotajiem klientiem utt.).
  • Uzlabota datu glabāšanas efektivitāte saspiestā veidā, kas ļauj samazināt diskvietas patēriņu un uzlabot lasīšanas operāciju veiktspēju.
  • Dati, kas saistīti ar sistēmas atslēgu telpu (system.*), tagad pēc noklusējuma tiek novietoti pirmajā direktorijā, nevis izplatīti visās direktorijās ar datiem, kas ļauj saglabāt mezgla darbspēju, ja viens no papildu diskdziņiem iziet no ierindas.
  • Ir ievesta eksperimentāla atbalsta funkcionalitāte laiku replikācijai (Transient Replication) un vieglajām kvorumiem (Cheap Quorums). Pagaidu replikas nesaglabā visus datus un izmanto inkrementālo atjaunošanu, lai saskaņotu ar pilnīgajām replikām. Vieglie kvorumi realizē rakstīšanas operāciju optimizāciju, kurā rakstīšana uz pagaidu replikām netiek veikta, kamēr nav pieejams pietiekams pilnīgu replikas komplekts.
  • Ir ievesta eksperimentāla atbalsta funkcionalitāte Java 11.
  • Ir pievienota eksperimentāla opcija, lai salīdzinātu visas Merkle koka (Merkle Tree) struktūras. Piemēram, opcijas aktivizēšana klasterī ar 3 mezgliem, kur divas replikas ir vienādas, bet viena ir novecojusi, novedīs pie novecojusī replikas atjaunināšanas, izmantojot tikai vienu aktuālās replikas kopēšanas operāciju.
  • Ir pievienotas jaunas funkcijas currentTimestamp, currentDate, currentTime un currentTimeUUID.
  • Ir pievienots atbalsts aritmētiskām operācijām CQL vaicājumos.
  • Ir nodrošināta iespēja veikt aritmētiskas operācijas starp datiem ar tipiem "timestamp"/"date" un "duration".
  • Ir pievienots režīms datu plūsmu priekšskatīšanai, kas nepieciešamas atjaunošanai (nodetool repair —preview) un iespēja pārbaudīt atjaunoto datu integritāti (nodetool repair —validate).
  • SELECT vaicājumos ir pievienota iespēja apstrādāt Map un Set elementus.
  • Ir pievienots atbalsts paralelizācijai materiālo skatu sākotnējā veidošanas posmā (cassandra.yaml:concurrent_materialized_view_builders).
  • Komandā "nodetool cfstats" ir ieviesta atbalsta funkcionalitāte šķirošanai pēc noteiktiem metriem un izvadīto rindu skaita ierobežojumiem.
  • Ir nodrošināti iestatījumi, lai ierobežotu lietotāja piekļuvi tikai noteiktiem datu centriem.
  • Ir pievienota iespēja ierobežot intensitāti (rate limit) operāciju radīšanai un atjaunošanai.
  • Cqlsh un cqlshlib ir ieviests atbalsts Python 3 (atbalsts Python 2.7 pagaidām ir saglabāts).
  • Atbalsts Windows platformai ir pārtraukts. Lai palaistu Cassandra Windows vidē, ieteicams izmantot Linux vidi, kas izveidota uz WSL2 (Windows Subsystem for Linux 2) vai virtualizācijas sistēmām.

Atskaņot video


Avots: opennet.lv
Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster