Apache Cassandra 4.0 DBMS dostupan

Apache Software Foundation predstavio je izdanje distribuiranog DBMS-a Apache Cassandra 4.0, koji pripada klasi noSQL sustava i dizajniran je za stvaranje visoko skalabilne i pouzdane pohrane ogromnih količina podataka pohranjenih u obliku asocijativnog niza (hash). Izdanje Cassandra 4.0 smatra se spremnim za produkcijsku implementaciju i već je testirano u infrastrukturama Amazona, Applea, DataStaxa, Instaclustra, ilanda i Netflixa s klasterima od više od 1000 čvorova. Projektni kod je napisan u Javi i distribuira se pod licencom Apache 2.0.

Cassandra DBMS izvorno je razvio Facebook, a 2009. godine prešao je pod okrilje Zaklade Apache. Industrijska rješenja temeljena na Cassandri postavljena su za napajanje usluga tvrtki kao što su Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit i Twitter. Na primjer, infrastruktura za pohranu temeljena na Apache Cassandra koju je implementirao Apple ima više od tisuću klastera, uključujući 160 tisuća čvorova i pohranjuje više od 100 petabajta podataka. Huawei koristi više od 300 klastera Apache Cassandra koji se sastoje od 30 tisuća čvorova, a Netflix koristi više od 100 klastera koji pokrivaju 10 tisuća čvorova i obrađuju više od trilijun zahtjeva dnevno.

Cassandra DBMS kombinira potpuno distribuirani Dynamo hash sustav, koji pruža gotovo linearnu skalabilnost kako se količina podataka povećava. Cassandra koristi model pohrane podataka temeljen na obitelji stupaca (ColumnFamily), koji se razlikuje od sustava kao što je memcachedb, koji pohranjuju podatke samo u lancu ključ/vrijednost, po mogućnosti organiziranja pohrane hashova s ​​nekoliko razina ugniježđivanja. Za pojednostavljenje interakcije s bazom podataka podržan je strukturirani jezik upita CQL (Cassandra Query Language) koji podsjeća na SQL, ali je smanjene funkcionalnosti. Značajke uključuju podršku za imenske prostore i obitelji stupaca te stvaranje indeksa pomoću izraza "CREATE INDEX".

DBMS vam omogućuje stvaranje pohrane otporne na kvarove: podaci koji se nalaze u bazi podataka automatski se repliciraju na nekoliko čvorova distribuirane mreže, koja može obuhvaćati različite podatkovne centre. Kada čvor zakaže, njegove funkcije u hodu preuzimaju drugi čvorovi. Dodavanje novih čvorova u klaster i ažuriranje Cassandra verzije obavlja se u hodu, bez dodatne ručne intervencije ili ponovnog konfiguriranja drugih čvorova. Upravljački programi s CQL podrškom pripremljeni su za Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ i JavaScript (Node.js).

Glavne inovacije:

  • Poboljšana izvedba i skalabilnost. Učinkovitost razmjene podataka u formatu SSTable (Sorted Strings Table) između čvorova je poboljšana. Internode Messaging Protocol je optimiziran. Brzina prijenosa tokova podataka između čvorova povećana je do 5 puta (uglavnom zahvaljujući korištenju tehnike Zero Copy i prijenosu cijelih SSTables), a propusnost za operacije čitanja i pisanja povećana je na 25%. Inkrementalni proces oporavka je optimiziran. Kašnjenja zbog pauziranja sakupljanja smeća smanjena su na nekoliko milisekundi.
  • Dodana podrška za revizijski dnevnik koji vam omogućuje praćenje operacija provjere autentičnosti korisnika i svih izvršenih CQL upita.
  • Dodana je mogućnost održavanja punog binarnog dnevnika zahtjeva, što vam omogućuje spremanje cjelokupnog prometa zahtjeva i odgovora. Za upravljanje se predlažu naredbe “nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog”, a uslužni program fqltool isporučuje se za analizu dnevnika. Pružene su naredbe za pretvaranje dnevnika u čitljiv oblik (Dump), usporedbu isječaka aktivnosti (Compare) i ponovno izvršavanje (Replay) za analizu koja reproducira uvjete svojstvene stvarnom opterećenju.
  • Dodana je podrška za virtualne tablice koje ne odražavaju podatke pohranjene u SSTables, već podatke koji izlaze putem API-ja (metrike performansi, informacije o postavkama, sadržaj predmemorije, informacije o povezanim klijentima itd.).
  • Učinkovitost pohrane komprimiranih podataka je poboljšana, smanjujući potrošnju prostora na disku i poboljšavajući performanse čitanja.
  • Podaci koji se odnose na prostor ključeva sustava (system.*) sada su prema zadanim postavkama smješteni u prvi direktorij umjesto da se distribuiraju po svim direktorijima podataka, što omogućuje čvoru da ostane operativan ako jedan od dodatnih diskova zakaže.
  • Dodana je 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 vrše pisanja u privremene replike dok ne bude dostupan dovoljan skup potpunih replika.
  • Dodana je eksperimentalna podrška za Javu 11.
  • Dodana eksperimentalna opcija za usporedbu svih Merkleovih stabala. Na primjer, omogućavanje opcije na klasteru s 3 čvora u kojem su dvije replike identične, a jedna je zastarjela, rezultirat će ažuriranjem zastarjele replike korištenjem samo jedne operacije kopiranja trenutne replike.
  • Dodane su nove funkcije currentTimestamp, currentDate, currentTime i currentTimeUUID.
  • Dodana podrška za aritmetičke operacije u CQL upitima.
  • Omogućena je mogućnost izvođenja aritmetičkih operacija između podataka s tipovima "timestamp"/"date" i "duration".
  • Dodan je način za pretpregled protoka podataka potrebnih za oporavak (nodetool repair —preview) i mogućnost provjere integriteta podataka koji se vraćaju (nodetool repair —validate).
  • SELECT upiti sada imaju mogućnost obrade elemenata karte i skupa.
  • Dodana podrška za paralelizaciju početne faze konstrukcije materijaliziranih pogleda (cassandra.yaml:concurrent_materialized_view_builders).
  • Naredba "nodetool cfstats" dodala je podršku za sortiranje prema određenim metrikama i ograničavanje broja prikazanih redaka.
  • Dostupne su postavke za ograničavanje korisnikove veze samo s određenim podatkovnim centrima.
  • Dodana je mogućnost ograničavanja intenziteta (ograničenje brzine) stvaranja snimke i operacija čišćenja.
  • cqlsh i cqlshlib sada podržavaju Python 3 (Python 2.7 je još uvijek podržan).
  • Podrška za Windows platformu je prekinuta. Za pokretanje Cassandre na Windowsima preporučuje se korištenje Linux okruženja kreiranih na temelju WSL2 podsustava (Windows Subsystem for Linux 2) ili virtualizacijskih sustava.



Izvor: opennet.ru

Dodajte komentar