Apache Cassandra 4.0 DBMS heye

Weqfa Nermalava Apache serbestberdana DBMS-ya belavkirî Apache Cassandra 4.0 pêşkêş kir, ku ji çîna pergalên noSQL ve girêdayî ye û ji bo afirandina hilanîna pir berbelav û pêbawer a mîqdarên mezin ên daneya ku di forma arrayek hevgirtî (hash) de hatî hilanîn, hatî çêkirin. Serbestberdana Cassandra 4.0 ji bo pêkanîna hilberînê amade tête hesibandin û jixwe di binesaziyên Amazon, Apple, DataStax, Instaclustr, iland û Netflix de bi komikên ji 1000-î zêdetir girêk hatine ceribandin. Koda projeyê bi Java-yê hatî nivîsandin û di bin lîsansa Apache 2.0 de tê belav kirin.

Cassandra DBMS di destpêkê de ji hêla Facebook ve hatî pêşve xistin û di sala 2009 de di bin banê Weqfa Apache de hate veguheztin. Çareseriyên pîşesaziyê yên li ser bingeha Cassandra ji bo karûbarên hêzê yên ji pargîdaniyên wekî Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit û Twitter hatine bicîh kirin. Mînakî, binesaziya hilanînê ya li ser bingeha Apache Cassandra ku ji hêla Apple ve hatî bicîh kirin ji hezarî zêdetir kom hene, di nav de 160 hezar girêk û zêdetirî 100 petabytes daneyan hilîne. Huawei zêdetirî 300 komikên Apache Cassandra bikar tîne, ku ji 30 hezar girêk pêk tê, û Netflix zêdetirî 100 koman bikar tîne, ku 10 hezar girêk vedigire û rojane zêdetirî trîlyonek daxwazî ​​dike.

Cassandra DBMS pergalek haş a Dynamo ya bi tevahî hatî belav kirin bi hev re dike, ku her ku hêjmara daneyê zêde dibe hema hema pîvana xêzik peyda dike. Cassandra modelek hilanîna daneyê li ser bingeha malbatek stûnê (ColumnFamily) bikar tîne, ku ji pergalên mîna memcachedb, ku daneyan tenê di zincîreyek kilît/nirxê de hilîne, ji hêla kapasîteya organîzekirina hilanîna haşeyan bi çend astên hêlînê ve cûda dibe. Ji bo hêsankirina danûstendina bi databasê re, zimanê lêpirsînê yê sazkirî CQL (Cassandra Query Language) tê piştgirî kirin, ku SQL tîne bîra xwe, lê di fonksiyonê de kêm dibe. Taybetmendî piştgirî ji bo cîhên navan û malbatên stûnan, û çêkirina indexan bi karanîna îfadeya "CREATE INDEX" digire.

DBMS destûrê dide we ku hûn hilanînê-berxwedêr biafirînin: Daneyên ku di databasê de têne bicîh kirin bixweber li gelek girêkên torgilokek belavbûyî têne dubare kirin, ku dikarin navendên daneyê yên cihêreng vegerînin. Dema ku nodek têk diçe, fonksiyonên wê ji hêla girêkên din ve têne hildan. Zêdekirina girêkên nû li komê û nûvekirina guhertoya Cassandra di firînê de, bêyî destwerdana desta zêde an ji nû veavakirina girêkên din, tê kirin. Ajokarên bi piştgiriya CQL ji bo Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ û JavaScript (Node.js) têne amadekirin.

