Na voljo je DBMS Apache Cassandra 4.0

Apache Software Foundation je predstavil izdajo porazdeljenega DBMS Apache Cassandra 4.0, ki spada v razred noSQL sistemov in je zasnovan za ustvarjanje visoko razširljivega in zanesljivega shranjevanja ogromnih količin podatkov, shranjenih v obliki asociativnega polja (hash). Izdaja Cassandra 4.0 velja za pripravljeno za produkcijsko implementacijo in je bila že preizkušena v infrastrukturah Amazon, Apple, DataStax, Instaclustr, iland in Netflix z grozdi z več kot 1000 vozlišči. Koda projekta je napisana v Javi in ​​se distribuira pod licenco Apache 2.0.

DBMS Cassandra je prvotno razvil Facebook in leta 2009 prešel pod okrilje fundacije Apache. Industrijske rešitve, ki temeljijo na Cassandri, so bile uporabljene za napajanje storitev podjetij, kot so Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit in Twitter. Na primer, infrastruktura za shranjevanje na osnovi Apache Cassandra, ki jo je uvedel Apple, ima več kot tisoč gruč, vključno s 160 tisoč vozlišči in shranjevanjem več kot 100 petabajtov podatkov. Huawei uporablja več kot 300 gruč Apache Cassandra, ki obsegajo 30 tisoč vozlišč, Netflix pa uporablja več kot 100 gruč, ki pokrivajo 10 tisoč vozlišč in obdelajo več kot trilijon zahtev na dan.

Cassandra DBMS združuje popolnoma porazdeljen sistem zgoščevanja Dynamo, ki zagotavlja skoraj linearno razširljivost, ko se količina podatkov poveča. Cassandra uporablja model shranjevanja podatkov, ki temelji na družini stolpcev (ColumnFamily), ki se od sistemov, kot je memcachedb, ki shranjujejo podatke le v verigi ključ/vrednost, razlikuje po zmožnosti organiziranja shranjevanja zgoščenih vrednosti z več nivoji gnezdenja. Za poenostavitev interakcije z bazo podatkov je podprt strukturirani poizvedovalni jezik CQL (Cassandra Query Language), ki spominja na SQL, vendar je po funkcionalnosti okrnjen. Funkcije vključujejo podporo za imenske prostore in družine stolpcev ter ustvarjanje indeksov z uporabo izraza »CREATE INDEX«.

DBMS vam omogoča, da ustvarite shranjevanje, odporno na napake: podatki, ki so v bazi podatkov, se samodejno podvojijo v več vozlišč porazdeljenega omrežja, ki lahko obsegajo različne podatkovne centre. Ko vozlišče odpove, njegove funkcije sproti prevzamejo druga vozlišča. Dodajanje novih vozlišč v gručo in posodabljanje različice Cassandra poteka sproti, brez dodatnega ročnega posredovanja ali ponovnega konfiguriranja drugih vozlišč. Gonilniki s podporo za CQL so pripravljeni za Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ in JavaScript (Node.js).

Glavne novosti:

  • Izboljšana zmogljivost in razširljivost. Učinkovitost izmenjave podatkov v formatu SSTable (Sorted Strings Table) med vozlišči je bila izboljšana. Internode Messaging Protocol je bil optimiziran. Hitrost prenosa podatkovnih tokov med vozlišči se je povečala do 5-krat (predvsem zaradi uporabe tehnike Zero Copy in prenosa celotnih SSTables), prepustnost za operacije branja in pisanja pa se je povečala na 25 %. Postopek postopne obnovitve je bil optimiziran. Zakasnitve zaradi prekinitve zbiranja smeti so zmanjšane na nekaj milisekund.
  • Dodana podpora za revizijski dnevnik, ki vam omogoča sledenje operacijam preverjanja pristnosti uporabnikov in vsem izvedenim poizvedbam CQL.
  • Dodana možnost vzdrževanja celotnega binarnega dnevnika zahtev, kar vam omogoča shranjevanje celotnega prometa zahtev in odgovorov. Za upravljanje so predlagani ukazi »nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog«, pripomoček fqltool pa je na voljo za analizo dnevnika. Na voljo so ukazi za pretvorbo dnevnika v berljivo obliko (Dump), primerjavo rezin dejavnosti (Compare) in ponovno izvajanje (Replay) za analizo, ki poustvari pogoje, ki so del dejanske obremenitve.
  • Dodana podpora za virtualne tabele, ki ne odražajo podatkov, shranjenih v SSTables, ampak informacije, izhodne prek API-ja (metrike zmogljivosti, informacije o nastavitvah, vsebina predpomnilnika, informacije o povezanih odjemalcih itd.).
  • Učinkovitost shranjevanja stisnjenih podatkov je bila izboljšana, kar je zmanjšalo porabo prostora na disku in izboljšalo zmogljivost branja.
  • Podatki, povezani s sistemskim prostorom ključev (system.*), so zdaj privzeto postavljeni v prvi imenik, namesto da bi bili porazdeljeni po vseh podatkovnih imenikih, kar omogoča vozlišču, da ostane operativno, če eden od dodatnih diskov odpove.
  • Dodana eksperimentalna podpora za prehodno replikacijo in poceni kvorume. Začasne replike ne shranjujejo vseh podatkov in uporabljajo postopno obnovitev, da so skladne s polnimi replikami. Lahki kvorumi izvajajo optimizacijo pisanja, pri kateri se zapisi v začasne replike ne izvajajo, dokler ni na voljo zadosten nabor polnih replik.
  • Dodana eksperimentalna podpora za Javo 11.
  • Dodana poskusna možnost za primerjavo vseh dreves Merkle. Če na primer omogočite možnost v gruči s tremi vozlišči, v kateri sta dve repliki enaki in je ena zastarela, bo zastarela replika posodobljena z uporabo samo ene operacije kopiranja trenutne replike.
  • Dodane nove funkcije currentTimestamp, currentDate, currentTime in currentTimeUUID.
  • Dodana podpora za aritmetične operacije v poizvedbah CQL.
  • Zagotovljena je možnost izvajanja aritmetičnih operacij med podatki s tipoma »časovni žig«/»datum« in »trajanje«.
  • Dodan način za predogled podatkovnih tokov, potrebnih za obnovitev (nodetool repair —preview) in možnost preverjanja celovitosti podatkov, ki se obnavljajo (nodetool repair —validate).
  • Poizvedbe SELECT imajo zdaj možnost obdelave elementov Map in Set.
  • Dodana podpora za paralelizacijo začetne faze gradnje materializiranih pogledov (cassandra.yaml:concurrent_materialized_view_builders).
  • Ukaz "nodetool cfstats" je dodal podporo za razvrščanje po določenih metrikah in omejevanje števila prikazanih vrstic.
  • Na voljo so nastavitve za omejitev povezave uporabnika samo z določenimi podatkovnimi centri.
  • Dodana možnost omejitve intenzivnosti (omejitev hitrosti) ustvarjanja posnetkov in operacij čiščenja.
  • cqlsh in cqlshlib zdaj podpirata Python 3 (Python 2.7 je še vedno podprt).
  • Podpora za platformo Windows je bila ukinjena. Za poganjanje Cassandre v sistemu Windows je priporočljivo uporabljati okolja Linux, ustvarjena na osnovi podsistema WSL2 (podsistem Windows za Linux 2) ali virtualizacijske sisteme.



Vir: opennet.ru

Dodaj komentar