Disponohet DBMS Apache Cassandra 4.0

Organizata Apache Software Foundation ka prezantuar publikimin e sistemit të menaxhimit të të dhënave të shpërndara Apache Cassandra 4.0, e cila i përket klasës noSQL dhe ka për qëllim krijimin e depozita të shkallëzuara dhe të besueshme për sasi të mëdha të dhënash, të ruajtura në formën e një matrice asociative (hash). Publikimi i Cassandra 4.0 është konsideruar i gatshëm për zbatime të punës dhe është testuar tashmë në infrastruktura të kompanive si Amazon, Apple, DataStax, Instaclustr, iland dhe Netflix me klasterë që përfshijnë më shumë se 1000 nyje. Kodi i projektit është shkruar në gjuhën Java dhe shpërndahet nën licencën Apache 2.0.

Fillimisht, sistemit të menaxhimit të të dhënave Cassandra i është zhvilluar nga kompania Facebook dhe në vitin 2009 u dorëzua nën mbikëqyrjen e fondit Apache. Zgjidhjet industriale të bazuara në Cassandra janë implementuar për të siguruar funksionimin e shërbimeve të kompanive si Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit dhe Twitter. Për shembull, infrastruktura e ruajtjes e zhvilluar nga kompania Apple mbi bazën e Apache Cassandra ka më shumë se një mijë klasterë, duke përfshirë 160 mijë nyje dhe që ruajnë më shumë se 100 petabajt të dhënash. Kompania Huawei përdor më shumë se 300 klasterë Apache Cassandra, përfshirë 30 mijë nyje, ndërsa në Netflix ka më shumë se 100 klasterë, duke përfshirë 10 mijë nyje dhe duke përpunuar më shumë se një trilion kërkesa në ditë.

Sistemi i menaxhimit të të dhënave Cassandra kombinon një sistem të plotë të shpërndarë të hashes Dynamo, që ofron praktisht shkallëzim linear me rritjen e volumit të të dhënave. Cassandra përdor një model ruajti të dhënash të bazuar në familjet e kolonave (ColumnFamily), e cila dallon nga sistemet si memcachedb, të cilat ruajnë të dhënat vetëm në lidhje çelës/valë, duke ofruar mundësinë për të organizuar ruajtjen e hash-eve me disa nivele të thellësisë. Për të lehtësuar ndërveprimin me bazën e të dhënave mbështetet gjuha e formimit të kërkesave të strukturuara CQL (Cassandra Query Language), që i ngjan SQL, por është e kufizuar në funksionalitet. Nga mundësitë, mund të përmendet mbështetjes për hapësirat e emrave dhe familjet e kolonave, krijimin e indekseve nëpërmjet shprehjes 'CREATE INDEX'.

Sistemi i menaxhimit të të dhënave lejon krijimin e ruajtjeve të qëndrueshme ndaj dështimeve: të dhënat e vendosura në bazën e të dhënave automatikisht kopjohen në disa nyje të rrjetit të shpërndarë, i cili mund të mbulojë të ndryshme qendra të përpunimit të të dhënave. Në rast të një dështimi të nyjës, funksionet e saj kapen në kohë reale nga nyje të tjera. Shtimi i nyjeve të reja në klaster dhe azhurnimi i versionit të Cassandra bëhet në kohë reale, pa ndërhyrje manuale shtesë dhe pa rikonfigurimin e nyjeve të tjera. Të dyjat me mbështetje për CQL janë përgatitur për gjuhët Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ dhe JavaScript (Node.js).

