Apache Cassandra 4.0 DBMS dostupan

Apache Software Foundation predstavila je izdanje distribuiranog DBMS-a Apache Cassandra 4.0, koji pripada klasi noSQL sistema i dizajniran je da kreira visoko skalabilno i pouzdano skladištenje ogromnih količina podataka pohranjenih u obliku asocijativnog niza (hash). Izdanje Cassandra 4.0 se smatra spremnom za proizvodnu implementaciju i već je testirano u infrastrukturama Amazona, Applea, DataStaxa, Instaclustra, ilanda i Netflixa s klasterima od više od 1000 čvorova. Kod projekta je napisan na Javi i distribuira se pod licencom Apache 2.0.

Cassandra DBMS je prvobitno razvio Facebook, a 2009. godine prebačen je pod pokroviteljstvo Apache fondacije. Industrijska rješenja zasnovana na Cassandri implementirana su za napajanje usluga kompanija kao što su Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit i Twitter. Na primjer, infrastruktura za pohranu zasnovana na Apache Cassandri koju je implementirao Apple ima više od hiljadu klastera, uključujući 160 hiljada čvorova i skladištenje više od 100 petabajta podataka. Huawei koristi više od 300 Apache Cassandra klastera, koji se sastoje od 30 hiljada čvorova, a Netflix koristi više od 100 klastera, koji pokrivaju 10 hiljada čvorova i obrađuju više od bilion zahteva dnevno.

Cassandra DBMS kombinuje potpuno distribuirani Dynamo hash sistem, koji obezbeđuje skoro linearnu skalabilnost kako se obim podataka povećava. Cassandra koristi model skladištenja podataka zasnovan na porodici kolona (ColumnFamily), koji se razlikuje od sistema kao što je memcachedb, koji pohranjuju podatke samo u lancu ključ/vrijednost, po mogućnosti organiziranja skladištenja hešova s ​​nekoliko nivoa ugniježđenja. Da bi se pojednostavila interakcija sa bazom podataka, podržan je strukturirani jezik upita CQL (Cassandra Query Language), koji podsjeća na SQL, ali smanjen u funkcionalnosti. Karakteristike uključuju podršku za prostore imena i porodice kolona, ​​te kreiranje indeksa korištenjem izraza “CREATE INDEX”.

DBMS vam omogućava da kreirate skladište otporno na kvar: podaci smešteni u bazu podataka se automatski repliciraju na nekoliko čvorova distribuirane mreže, koji mogu obuhvatati različite centre podataka. Kada čvor zakaže, njegove funkcije u hodu preuzimaju drugi čvorovi. Dodavanje novih čvorova u klaster i ažuriranje Cassandre verzije se vrši u hodu, bez dodatne ručne intervencije ili rekonfiguracije drugih čvorova. Drajveri sa CQL podrškom su pripremljeni za Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ i JavaScript (Node.js).

Glavne inovacije:

  • Poboljšane performanse i skalabilnost. Poboljšana je efikasnost razmjene podataka u SSTable (Sorted Strings Table) formatu između čvorova. Internode Messaging Protocol je optimiziran. Brzina prenosa tokova podataka između čvorova povećana je i do 5 puta (uglavnom zbog upotrebe tehnike Zero Copy i prenosa čitavih SSTable), a propusnost za operacije čitanja i pisanja je povećana na 25%. Proces postepenog oporavka je optimiziran. Latencije zbog pauziranja prikupljanja smeća smanjene su na nekoliko milisekundi.
  • Dodata podrška za evidenciju revizije koja vam omogućava da pratite operacije provjere autentičnosti korisnika i sve izvršene CQL upite.
  • Dodata je mogućnost održavanja punog binarnog dnevnika zahtjeva, što vam omogućava da sačuvate sav promet zahtjeva i odgovora. Za upravljanje, predložene su naredbe “nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog”, a za analizu dnevnika se isporučuje uslužni program fqltool. Predviđene su komande za pretvaranje dnevnika u čitljiv oblik (Dump), upoređivanje rezova aktivnosti (Uporedi) i ponovno izvršavanje (Replay) za analizu koja reprodukuje uslove svojstvene stvarnom opterećenju.
  • Dodata podrška za virtuelne tabele koje ne odražavaju podatke pohranjene u SSTables, već informacije koje izlaze preko API-ja (metrika performansi, informacije o podešavanjima, sadržaj keša, informacije o povezanim klijentima, itd.).
  • Efikasnost skladištenja komprimovanih podataka je poboljšana, smanjujući potrošnju prostora na disku i poboljšavajući performanse čitanja.
  • Podaci koji se odnose na sistemski prostor ključeva (system.*) sada se po defaultu stavljaju u prvi direktorij umjesto da se distribuiraju po svim direktorijima podataka, što omogućava čvoru da ostane operativan ako jedan od dodatnih diskova pokvari.
  • Dodata eksperimentalna podrška za prolaznu replikaciju i jeftine kvorume. Privremene replike ne pohranjuju sve podatke i koriste inkrementalno vraćanje kako bi bile u skladu s punim replikama. Lagani kvorumi implementiraju optimizaciju pisanja u kojoj se ne upisuje u privremene replike dok ne bude dostupan dovoljan skup punih replika.
  • Dodata eksperimentalna podrška za Javu 11.
  • Dodata eksperimentalna opcija za poređenje svih Merkle drveća. Na primjer, omogućavanje opcije na klasteru s 3 čvora u kojem su dvije replike identične i jedna zastarjela rezultirat će ažuriranjem zastarjele replike koristeći samo jednu operaciju kopiranja trenutne replike.
  • Dodane nove funkcije currentTimestamp, currentDate, currentTime i currentTimeUUID.
  • Dodata podrška za aritmetičke operacije u CQL upitima.
  • Omogućena je mogućnost izvođenja aritmetičkih operacija između podataka sa tipovima “vremenska oznaka”/”datum” i “trajanje”.
  • Dodan način za pregled tokova podataka potrebnih za oporavak (popravka alata čvora —pregled) i mogućnost provjere integriteta podataka koji se vraćaju (popravka alata čvora —provjera).
  • SELECT upiti sada imaju mogućnost obrade elemenata Map i Set.
  • Dodata podrška za paralelizaciju početne faze izgradnje materijalizovanih pogleda (cassandra.yaml:concurrent_materialized_view_builders).
  • Komanda "nodetool cfstats" je dodala podršku za sortiranje prema određenim metrikama i ograničavanje broja prikazanih redova.
  • Postavke su predviđene za ograničavanje konekcije korisnika samo na određene centre podataka.
  • Dodata mogućnost ograničavanja intenziteta (ograničenja brzine) operacija kreiranja i brisanja snimka.
  • cqlsh i cqlshlib sada podržavaju Python 3 (Python 2.7 je još uvijek podržan).
  • Podrška za Windows platformu je ukinuta. Za pokretanje Cassandre na Windows-u, preporučuje se korištenje Linux okruženja kreiranih na bazi WSL2 podsistema (Windows Subsystem for Linux 2) ili virtualizacijskih sistema.



izvor: opennet.ru

Dodajte komentar