{"id":37585,"date":"2019-10-31T22:18:27","date_gmt":"2019-10-31T19:18:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\/"},"modified":"2019-10-31T22:18:27","modified_gmt":"2019-10-31T19:18:27","slug":"kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","title":{"rendered":"Si si shikon Kassandra n\u00eb sy dhe nuk humb t\u00eb dh\u00ebnat, stabilitetin dhe besimin n\u00eb NoSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Si si shikon Kassandra n\u00eb sy dhe nuk humb t\u00eb dh\u00ebnat, stabilitetin dhe besimin n\u00eb NoSQL\" src=\"\/wp-content\/uploads\/2019\/08\/4845d37a9928f888639c4ebeb7807787.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p>Thon\u00eb se n\u00eb jet\u00ebn duhet provuar gjith\u00e7ka t\u00eb pakt\u00ebn nj\u00eb her\u00eb. Dhe n\u00ebse jeni m\u00ebsuar t\u00eb punoni me DB t\u00eb relacionit, \u00ebsht\u00eb e vlefshme t\u00eb njihni n\u00eb praktik\u00eb NoSQL, s\u00eb paku p\u00ebr zhvillim t\u00eb p\u00ebrgjithsh\u00ebm. Tani, p\u00ebr shkak t\u00eb zhvillimit t\u00eb shpejt\u00eb t\u00eb k\u00ebsaj te technologie, ka shum\u00eb mendime kontradiktore dhe debate t\u00eb zjarrta n\u00eb k\u00ebt\u00eb tem\u00eb, q\u00eb ve\u00e7an\u00ebrisht nxisin interesin.<br \/>\nN\u00ebse shqyrtojm\u00eb thelbin e t\u00eb gjitha k\u00ebtyre debateve, mund t\u00eb shohim se ato lindin nga nj\u00eb qasje e gabuar. Ata q\u00eb i p\u00ebrdorin bazat e t\u00eb dh\u00ebnave NoSQL aty ku nevojiten, jan\u00eb t\u00eb k\u00ebnaqur dhe fitojn\u00eb t\u00eb gjitha avantazhet e k\u00ebtij zgjidhjeje. Nd\u00ebrsa eksperimentuesit, q\u00eb shpresojn\u00eb n\u00eb k\u00ebt\u00eb teknologji si nj\u00eb panace prej aty ku ajo nuk \u00ebsht\u00eb e aplikueshme fare, ndiejn\u00eb zhg\u00ebnjim, duke humbur pikat e forta t\u00eb bazave t\u00eb relacionit pa fituar p\u00ebrfitime t\u00eb r\u00ebnd\u00ebsishme.<\/p>\n<p><\/p>\n<p>Un\u00eb do t\u00eb tregoj p\u00ebr p\u00ebrvoj\u00ebn ton\u00eb n\u00eb implementimin e nj\u00eb zgjidhjeje t\u00eb bazuar n\u00eb DB-n\u00eb Cassandra: p\u00ebr \u00e7far\u00eb na \u00ebsht\u00eb dashur t\u00eb p\u00ebrballemi, si kemi gjetur zgjidhje n\u00eb situata t\u00eb v\u00ebshtira, n\u00ebse kemi arritur t\u00eb fitojm\u00eb nga p\u00ebrdorimi i NoSQL, dhe ku na \u00ebsht\u00eb dashur t\u00eb investojm\u00eb p\u00ebrpjekje\/fonde shtes\u00eb.<br \/>\nDetyra fillestare \u00ebsht\u00eb nd\u00ebrtimi i nj\u00eb sistemi q\u00eb regjistron thirrjet n\u00eb nj\u00eb depo.<\/p>\n<p><\/p>\n<p>Principi i pun\u00ebs s\u00eb sistemit \u00ebsht\u00eb si vjen. N\u00eb hyrje vijn\u00eb skedar\u00eb me nj\u00eb struktur\u00eb t\u00eb caktuar, q\u00eb p\u00ebrshkruan struktur\u00ebn e thirrjes. M\u00eb pas, aplikacioni siguron ruajtjen e k\u00ebsaj strukture n\u00eb kolonat p\u00ebrkat\u00ebse. N\u00eb vazhdim, thirrjet e ruajtura p\u00ebrdoren - p\u00ebr t\u00eb shfaqur informacionin mbi konsumimin e trafikut p\u00ebr abonent\u00ebt (akumulime, thirrje, historia e bilancit).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Si si shikon Kassandra n\u00eb sy dhe nuk humb t\u00eb dh\u00ebnat, stabilitetin dhe besimin n\u00eb NoSQL\" src=\"\/wp-content\/uploads\/2019\/08\/c7b095dc8879011adb751c96427af512.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Pse u zgjodh Cassandra \u00ebsht\u00eb e qart\u00eb - ajo shkruan si nj\u00eb mitraloz, \u00ebsht\u00eb leht\u00ebsisht e shkall\u00ebzueshme dhe e q\u00ebndrueshme ndaj d\u00ebshtimeve.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Pra, ja \u00e7far\u00eb na ofroi eksperienca<\/h2>\n<p><\/p>\n<p>Po, nj\u00eb nod i r\u00ebn\u00eb - nuk \u00ebsht\u00eb tragjedi. Kjo \u00ebsht\u00eb thelbi i q\u00ebndrueshm\u00ebris\u00eb s\u00eb d\u00ebshtimit t\u00eb Cassandr\u00ebs. Por <b>noda mund t\u00eb jet\u00eb aktive dhe megjithat\u00eb t\u00eb filloj\u00eb t\u00eb bjer\u00eb n\u00eb performanc\u00eb.<\/b>Si\u00e7 rezultoi, kjo reflektohet menj\u00ebher\u00eb n\u00eb performanc\u00ebn e gjith\u00eb klasterit.<\/p>\n<p><\/p>\n<p><b>Cassandra nuk do t\u00eb ofroj\u00eb siguri atje ku Oracle shp\u00ebtonte me kufizimet e tij.<\/b>Dhe n\u00ebse autori i aplikacionit nuk e kuptoi k\u00ebt\u00eb paraprakisht, at\u00ebher\u00eb nj\u00eb dublim i ardhur p\u00ebr Cassandr\u00ebn nuk \u00ebsht\u00eb aspak m\u00eb keq se origjinali. Po erdhi, at\u00ebher\u00eb le t'i vendosim.<\/p>\n<p><\/p>\n<p>Cassandra pa pages\u00eb \"nga kutia\" me t\u00eb v\u00ebrtet\u00eb nuk i p\u00eblqeu Siguris\u00eb s\u00eb Informat\u00ebs: <b>nuk ka regjistrim t\u00eb veprimeve t\u00eb p\u00ebrdoruesve, as ndarje t\u00eb t\u00eb drejtave.<\/b>. Informacioni mbi thirrjet i p\u00ebrket t\u00eb dh\u00ebnave personale, q\u00eb do t\u00eb thot\u00eb se t\u00eb gjitha p\u00ebrpjekjet p\u00ebr ta k\u00ebrkuar\/ndryshuar at\u00eb duhet t\u00eb regjistrohen me mund\u00ebsin\u00eb e auditimit t\u00eb m\u00ebvonsh\u00ebm. Gjithashtu, duhet t\u00eb kuptohet nevoja p\u00ebr t\u00eb ndar\u00eb t\u00eb drejtat n\u00eb nivele t\u00eb ndryshme p\u00ebr p\u00ebrdorues t\u00eb ndryshme. Nj\u00eb inxhiner i zakonsh\u00ebm i operacioneve dhe nj\u00eb superadmin, i cili mund t\u00eb fshij\u00eb t\u00eb gjith\u00eb keyspace pa asnj\u00eb problem \u2013 jan\u00eb role t\u00eb ndryshme, me p\u00ebrgjegj\u00ebsi dhe kompetenca t\u00eb ndryshme. Pa k\u00ebt\u00eb ndarje t\u00eb t\u00eb drejtave t\u00eb aksesit, vlera dhe integriteti i t\u00eb dh\u00ebnave do t\u00eb vihet shpejt n\u00eb pik\u00ebpyetje, m\u00eb shpejt se n\u00eb nivelin e q\u00ebndrushm\u00ebris\u00eb ANY. <\/p>\n<p><\/p>\n<p>Nuk e kemi marr\u00eb parasysh se p\u00ebr thirrjet nevojiten analiza serioze, si dhe mostra periodike sipas kushteve t\u00eb ndryshme. Duke qen\u00eb se regjistrimet e zgjedhura priten t\u00eb fshihen dhe rip\u00ebrshkruhen (n\u00eb kuad\u00ebr t\u00eb detyr\u00ebs ne duhet t\u00eb mbajm\u00eb procesin e aktulizimit t\u00eb t\u00eb dh\u00ebnave p\u00ebr t\u00eb dh\u00ebnat q\u00eb fillimisht na kan\u00eb ardhur gabim), at\u00ebhere Kassandra nuk \u00ebsht\u00eb ndihmuese k\u00ebtu. <b>Kassandra, si nj\u00eb kasafort\u00eb \u2013 \u00ebsht\u00eb e p\u00ebrshtatshme p\u00ebr t\u00eb ruajtur, por nuk \u00ebsht\u00eb e mundur t\u00eb num\u00ebrosh brenda saj.<\/b><\/p>\n<p><\/p>\n<p><b>Natyra e p\u00ebrballjes me problemin e transferimit t\u00eb t\u00eb dh\u00ebnave n\u00eb zonat e testimit.<\/b> (5 nod n\u00eb test n\u00eb p\u00ebrballje me 20 n\u00eb prodhim). N\u00eb k\u00ebt\u00eb rast, nuk do t\u00eb mund ta p\u00ebrdorim dump-in.<\/p>\n<p><\/p>\n<p>Problemi i azhurnimeve t\u00eb skem\u00ebs s\u00eb t\u00eb dh\u00ebnave t\u00eb aplikacionit q\u00eb shkruan n\u00eb Cassandra. <b>Rivendosja do t\u00eb sjell\u00eb nj\u00eb num\u00ebr t\u00eb madh varresh, q\u00eb n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb paparashikueshme mund t\u00eb ndikoj\u00eb n\u00eb performanc\u00ebn ton\u00eb.<\/b>. Cassandra \u00ebsht\u00eb optimizuar p\u00ebr shkrimin, dhe para se t\u00eb shkruaj\u00eb, nuk mendon shum\u00eb. \u00c7do operacion me t\u00eb dh\u00ebna ekzistuese n\u00eb t\u00eb \u00ebsht\u00eb gjithashtu nj\u00eb shkrim. Pra, duke fshir\u00eb t\u00eb tep\u00ebrat, thjesht do t\u00eb krijojm\u00eb m\u00eb shum\u00eb shkrime, dhe vet\u00ebm nj\u00eb pjes\u00eb e tyre do t\u00eb sh\u00ebnohen si varre.<\/p>\n<p><\/p>\n<p>Koh\u00ebt e pritjes gjat\u00eb inserimit. Cassandra \u00ebsht\u00eb e shk\u00eblqyer n\u00eb shkrim, por <b>ndonj\u00ebher\u00eb rrjedha e ardhshme mund ta \u00e7udis\u00eb at\u00eb shum\u00eb.<\/b>. Kjo ndodh kur aplikacioni fillon t\u00eb rrotullon disa shkrime q\u00eb nuk mund t\u00eb inserohen p\u00ebr ndonj\u00eb arsye. Dhe do t\u00eb na nevojitet nj\u00eb DBA i v\u00ebrtet\u00eb, i cili do t\u00eb monitoroj\u00eb gc.log, log-et e sistemit dhe debug p\u00ebr k\u00ebrkesa t\u00eb ngadalta, metrikat mbi compaction pending.\n<\/p>\n<p><\/p>\n<p>Disa qendra t\u00eb dh\u00ebnash n\u00eb klaster. <b>Nga ku t\u00eb lexojm\u00eb dhe ku t\u00eb shkruajm\u00eb?<\/b> <br \/>\nA mund t\u00eb ndahet n\u00eb lexim dhe shkrim? Dhe n\u00ebse po, duhet t\u00eb ket\u00eb DC p\u00ebr shkrimin apo p\u00ebr leximin af\u00ebr aplikacionit? A do t\u00eb kemi nj\u00eb v\u00ebrtet\u00eb split brain n\u00ebse zgjedhim gabim nivelin e koherenc\u00ebs? Ka shum\u00eb pyetje, shum\u00eb konfiguracione dhe mund\u00ebsi t\u00eb panjohura q\u00eb d\u00ebshirojm\u00eb t'i eksplorojm\u00eb.\n<\/p>\n<p><\/p>\n<h2>Si e zgjidh\u00ebm<\/h2>\n<p><\/p>\n<p><b>P\u00ebr t\u00eb mos lejuar q\u00eb noda t\u00eb bjer\u00eb, ndaluam SWAP<\/b>. Dhe tani, n\u00eb rast se mungon memorie, noda duhet t\u00eb bjer\u00eb, e jo t\u00eb krijoj\u00eb pauza t\u00eb m\u00ebdha gc.<\/p>\n<p><\/p>\n<p>Prandaj, nuk mb\u00ebshtetemi m\u00eb n\u00eb logjik\u00ebn n\u00eb DB. <b>Zhvilluesit e aplikacionit po rishkruajn\u00eb dhe fillojn\u00eb t\u00eb sigurohen aktivisht n\u00eb kodin e tyre.<\/b> Ndarje e p\u00ebrsosur e qart\u00eb e ruajtjes dhe p\u00ebrpunimit t\u00eb t\u00eb dh\u00ebnave.<\/p>\n<p><\/p>\n<p><b>Blem\u00eb mb\u00ebshtetje nga DataStax.<\/b> Kassand\u00ebr e paketuar tashm\u00eb nuk po zhvillohet m\u00eb (komiti i fundit n\u00eb shkurt 2018). N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, Datastax ofron nj\u00eb sh\u00ebrbim t\u00eb shk\u00eblqyer dhe nj\u00eb num\u00ebr t\u00eb madh zgjidhjesh t\u00eb punuara dhe t\u00eb adaptuara p\u00ebr sistemet ekzistuese.<\/p>\n<p><\/p>\n<p>D\u00ebshiroj t\u00eb theksoj se Cassandra nuk \u00ebsht\u00eb shum\u00eb e p\u00ebrshtatshme p\u00ebr k\u00ebrkesat e t\u00eb dh\u00ebnave. Natyrisht, CQL \u00ebsht\u00eb nj\u00eb hap i madh drejt leht\u00ebsimit p\u00ebr p\u00ebrdoruesit (krahasuar me Trift). Por n\u00ebse keni t\u00eb t\u00ebra departamente q\u00eb jan\u00eb m\u00ebsuar me nd\u00ebrlikime t\u00eb tilla t\u00eb lehta, filtrimin e lir\u00eb n\u00eb \u00e7do fush\u00eb dhe mund\u00ebsit\u00eb e optimizimit t\u00eb k\u00ebrkesave, dhe k\u00ebto departamente punojn\u00eb p\u00ebr t\u00eb zgjidhur pretendimet dhe emergjencat, at\u00ebher\u00eb nj\u00eb zgjidhje n\u00eb Cassandra duket si nj\u00eb vendim armiq\u00ebsor dhe i padijsh\u00ebm. Dhe ne filluam t\u00eb zgjidhnim se si koleg\u00ebt tan\u00eb mund t\u00eb b\u00ebjn\u00eb seleksione. <\/p>\n<p><\/p>\n<p>Kemi shqyrtuar dy mund\u00ebsi. N\u00eb mund\u00ebsin\u00eb e par\u00eb shkruajm\u00eb thirrjet jo vet\u00ebm n\u00eb C*, por edhe n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave arkivore Oracle. Ndryshe nga C*, n\u00eb k\u00ebt\u00eb baz\u00eb t\u00eb t\u00eb dh\u00ebnave ruhen thirrjet vet\u00ebm p\u00ebr muajin aktual (nj\u00eb thell\u00ebsi e mjaftueshme ruajtjeje p\u00ebr rastet e ri-ndarjes). K\u00ebtu shikohet menj\u00ebher\u00eb problemi i m\u00ebposht\u00ebm: n\u00ebse shkruajm\u00eb n\u00eb m\u00ebnyr\u00eb sinkrone, humbasim t\u00eb gjitha avantazhet e C*, t\u00eb lidhura me inserimin e shpejt\u00eb; n\u00ebse asinkrone \u2013 nuk ka garanci q\u00eb t\u00eb gjitha thirrjet e nevojshme do t\u00eb p\u00ebrfshihen n\u00eb Oracle. Nj\u00eb plus kishte, por t\u00eb madh: p\u00ebr shp\u00ebrndarjen mbetet e nj\u00ebjta zhvillues i njohur PL\/SQL, pra praktikisht zbatojm\u00eb modelin \"Facada\". Mund\u00ebsi alternative. Zbatojm\u00eb nj\u00eb mekaniz\u00ebm q\u00eb nxjerr thirrjet nga C*, merr disa t\u00eb dh\u00ebna p\u00ebr pasurimin nga tabelat p\u00ebrkat\u00ebse n\u00eb Oracle, bashkon grumbujt e marra dhe na jep rezultatin e marr\u00eb, t\u00eb cilin m\u00eb pas e p\u00ebrdorim ndonj\u00ebher\u00eb (e rrotullojm\u00eb, e rip\u00ebrs\u00ebrisim, e analizojm\u00eb, e admirojm\u00eb). Minuse: procesi rezulton t\u00eb jet\u00eb mjaft shum\u00eb-shkallor, dhe p\u00ebr m\u00eb tep\u00ebr, mungon nj\u00eb nd\u00ebrfaqe p\u00ebr punonj\u00ebsit e shp\u00ebrndarjes.<\/p>\n<p><\/p>\n<p>N\u00eb fund, u ndal\u00ebm n\u00eb versionin e dyt\u00eb. <b>P\u00ebr grumbujt nga banka t\u00eb ndryshme, kemi p\u00ebrdorur Apache Spark.<\/b> Natyra e mekanizmit \u00ebsht\u00eb reduktuar n\u00eb kodin Java, i cili duke u mb\u00ebshtetur n\u00eb \u00e7el\u00ebsat e p\u00ebrcaktuar (abonenti, koha e thirrjes \u2013 \u00e7el\u00ebsat e seksionit) nxjerr t\u00eb dh\u00ebna nga C*, si dhe t\u00eb dh\u00ebnat e nevojshme p\u00ebr pasurimin nga \u00e7do DB tjet\u00ebr. M\u00eb pas, i bashkon ato n\u00eb memorje dhe jep rezultatin n\u00eb tabel\u00ebn p\u00ebrfundimtare. Nj\u00eb nd\u00ebrfaqe web-u \u00ebsht\u00eb krijuar mbi Spark dhe rezultati \u00ebsht\u00eb mjaft i p\u00ebrdorsh\u00ebm.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Si si shikon Kassandra n\u00eb sy dhe nuk humb t\u00eb dh\u00ebnat, stabilitetin dhe besimin n\u00eb NoSQL\" src=\"\/wp-content\/uploads\/2019\/08\/5754363569f159dd7b86972bb0cef732.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Gjat\u00eb zgjidhjes s\u00eb problemit me p\u00ebrdit\u00ebsimin e t\u00eb dh\u00ebnave, ekipi i testimit p\u00ebrs\u00ebri shqyrtoi disa alternativa p\u00ebr zgjidhjen. Si migrimi p\u00ebrmes Sstloader, ashtu edhe opsioni p\u00ebr ndarjen e grupit n\u00eb zon\u00ebn e testit n\u00eb dy pjes\u00eb, secila prej t\u00eb cilave hyn alternuar n\u00eb nj\u00eb grup me at\u00eb t\u00eb prodhimit, duke u furnizuar n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb prej tij. Gjat\u00eb p\u00ebrdit\u00ebsimit t\u00eb testit, ishte planifikuar q\u00eb t'i ndryshonim vendet: pjesa q\u00eb punonte n\u00eb test hiqej dhe futeshin n\u00eb prodhim, nd\u00ebrsa tjetra fillonte t\u00eb punonte me t\u00eb dh\u00ebnat ve\u00e7mas. Megjithat\u00eb, duke menduar nj\u00eb her\u00eb tjet\u00ebr, ne e vler\u00ebsuam m\u00eb rasionalisht ato t\u00eb dh\u00ebna q\u00eb duhej t\u00eb transferonin dhe kuptuam se thirrjet vet\u00eb ishin nj\u00eb entitet jo-konsistent p\u00ebr testet, t\u00eb gjeneruara shpejt n\u00eb rast nevoje, dhe pik\u00ebrisht grupi i t\u00eb dh\u00ebnave t\u00eb prodhimit nuk kishte vler\u00eb p\u00ebr t'u transferuar n\u00eb test. Ka disa objekte-ruajt\u00ebs q\u00eb vlen t\u00eb transferohen, por jan\u00eb dosje t\u00eb pakta, madje, jo t\u00eb r\u00ebnda. Prandaj, ne <b>p\u00ebrs\u00ebri e gjet\u00ebm zgjidhjen n\u00eb Spark, me ndihm\u00ebn e t\u00eb cilit e shkruam dhe filluam ta p\u00ebrdorim aktivisht skriptin p\u00ebr transferimin e t\u00eb dh\u00ebnave midis tabelave t\u00eb prodhimit dhe t\u00eb testit.<\/b><\/p>\n<p><\/p>\n<p><b>Politika jon\u00eb aktuale e shp\u00ebrndarjes na lejon t\u00eb punojm\u00eb pa rikthime.<\/b> Para fillimin e promocionit, ka nj\u00eb test t\u00eb detyruesh\u00ebm, ku gabimi nuk \u00ebsht\u00eb aq i kushtuesh\u00ebm. N\u00eb rast d\u00ebshtimi, gjithmon\u00eb mund t\u00eb heqim case space dhe t\u00eb riformatojm\u00eb t\u00eb gjith\u00eb skem\u00ebn nga e para.<\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb siguruar disponueshm\u00ebrin\u00eb e vazhdueshme t\u00eb Cassandra-s, nevojitet nj\u00eb DBA dhe jo vet\u00ebm ai. <b>T\u00eb gjith\u00eb ata q\u00eb punojn\u00eb me aplikacionin duhet t\u00eb kuptojn\u00eb se ku dhe si t\u00eb monitorojn\u00eb situat\u00ebn aktuale dhe si t\u00eb diagnostikojn\u00eb problemet n\u00eb koh\u00eb.<\/b> P\u00ebr k\u00ebt\u00eb, ne p\u00ebrdorim aktivisht DataStax OpsCenter (administrim dhe monitorim i ngarkesave t\u00eb pun\u00ebs), metrikat sistemore t\u00eb Cassandra Driver (numri i koh\u00ebve t\u00eb shkurtimit n\u00eb shkrim n\u00eb C*, numri i koh\u00ebve t\u00eb shkurtimit n\u00eb lexim nga C*, latenca maksimale, etj.), dhe monitorojm\u00eb funksionimin e vet\u00eb aplikacionit q\u00eb punon me Cassandra.\n<\/p>\n<p><\/p>\n<p>Kur t\u00eb mendonim p\u00ebr pyetjen e m\u00ebparshme, kuptuam se ku mund t\u00eb fshihet rreziku kryesor. Kjo \u00ebsht\u00eb forma e paraqitjes s\u00eb t\u00eb dh\u00ebnave, e cila nxjerr t\u00eb dh\u00ebna nga disa k\u00ebrkesa t\u00eb pavarura nga nj\u00ebra-tjetra ndaj depozit\u00ebs. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, mund t\u00eb marrim informacione mjaft t\u00eb papajtueshme. Por ky problem do t\u00eb ishte po aq i r\u00ebnd\u00ebsish\u00ebm edhe n\u00ebse do t\u00eb punonim vet\u00ebm me nj\u00eb qend\u00ebr t\u00eb dh\u00ebnash. Prandaj, m\u00eb e arsyeshme do t\u00eb ishte, natyrisht, t\u00eb krijonim nj\u00eb funksion p\u00ebrgatitor p\u00ebr leximin e t\u00eb dh\u00ebnave n\u00eb nj\u00eb program t\u00eb jasht\u00ebm, i cili do t\u00eb siguroj\u00eb marrjen e t\u00eb dh\u00ebnave n\u00eb nj\u00eb periudh\u00eb t\u00eb vetme kohe. Sa i p\u00ebrket ndarjes p\u00ebr lexim dhe shkruaj n\u00eb aspektin e performanc\u00ebs, na ndali rreziku se gjat\u00eb ndonj\u00eb humbjeje t\u00eb lidhjes midis qendrave t\u00eb dh\u00ebnash, mund t\u00eb kemi dy klaster\u00eb t\u00ebr\u00ebsisht t\u00eb papajtuesh\u00ebm me nj\u00ebri-tjetrin.<\/p>\n<p><\/p>\n<p>Si rezultat, p\u00ebr momentin <b>ndal\u00ebm n\u00eb nivelin e pajtueshm\u00ebris\u00eb p\u00ebr shkruim EACH_QUORUM, p\u00ebr lexim \u2013 LOCAL_QUORUM<\/b><\/p>\n<p><\/p>\n<h2>Impresionet dhe p\u00ebrfundimet e shkurtra<\/h2>\n<p><\/p>\n<p>P\u00ebr t\u00eb vler\u00ebsuar zgjidhjen e arritur nga k\u00ebndv\u00ebshtrimi i mb\u00ebshtetjes operative dhe perspektivave p\u00ebr zhvillim t\u00eb m\u00ebtejsh\u00ebm, vendos\u00ebm t\u00eb mendojm\u00eb se ku mund t\u00eb aplikohet nj\u00eb zhvillim i till\u00eb.<\/p>\n<p><\/p>\n<p>N\u00ebse flasim n\u00eb p\u00ebrgjith\u00ebsi, at\u00ebher\u00eb vler\u00ebsimi i t\u00eb dh\u00ebnave p\u00ebr programe t\u00eb tipit \"Paguaj kur t\u00eb p\u00ebrshtatet\" (ngarkojm\u00eb n\u00eb S* informacion, llogaritja n\u00eb skriptet Spark), mbajtja e ankesave me agregimin sipas drejtimeve, ruajtja e roleve dhe llogaritja sipas matric\u00ebs rol p\u00ebr t\u00eb drejtat e qasjes s\u00eb p\u00ebrdoruesve. <\/p>\n<p><\/p>\n<p>Si\u00e7 e shohim, repertori \u00ebsht\u00eb i gjer\u00eb dhe i larmish\u00ebm. Dhe n\u00ebse duam t\u00eb zgjedhim an\u00ebn e mb\u00ebshtetjes\/ kund\u00ebrshtimit t\u00eb NoSQL, ne do t\u00eb jemi n\u00eb an\u00ebn e mb\u00ebshtetjes, pasi kemi fituar avantazhe dhe sidomos aty ku prisnim.<\/p>\n<p><\/p>\n<p>Edhe varianti Cassandra nga paketa e saj lejon t\u00eb b\u00ebhet shkall\u00ebzim horizontal n\u00eb koh\u00eb reale, duke zgjidhur pa dhimbje \u00e7\u00ebshtjen e rritjes s\u00eb t\u00eb dh\u00ebnave n\u00eb sistem. Ne arrit\u00ebm t\u00eb nxjerrim n\u00eb nj\u00eb kontur t\u00eb ve\u00e7ant\u00eb nj\u00eb mekaniz\u00ebm shum\u00eb me ngarkes\u00eb p\u00ebr llogaritjen e agregateve p\u00ebr thirrjet, si dhe t\u00eb ndajm\u00eb skem\u00ebn dhe logjik\u00ebn e aplikacionit, duke u liruar nga praktikat e gabuara t\u00eb krijimit t\u00eb pun\u00ebve dhe objekteve n\u00eb vet\u00eb baz\u00ebn e t\u00eb dh\u00ebnave. Ne pat\u00ebm mund\u00ebsin\u00eb t\u00eb zgjidhim dhe t\u00eb konfigurojm\u00eb, p\u00ebr t\u00eb p\u00ebrshpejtuar, se n\u00eb cilat DC do t\u00eb b\u00ebjm\u00eb llogaritjen dhe n\u00eb cilat do t\u00eb regjistrojm\u00eb t\u00eb dh\u00ebnat, duke u mbrojtur p\u00ebr r\u00ebniet e mundshme, si t\u00eb nodeve t\u00eb ve\u00e7anta, ashtu edhe t\u00eb p\u00ebrgjithshmeve DC.<\/p>\n<p><\/p>\n<p>Duke aplikoni arkitektur\u00ebn ton\u00eb n\u00eb projektet e reja, duke pasur nj\u00ebfar\u00eb p\u00ebrvoje, d\u00ebshirojm\u00eb t\u00eb marrim parasysh nuancat e p\u00ebrmendura m\u00eb par\u00eb dhe t\u00eb shmangim disa gabime, p\u00ebr t\u00eb leht\u00ebsuar disa k\u00ebndv\u00ebshtrime q\u00eb nuk arrit\u00ebm t'i shmangim n\u00eb fillim.<\/p>\n<p><\/p>\n<p>P\u00ebr shembull, <b>t\u00eb ndjekim n\u00eb koh\u00eb azhurnimet q\u00eb vijn\u00eb nga Cassandra<\/b>, sepse shum\u00eb nga problemet q\u00eb kemi hasur ishin tashm\u00eb t\u00eb njohura dhe ishin rregulluar.<\/p>\n<p><\/p>\n<p><b>T\u00eb mos vendosim as baz\u00ebn e t\u00eb dh\u00ebnave dhe as Spark n\u00eb t\u00eb nj\u00ebjtat node<\/b> ose t\u00eb ndar\u00eb rrept\u00ebsisht sipas numrit t\u00eb burimeve t\u00eb lejuara, pasi Spark mund t\u00eb konsumoj\u00eb m\u00eb shum\u00eb RAM sesa pranohet, dhe ne do t\u00eb p\u00ebrballemi shpejt me problemin num\u00ebr 1 nga lista jon\u00eb.<\/p>\n<p><\/p>\n<p><b>T\u00eb p\u00ebrmir\u00ebsojm\u00eb monitorimin dhe kompetencat e operacionit edhe gjat\u00eb faz\u00ebs s\u00eb testimit t\u00eb projektit. <\/b><b>T\u00eb kemi parasysh sa m\u00eb shum\u00eb potenciale konsumator\u00eb t\u00eb zgjidhjes son\u00eb q\u00eb n\u00eb fillim<\/b>, sepse pik\u00ebrisht nga kjo do t\u00eb varet m\u00eb n\u00eb fund struktura e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave.<\/p>\n<p><\/p>\n<p>Disa disa rrotulloni skem\u00ebn e marr\u00eb p\u00ebr t\u00eb par\u00eb mund\u00ebsit\u00eb e optimizimit. Identifikoni cilat fushat mund t\u00eb serializohen. Kuptoni cilat tabela shtes\u00eb duhet t\u00eb krijojm\u00eb p\u00ebr t\u00eb menaxhuar m\u00eb sakt\u00eb dhe optimalisht informacionin e nevojsh\u00ebm dhe p\u00ebr ta kthyer sipas k\u00ebrkes\u00ebs (p\u00ebr shembull, duke pranuar q\u00eb t\u00eb dh\u00ebna t\u00eb nj\u00ebjta mund t\u00eb ruhen n\u00eb tabela t\u00eb ndryshme, duke marr\u00eb parasysh ndarjen e ndryshme sipas kritereve t\u00eb ndryshme, mund t\u00eb kursejm\u00eb ndjesh\u00ebm koh\u00ebn e procesor\u00ebve gjat\u00eb k\u00ebrkesave p\u00ebr lexim).<\/p>\n<p><\/p>\n<p>Nuk \u00ebsht\u00eb keq <b>t\u00eb parashikohet menj\u00ebher\u00eb vendosja e TTL dhe pastrimi i t\u00eb dh\u00ebnave t\u00eb skaduara.<\/b><\/p>\n<p><\/p>\n<p>N\u00eb nxjerrjen e t\u00eb dh\u00ebnave nga Cassandra <b>logjika e aplikacionit duhet t\u00eb funksionoj\u00eb sipas parimit FETCH, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mos ngarkohen t\u00eb gjitha rreshtat n\u00eb memorie nj\u00ebher\u00ebsh, por t\u00eb zgjidhen n\u00eb grupe.<\/b><\/p>\n<p><\/p>\n<p>Preferohet para kalimit t\u00eb projektit n\u00eb solucionin p\u00ebrshkruar <b>t\u00eb kontrollohet q\u00ebndrueshm\u00ebria e sistemit duke kryer nj\u00eb seri testesh crash<\/b>, duket si humbje t\u00eb dh\u00ebnash n\u00eb nj\u00eb data center, rikuperimi i t\u00eb dh\u00ebnave t\u00eb d\u00ebmtuara p\u00ebr nj\u00eb periudh\u00eb t\u00eb caktuar, r\u00ebniet e rrjetit midis data center-ave. K\u00ebto teste jo vet\u00ebm q\u00eb do t\u00eb vler\u00ebsojn\u00eb p\u00ebrfitimet dhe disavantazhet e arkitektur\u00ebs s\u00eb propozuar, por gjithashtu do t\u00eb ofrojn\u00eb nj\u00eb praktik\u00eb t\u00eb mir\u00eb p\u00ebr inxhinier\u00ebt q\u00eb i realizojn\u00eb ato, dhe aft\u00ebsit\u00eb e fituara do t\u00eb jen\u00eb t\u00eb dobishme n\u00eb rast se ndodhin d\u00ebshtime n\u00eb sistem.<\/p>\n<p><\/p>\n<p>N\u00ebse po punojm\u00eb me informacion kritik (si t\u00eb dh\u00ebnat p\u00ebr faturimin, llogaritjen e borxhit t\u00eb abonentit), duhet gjithashtu t\u00eb kushtojm\u00eb v\u00ebmendje mjeteve q\u00eb do t\u00eb ndihmojn\u00eb t\u00eb reduktojm\u00eb rreziqet q\u00eb lindin p\u00ebr shkak t\u00eb ve\u00e7orive t\u00eb DBMS. P\u00ebr shembull, t\u00eb p\u00ebrdorim mjete si nodesync (Datastax), duke zhvilluar nj\u00eb strategji optimale p\u00ebr p\u00ebrdorimin e saj, q\u00eb <b>p\u00ebr konsistenc\u00ebn t\u00eb mos krijoj\u00eb ngarkes\u00eb t\u00eb tep\u00ebrt n\u00eb Cassandra<\/b> dhe ta p\u00ebrdorim at\u00eb vet\u00ebm p\u00ebr tabela t\u00eb caktuara n\u00eb nj\u00eb periudh\u00eb t\u00eb caktuar.<\/p>\n<p><\/p>\n<p>Pas m\u00eb shum\u00eb se gjasht\u00eb muaj me Kassandra? N\u00eb p\u00ebrgjith\u00ebsi, nuk ka probleme t\u00eb pazgjidhura. Nuk kemi pasur as aksidente serioze dhe as humbje t\u00eb t\u00eb dh\u00ebnave. Po, duhej t\u00eb mendohej p\u00ebr kompensimin e disa problemeve q\u00eb nuk ishin shfaqur m\u00eb par\u00eb, por p\u00ebrfundimisht kjo nuk e prishi shum\u00eb zgjidhjen ton\u00eb arkitektonike. N\u00ebse d\u00ebshironi dhe nuk keni frik\u00eb t\u00eb provoni di\u00e7ka t\u00eb re, dhe p\u00ebrve\u00e7 k\u00ebsaj nuk doni t\u00eb zhg\u00ebnjeheni shum\u00eb, p\u00ebrgatituni q\u00eb asgj\u00eb nuk vjen falas. Do t\u2019ju duhet t\u00eb shqyrtoni, t\u00eb ofroni dokumentacionin dhe t\u00eb krijoni gabimet tuaja individuale m\u00eb shum\u00eb se me zgjidhjet e lashta dhe asnj\u00eb teori nuk do t\u2019ju tregoj\u00eb paraprakisht se cilat gabime ju presin juve.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465333\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28210,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0433\u043b\u0430\u0437\u0430 \u041a\u0430\u0441\u0441\u0430\u043d\u0434\u0440\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0435\u0440\u0443 \u0432 NoSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Si siht shikojm\u00eb n\u00eb syt\u00eb e Kasandres dhe t\u00eb mos humbim t\u00eb dh\u00ebnat, stabilitetin dhe besimin n\u00eb NoSQL | ProHoster","description":"Thuhet se n\u00eb jet\u00eb gjith\u00e7ka duhet provuar t\u00eb pakt\u00ebn nj\u00eb her\u00eb. Dhe n\u00ebse jeni m\u00ebsuar t\u00eb punoni me DB relational, at\u00ebher\u00eb \u00ebsht\u00eb e vlefshme t\u00eb njiheni me NoSQL n\u00eb m\u00ebnyr\u00eb praktike s\u00eb pari, t\u00eb pakt\u00ebn p\u00ebr zhvillimin e p\u00ebrgjithsh\u00ebm. Tani, p\u00ebr shkak t\u00eb zhvillimit t\u00eb shpejt\u00eb t\u00eb k\u00ebsaj teknologjie, ka shum\u00eb opinione t\u00eb kund\u00ebrta dhe debate t\u00eb zjarrta mbi k\u00ebt\u00eb tem\u00eb, gj\u00eb q\u00eb ve\u00e7an\u00ebrisht e nxit interesin. N\u00ebse e shqyrtojm\u00eb","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0433\u043b\u0430\u0437\u0430 \u041a\u0430\u0441\u0441\u0430\u043d\u0434\u0440\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0435\u0440\u0443 \u0432 NoSQL | ProHoster","og:description":"\u0413\u043e\u0432\u043e\u0440\u044f\u0442, \u0432 \u0436\u0438\u0437\u043d\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437. \u0418 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0421\u0423\u0411\u0414, \u0442\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441 NoSQL \u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432 \u0441\u0438\u043b\u0443 \u0431\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0438\u0445 \u0441\u043f\u043e\u0440\u043e\u0432 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441. \u0415\u0441\u043b\u0438 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:27+00:00","article:modified_time":"2019-10-31T19:18:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37585","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:06:01","updated":"2026-01-23 18:29:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=37585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/37585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/28210"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=37585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=37585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=37585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}