Nûvekirinên sereke:

  • Performansa başkirin û scalability. Karbidestiya danûstendina daneyê di formata SSTable (Tabloya Rêzên Birêkûpêk) de di navbera girêkan de çêtir bûye. Protokola Peyama Internode hate xweşbîn kirin. Leza veguheztina herikên daneyê di navbera girêkan de heya 5 qatan zêde bûye (bi piranî ji ber karanîna teknîka Zero Copy û veguheztina tevahî SSTables), û karûbarê xebata xwendin û nivîsandinê heya 25% zêde bûye. Pêvajoya başbûnê ya zêde hate xweşbîn kirin. Derengiya ji ber rawestana berhevkirina çopê heya çend milîsaniyeyan kêm dibe.
  • Piştgiriyek ji bo têketinek kontrolê zêde kir ku destûrê dide te ku hûn operasyonên erêkirina bikarhêner û hemî lêpirsînên CQL-ê yên darvekirî bişopînin.
  • Kapasîteya domandina têketinek daxwazek binar a bêkêmasî zêde kir, ku dihêle hûn hemî seyrûsefera daxwaz û bersivê hilînin. Ji bo rêvebirinê, fermanên "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" têne pêşniyar kirin, û amûra fqltool ji bo analîzkirina têketinê tê peyda kirin. Ferman ji bo veguheztina têketinê di formek xwendinê de (Dump), berhevkirina perçeyên çalakiyê (Berhevberkirin) û ji nû ve darvekirinê (Replay) ji bo analîzê têne peyda kirin ku şert û mercên xwedan bargiraniya rastîn dubare dike.
  • Piştgiriyek ji bo tabloyên virtual ku ne daneya ku di SSTables de hatine hilanîn, lê agahdariya ku bi navgîniya API-yê ve hatî hilanîn nîşan dide (metrîkên performansê, agahdariya mîhengan, naveroka cache, agahdariya li ser xerîdarên girêdayî, hwd.) zêde kir.
  • Karbidestiya hilanîna daneya pêçandî çêtir bûye, xerckirina cîhê dîskê kêm dike û performansa xwendinê baştir dike.
  • Daneyên ku bi mifteya pergalê (pergal.*) ve girêdayî ne, naha di pelrêça yekem de ji hêla xwerû ve têne cîh kirin li şûna ku li ser hemî pelrêça daneyan bêne belav kirin, ev yek dihêle ku ger yek ji dîskên zêde têk biçe, girêk bixebite.
  • Piştgiriya ceribandî ji bo Repplication Veguhastî û Quorumên Erzan zêde kir. Bersivên demkî hemî daneyan hilnagirin û vegerandina zêde bikar tînin da ku bi kopiyên tevahî re hevaheng bin. Quorumên ronahiyê xweşbîniya nivîsandinê pêk tînin ku tê de ti nivîsandin li kopiyên demkî nayên kirin heya ku komek têr ji kopiyên tam peyda nebe.
  • Piştgiriya ceribandinê ji bo Java 11 zêde kir.
  • Vebijarka ceribandinê zêde kir ku hemî Darên Merkle bidin ber hev. Mînakî, çalakkirina vebijarka li ser komek 3-girêk ku tê de du kopîk wek hev in û yek jê rawestayî ye, dê bibe sedema nûvekirina kopyaya kevnare ku tenê yek operasyona kopî ya kopyaya heyî bikar tîne.
  • Fonksiyonên nû nihaTimestamp, Dîroka niha, Dema niha û dema niha UUID zêde kirin.
  • Di pirsên CQL de ji bo operasyonên arîtmetîk piştgirî zêde kir.
  • Kapasîteya ku di navbera daneyan de bi celebên "demjimêr"/"dîrok" û "demjimêrî" operasyonên jimartinê pêk bîne tê peyda kirin.
  • Modeyek ji bo pêşdîtina herikên daneyê yên ku ji bo başbûnê hewce ne (tamîrkirina nodetool - pêşdîtin) û şiyana kontrolkirina yekparebûna daneyên ku têne vegerandin (tamîrkirina nodetool - erêkirin) lê zêde kir.
  • Pirsên SELECT nuha xwedan şiyana pêvajokirina hêmanên Nexşe û Set hene.
  • Ji bo paralelkirina qonaxa avakirina destpêkê ya dîtinên maddî (cassandra.yaml:concurrent_materialized_view_builders) piştgirî lê zêde kir.
  • Fermana "nodetool cfstats" ji bo birêkûpêkkirina li gorî hin metrîkan piştgirî zêde kiriye û hejmara rêzên xuyangkirî sînordar dike.
  • Mîheng têne peyda kirin ku girêdana bikarhêner tenê bi hin navendên daneyê re sînordar bikin.
  • Kapasîteya sînorkirina tundûtûjiyê (sînorê rêjeyê) ya çêkirina wêne û operasyonên paqijkirinê zêde kir.
  • cqlsh û cqlshlib naha Python 3 piştgirî dikin (Python 2.7 hîn jî piştgirî ye).
  • Piştgiriya ji bo platforma Windows-ê hate rawestandin. Ji bo ku Cassandra li ser Windows-ê bimeşîne, tê pêşniyar kirin ku hawîrdorên Linux-ê yên ku li ser bingeha binepergala WSL2 (Windows Subsystem ji bo Linux 2) an pergalên virtualîzasyonê hatine afirandin bikar bînin.



Source: opennet.ru

Add a comment