TĂ« rejat kryesore:

  • Ka rritur performancĂ«n dhe shkallĂ«zimin. Ka rritur efikasitetin e shkĂ«mbimit tĂ« tĂ« dhĂ«nave nĂ« formatin SSTable (Sorted Strings Table) midis nyjeve. Protokolli i shkĂ«mbimit tĂ« mesazheve midis nyjeve Ă«shtĂ« optimizuar (Internode Messaging Protocol). ShpejtĂ«sia e transferimit tĂ« rrjedhave tĂ« dhĂ«nash midis nyjeve Ă«shtĂ« rritur deri nĂ« 5 herĂ« (nĂ« mĂ«nyrĂ« tĂ« kryesore pĂ«r shkak tĂ« aplikimit tĂ« teknikĂ«s Zero Copy dhe transferimit tĂ« SSTable-ve tĂ« tĂ«ra), dhe kapaciteti pĂ«r operacione leximi dhe shkruajtur deri nĂ« 25%. Procesi i rikuperimit inkremental Ă«shtĂ« optimizuar. Vonesat pĂ«r shkak tĂ« pezullimit tĂ« mbledhĂ«sit tĂ« mbeturinave janĂ« reduktuar nĂ« disa milisekonda.
  • Ka shtuar mbĂ«shtetje pĂ«r logun e auditit, i cili lejon ndjekjen e operacioneve tĂ« autentifikimit tĂ« pĂ«rdoruesve dhe tĂ« gjitha kĂ«rkesat qĂ« kryhen CQL.
  • Ka shtuar mundĂ«sinĂ« e mbajtjes sĂ« njĂ« logu binar tĂ« plotĂ« tĂ« kĂ«rkesave, i cili lejon ruajtjen e gjithĂ« trafikut tĂ« kĂ«rkesave dhe pĂ«rgjigjeve. PĂ«r menaxhimin janĂ« ofruar komandat 'nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog', ndĂ«rsa pĂ«r analizĂ«n e logut ofrohet utilitari fqltool. Komandat janĂ« ofruar pĂ«r tĂ« transformuar logun nĂ« njĂ« format tĂ« lexueshĂ«m (Dump), krahasimin e aktiviteteve (Compare) dhe rinisjen (Replay) pĂ«r analizĂ« me riprodhimin e kushteve qĂ« janĂ« karakteristike pĂ«r ngarkesĂ«n reale.
  • Ka shtuar mbĂ«shtetje pĂ«r tabela virtuale, tĂ« cilat nuk pasqyrojnĂ« tĂ« dhĂ«nat e ruajtura nĂ« SSTables, por informacionin e paraqitur pĂ«rmes API-t (metrika e performancĂ«s, informacion mbi cilĂ«simet, pĂ«rmbajtja e caches, informacion mbi klientĂ«t e lidhur, etj.).
  • Ka rritur efikasitetin e ruajtjes sĂ« tĂ« dhĂ«nave nĂ« formĂ« tĂ« comprimit, duke lejuar uljen e konsumit tĂ« hapĂ«sirĂ«s nĂ« disqet dhe rritjen e performancĂ«s sĂ« operacioneve tĂ« leximit.
  • TĂ« dhĂ«nat qĂ« i pĂ«rkasin hapĂ«sirĂ«s sistemike tĂ« çelĂ«save (system.*) tani vendosen automatikisht nĂ« direktorinĂ« e parĂ« nĂ« vend tĂ« shpĂ«rndarjes nĂ« tĂ« gjitha direktoritĂ« me tĂ« dhĂ«na, duke ruajtur funksionalitetin e nyjĂ«s nĂ« rast tĂ« dĂ«shtimit tĂ« njĂ« nga disqet shtesĂ«.
  • KĂ«tu Ă«shtĂ« shtuar mbĂ«shtetje eksperimentale pĂ«r replikimin e pĂ«rkohshĂ«m (Transient Replication) dhe kuorumet e lehta (Cheap Quorums). Replikat e pĂ«rkohshme nuk ruajnĂ« tĂ« dhĂ«na tĂ« plota dhe pĂ«rdorin rikuperim inkremental pĂ«r t'u koordinuar me replikat e plota. Kuorumet e lehta realizojnĂ« optimizimin e operacioneve tĂ« shkruar, ku shkrimi nĂ« replikat e pĂ«rkohshme nuk bĂ«het derisa tĂ« jetĂ« i disponueshĂ«m njĂ« set i mjaftueshĂ«m i replikave tĂ« plota.
  • KĂ«tu Ă«shtĂ« shtuar mbĂ«shtetje eksperimentale pĂ«r Java 11.
  • KĂ«tu Ă«shtĂ« shtuar njĂ« opsion eksperimental pĂ«r tĂ« krahasuar tĂ« gjitha pemĂ«t Merkle (Merkle Tree). PĂ«r shembull, aktivizimi i opsionit nĂ« njĂ« klaster me 3 nyje, nĂ« tĂ« cilin dy replikat janĂ« tĂ« njĂ«jta dhe njĂ« Ă«shtĂ« e vjetruar, do tĂ« rezultojĂ« nĂ« pĂ«rditĂ«simin e replikĂ«s sĂ« vjetruar duke pĂ«rdorur vetĂ«m njĂ« operacion kopjimi tĂ« replikĂ«s aktuale.
  • KĂ«tu janĂ« shtuar funksionet e reja currentTimestamp, currentDate, currentTime dhe currentTimeUUID.
  • KĂ«tu Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r operacionet aritmetike nĂ« pyetjet CQL.
  • KĂ«tu Ă«shtĂ« ofruar mundĂ«sia pĂ«r tĂ« kryer operacione aritmetike midis tĂ« dhĂ«nave me llojet "timestamp"/"date" dhe "duration".
  • KĂ«tu Ă«shtĂ« shtuar njĂ« modalitet pĂ«r tĂ« parashikuar rrjedhat e tĂ« dhĂ«nave qĂ« nevojiten pĂ«r rikuperimin (nodetool repair —preview) dhe mundĂ«sia pĂ«r tĂ« verifikuar integritetin e tĂ« dhĂ«nave tĂ« rikuperuara (nodetool repair —validate).
  • NĂ« pyetjet SELECT Ă«shtĂ« bĂ«rĂ« e mundur pĂ«rpunimi i elementeve Map dhe Set.
  • KĂ«tu Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r paralelizimin e fazĂ«s fillestare tĂ« ndĂ«rtimit tĂ« pamjeve materializuese (cassandra.yaml:concurrent_materialized_view_builders).
  • NĂ« komandĂ«n «nodetool cfstats» Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r renditjen sipas metrikave tĂ« caktuara dhe kufizimin e numrit tĂ« rreshtave tĂ« shfaqur.
  • KĂ«tu janĂ« ofruar cilĂ«sime pĂ«r tĂ« kufizuar qasjen e pĂ«rdoruesit vetĂ«m nĂ« qendra tĂ« caktuara tĂ« tĂ« dhĂ«nave.
  • KĂ«tu Ă«shtĂ« shtuar mundĂ«sia pĂ«r tĂ« kufizuar intensitetin (rate limit) e operacioneve tĂ« krijimit dhe pastrimit tĂ« kopjeve rezervĂ«.
  • NĂ« cqlsh dhe cqlshlib Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r Python 3 (mbĂ«shtetja pĂ«r Python 2.7 vazhdon tĂ« ruhet).
  • KĂ«tu Ă«shtĂ« ndĂ«rprerĂ« mbĂ«shtetje pĂ«r platformĂ«n Windows. PĂ«r tĂ« ekzekutuar Cassandra nĂ« Windows, rekomandohet pĂ«rdorimi i mjediseve Linux, tĂ« krijuara nĂ« pĂ«rputhje me nĂ«n-sistemin WSL2 (Windows Subsystem for Linux 2) ose sistemet e virtualizimit.

Luaj videon


Burimi: opennet.ru
Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster