{"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\/hu\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql","title":{"rendered":"Hogyan n\u00e9zz\u00fcnk Cassandra szem\u00e9be \u00e9s ne vesz\u00edts\u00fck el az adatainkat, a stabilit\u00e1st \u00e9s a hitet a NoSQL-ben","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Hogyan n\u00e9zz\u00fcnk Cassandra szem\u00e9be \u00e9s ne vesz\u00edts\u00fck el az adatainkat, a stabilit\u00e1st \u00e9s a hitet a NoSQL-ben\" src=\"\/wp-content\/uploads\/2019\/08\/4845d37a9928f888639c4ebeb7807787.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p>Azt mondj\u00e1k, hogy az \u00e9letben mindent meg kell pr\u00f3b\u00e1lni, legal\u00e1bb egyszer. Ha megszoktad a rel\u00e1ci\u00f3s adatb\u00e1zis-kezel\u0151 rendszerek haszn\u00e1lat\u00e1t, akkor \u00e9rdemes gyakorlatban megismerkedni a NoSQL-lal, m\u00e1r csak az \u00e1ltal\u00e1nos fejl\u0151d\u00e9s \u00e9rdek\u00e9ben is. Jelenleg, mivel ez a technol\u00f3gia gyors fejl\u0151d\u00e9sen megy kereszt\u00fcl, sok ellentmond\u00f3 v\u00e9lem\u00e9ny \u00e9s heves vita zajlik r\u00f3la, ami k\u00fcl\u00f6n\u00f6sen fokozza az \u00e9rdekl\u0151d\u00e9st.<br \/>\nHa m\u00e9lyebben belemer\u00fcl\u00fcnk a vit\u00e1k l\u00e9nyeg\u00e9be, l\u00e1thatjuk, hogy ezek a helytelen megk\u00f6zel\u00edt\u00e9sb\u0151l ad\u00f3dnak. Azok, akik a NoSQL adatb\u00e1zisokat pontosan ott haszn\u00e1lj\u00e1k, ahol sz\u00fcks\u00e9g van r\u00e1juk, el\u00e9gedettek \u00e9s \u00e9lvezik ennek a megold\u00e1snak az el\u0151nyeit. A k\u00eds\u00e9rletez\u0151k, akik ezt a technol\u00f3gi\u00e1t paneleciumk\u00e9nt haszn\u00e1lj\u00e1k oda, ahol az nem alkalmazhat\u00f3, csal\u00f3d\u00e1ssal tal\u00e1lkoznak, elvesz\u00edtve a rel\u00e1ci\u00f3s adatb\u00e1zisok er\u0151ss\u00e9geit an\u00e9lk\u00fcl, hogy jelent\u0151s el\u0151ny\u00f6kre tenn\u00e9nek szert.<\/p>\n<p><\/p>\n<p>Besz\u00e1molok a Cassandra adatb\u00e1zis-kezel\u0151 rendszeren alapul\u00f3 megold\u00e1sunk bevezet\u00e9s\u00e9nek tapasztalatair\u00f3l: mivel szembes\u00fclt\u00fcnk, hogyan oldottuk meg a neh\u00e9z helyzeteket, siker\u00fclt-e hasznot h\u00fazni a NoSQL haszn\u00e1lat\u00e1b\u00f3l, \u00e9s hol kellett tov\u00e1bbi er\u0151fesz\u00edt\u00e9seket\/befektet\u00e9seket eszk\u00f6z\u00f6ln\u00fcnk.<br \/>\nAz alapfeladat egy olyan rendszer ki\u00e9p\u00edt\u00e9se volt, amely r\u00f6gz\u00edti a h\u00edv\u00e1sokat egy adott t\u00e1rol\u00f3ban.<\/p>\n<p><\/p>\n<p>A rendszer m\u0171k\u00f6d\u00e9si elve a k\u00f6vetkez\u0151. Bemenetk\u00e9nt f\u00e1jlok \u00e9rkeznek egy meghat\u00e1rozott strukt\u00far\u00e1val, amely a h\u00edv\u00e1s strukt\u00far\u00e1j\u00e1t \u00edrja le. Ezut\u00e1n az alkalmaz\u00e1s biztos\u00edtja, hogy ez a strukt\u00fara a megfelel\u0151 oszlopokba ker\u00fclj\u00f6n ment\u00e9sre. A mentett h\u00edv\u00e1sokat ezut\u00e1n a forgalomfogyaszt\u00e1s megjelen\u00edt\u00e9s\u00e9re haszn\u00e1lj\u00e1k az el\u0151fizet\u0151k sz\u00e1m\u00e1ra (d\u00edjak, h\u00edv\u00e1sok, egyenleg t\u00f6rt\u00e9nelem).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Hogyan n\u00e9zz\u00fcnk Cassandra szem\u00e9be \u00e9s ne vesz\u00edts\u00fck el az adatainkat, a stabilit\u00e1st \u00e9s a hitet a NoSQL-ben\" src=\"\/wp-content\/uploads\/2019\/08\/c7b095dc8879011adb751c96427af512.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>A Cassandra v\u00e1laszt\u00e1s\u00e1nak oka vil\u00e1gos \u2013 mint a g\u00e9ppuska, gyorsan \u00edr, k\u00f6nnyen m\u00e9retezhet\u0151 \u00e9s hibabiztos.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Teh\u00e1t n\u00e9zz\u00fck, mit adott nek\u00fcnk a tapasztalat<\/h2>\n<p><\/p>\n<p>Igen, egy kiesett csom\u00f3pont nem trag\u00e9dia. Ez a Cassandra hibabiztoss\u00e1g\u00e1nak l\u00e9nyege. De <b>a csom\u00f3pont lehet akt\u00edv, mik\u00f6zben a teljes\u00edtm\u00e9nye cs\u00f6kkenhet.<\/b>Mint kider\u00fclt, ez azonnal visszat\u00fckr\u00f6z\u0151dik az eg\u00e9sz klaszter teljes\u00edtm\u00e9ny\u00e9ben.<\/p>\n<p><\/p>\n<p><b>A Cassandra nem ny\u00fajt v\u00e9delmet ott, ahol az Oracle a megszor\u00edt\u00e1saival seg\u00edtett.<\/b>Ha a fejleszt\u0151 nem \u00e9rtette ezt meg el\u0151re, akkor a Cassandra sz\u00e1m\u00e1ra be\u00e9rkez\u0151 duplik\u00e1tum \u00e9pp \u00fagy elfogadhat\u00f3, mint az eredeti. Ha meg\u00e9rkezett, akkor behelyezz\u00fck.<\/p>\n<p><\/p>\n<p>A \u201edo-it-yourself\u201d Cassandra nem tetszett a biztons\u00e1gi szakembereknek: <b>nincsenek napl\u00f3z\u00e1si lehet\u0151s\u00e9gek a felhaszn\u00e1l\u00f3i m\u0171veletekr\u0151l, a jogok elhat\u00e1rol\u00e1sa sem.<\/b>A h\u00edv\u00e1sokkal kapcsolatos inform\u00e1ci\u00f3k szem\u00e9lyes adatoknak min\u0151s\u00fclnek, ami azt jelenti, hogy minden ilyen adat lek\u00e9r\u00e9s\u00e9t\/megv\u00e1ltoztat\u00e1s\u00e1t napl\u00f3zni kell, lehet\u0151s\u00e9ggel a tov\u00e1bbi audit\u00e1l\u00e1sra. Tov\u00e1bb\u00e1, fel kell ismerni a sz\u00fcks\u00e9gess\u00e9get, hogy k\u00fcl\u00f6nb\u00f6z\u0151 szinteken kell elk\u00fcl\u00f6n\u00edteni a jogokat a k\u00fcl\u00f6nb\u00f6z\u0151 felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra. Egy egyszer\u0171 \u00fczemeltet\u00e9si m\u00e9rn\u00f6k \u00e9s egy szuperadmin, aki szabadon t\u00f6r\u00f6lheti az \u00f6sszes keyspace-t \u2013 ezek k\u00fcl\u00f6nb\u00f6z\u0151 szerepek, farkl\u0131 felel\u0151ss\u00e9g, tud\u00e1s. Ilyen jogelhat\u00e1rol\u00e1s n\u00e9lk\u00fcl az adatok \u00e9rt\u00e9ke \u00e9s integrit\u00e1sa gyorsan k\u00e9rd\u00e9sess\u00e9 v\u00e1lik, m\u00e9g az ANY konzisztencia szint mellett is. <\/p>\n<p><\/p>\n<p>Nem vett\u00fck figyelembe, hogy a h\u00edv\u00e1sok eset\u00e9ben komoly elemz\u00e9sre, valamint id\u0151szakos mintav\u00e9telekre van sz\u00fcks\u00e9g k\u00fcl\u00f6nb\u00f6z\u0151 felt\u00e9telek alapj\u00e1n. Mivel a kiv\u00e1lasztott feljegyz\u00e9seket k\u00e9s\u0151bb t\u00f6r\u00f6lni \u00e9s fel\u00fcl\u00edrni kell (a feladat keretein bel\u00fcl folyamatosan kell friss\u00edten\u00fcnk az adatokat, ha kezdetben helytelen\u00fcl \u00e9rkeztek hozz\u00e1nk az adatok), a Cassandra itt nem a bar\u00e1tunk. <b>A Cassandra olyan, mint egy malom \u2013 k\u00e9nyelmes beletenni, de bel\u0151le sz\u00e1m\u00edtani nem lehet.<\/b><\/p>\n<p><\/p>\n<p><b>Szembes\u00fclt\u00fcnk az adatok tesztk\u00f6rnyezetbe val\u00f3 \u00e1tvitel\u00e9nek probl\u00e9m\u00e1j\u00e1val.<\/b> (5 nod tesztel\u00e9skor a 20 ellen\u00e9ben a produkci\u00f3ban). Dumpot ilyen esetben nem lehet haszn\u00e1lni.<\/p>\n<p><\/p>\n<p>Az alkalmaz\u00e1s adatainak s\u00e9m\u00e1j\u00e1nak friss\u00edt\u00e9s\u00e9nek probl\u00e9m\u00e1ja, amely a Cassandr\u00e1ba \u00edr. <b>A vissza\u00e1ll\u00edt\u00e1s rengeteg s\u00edrk\u00f6vet gener\u00e1l, ami kisz\u00e1m\u00edthatatlan m\u00f3don cs\u00f6kkentheti a teljes\u00edtm\u00e9nyt.<\/b>A Cassandra optimaliz\u00e1lva van a \u00edr\u00e1sokra, \u00e9s miel\u0151tt \u00edr, nem gondol t\u00fal sokat. Minden l\u00e9tez\u0151 adattal kapcsolatos m\u0171velet n\u00e1la is \u00edr\u00e1s. Teh\u00e1t, ha t\u00f6r\u00f6l\u00fcnk felesleget, akkor csak m\u00e9g t\u00f6bb \u00edr\u00e1st gener\u00e1lunk, \u00e9s csak egy r\u00e9sz\u00fck lesz s\u00edrk\u00f6vekkel megjel\u00f6lve.<\/p>\n<p><\/p>\n<p>Id\u0151korl\u00e1tok az adatbeilleszt\u00e9s sor\u00e1n. A Cassandra az \u00edr\u00e1sok ter\u00e9n kiv\u00e1l\u00f3, de <b>id\u0151nk\u00e9nt a be\u00e9rkez\u0151 adatfolyam jelent\u0151sen meg tudja zavarni.<\/b>Ez akkor t\u00f6rt\u00e9nik, amikor az alkalmaz\u00e1s elkezdi k\u00f6rbej\u00e1rni azokat a feljegyz\u00e9seket, amelyeket valamilyen okb\u00f3l nem lehet beilleszteni. \u00c9s sz\u00fcks\u00e9g\u00fcnk lesz egy igazi DBA-ra, aki figyelemmel k\u00eds\u00e9ri a gc.log-ot, a system \u00e9s debug napl\u00f3kat a lass\u00fa lek\u00e9rdez\u00e9sek szempontj\u00e1b\u00f3l, a compaction pending metrik\u00e1kat.\n<\/p>\n<p><\/p>\n<p>T\u00f6bb adatk\u00f6zpont a klaszterben. <b>Hol olvassunk \u00e9s hova \u00edrjunk?<\/b> <br \/>\nLehets\u00e9ges az olvas\u00e1st \u00e9s \u00edr\u00e1st sz\u00e9tv\u00e1lasztani? Ha igen, akkor a k\u00f6zelben l\u00e9v\u0151 DC-nek \u00edr\u00e1sra vagy olvas\u00e1sra kell lennie? \u00c9s nem j\u00f6het l\u00e9tre n\u00e1lunk val\u00f3s split brain, ha rosszul v\u00e1lasztjuk meg a konzisztencia szintj\u00e9t? Sok a k\u00e9rd\u00e9s, sz\u00e1mos felfedezetlen be\u00e1ll\u00edt\u00e1s \u00e9s lehet\u0151s\u00e9g, amelyet olyan sz\u00edvesen kipr\u00f3b\u00e1ln\u00e1nk.\n<\/p>\n<p><\/p>\n<h2>Hogyan oldottuk meg<\/h2>\n<p><\/p>\n<p><b>Annak \u00e9rdek\u00e9ben, hogy a node ne teljes\u00edtm\u00e9nycs\u00f6kken\u00e9st szenvedjen, letiltottuk a SWAP-ot.<\/b>. Most, ha mem\u00f3riahi\u00e1ny l\u00e9p fel, a node-nek le kell \u00e1llnia, nem pedig nagy gc sz\u00fcneteket kell l\u00e9trehoznia.<\/p>\n<p><\/p>\n<p>Teh\u00e1t m\u00e1r nem b\u00edzhatunk a logik\u00e1ban az adatb\u00e1zisban. <b>Az alkalmaz\u00e1s fejleszt\u0151i \u00fajra k\u00e9pzik magukat, \u00e9s kezdik akt\u00edvan biztos\u00edtani a saj\u00e1t k\u00f3djukat.<\/b> T\u00f6k\u00e9letes, vil\u00e1gos sz\u00e9tv\u00e1laszt\u00e1s az adatok t\u00e1rol\u00e1sa \u00e9s feldolgoz\u00e1sa k\u00f6z\u00f6tt.<\/p>\n<p><\/p>\n<p><b>T\u00e1mogat\u00e1st v\u00e1s\u00e1roltunk a DataStax-t\u00f3l.<\/b> A dobozos Cassandra fejleszt\u00e9se m\u00e1r befejez\u0151d\u00f6tt (az utols\u00f3 commit 2018 febru\u00e1rj\u00e1ban t\u00f6rt\u00e9nt). Ugyanakkor a Datastax nagyszer\u0171 szolg\u00e1ltat\u00e1st \u00e9s sz\u00e1mos m\u00f3dos\u00edtott megold\u00e1st k\u00edn\u00e1l, amelyek alkalmazkodnak a megl\u00e9v\u0151 informatikai rendszerekhez.<\/p>\n<p><\/p>\n<p>M\u00e9g azt is meg szeretn\u00e9m jegyezni, hogy a Cassandra nem igaz\u00e1n k\u00e9nyelmes a lek\u00e9rdez\u00e9sekhez. Nyilv\u00e1nval\u00f3, hogy a CQL \u00f3ri\u00e1si l\u00e9p\u00e9s a felhaszn\u00e1l\u00f3k fel\u00e9 (a Trift-hez k\u00e9pest). De ha vannak oszt\u00e1lyok, amelyek hozz\u00e1szoktak a k\u00e9nyelmes joinokhoz, a szabad sz\u0171r\u00e9shez b\u00e1rmilyen mez\u0151n, \u00e9s a lek\u00e9rdez\u00e9s optimaliz\u00e1l\u00e1s\u00e1hoz, \u00e9s ezek az oszt\u00e1lyok azon dolgoznak, hogy kezelj\u00e9k a panaszokat \u00e9s a hib\u00e1kat, akkor a Cassandra alap\u00fa megold\u00e1s sz\u00e1mukra ellens\u00e9ges \u00e9s ostob\u00e1nak t\u0171nik. Kezdt\u00fck elgondolkodni, hogyan k\u00e9sz\u00edthetnek t\u00e1rsaink lek\u00e9rdez\u00e9seket. <\/p>\n<p><\/p>\n<p>K\u00e9t lehet\u0151s\u00e9get vizsg\u00e1ltunk. Az els\u0151 lehet\u0151s\u00e9g, hogy a h\u00edv\u00e1sokat nemcsak a C*-ben, hanem az arch\u00edv Oracle adatb\u00e1zisban is r\u00f6gz\u00edtj\u00fck. Csak ellent\u00e9tben a C*-vel, ebben az adatb\u00e1zisban a h\u00edv\u00e1sok csak a aktu\u00e1lis h\u00f3napra vonatkoznak (a h\u00edv\u00e1sok t\u00e1rol\u00e1si m\u00e9lys\u00e9ge elegend\u0151 a repacifik\u00e1l\u00e1si esetekhez). Itt azonnal felt\u0171nt egy k\u00f6vetkez\u0151 probl\u00e9ma: ha szinkron m\u00f3don \u00edrunk, akkor elvesz\u00edtj\u00fck az \u00f6sszes C*-hez kapcsol\u00f3d\u00f3 el\u0151nyt a gyors besz\u00far\u00e1s miatt, ha aszinkron, akkor nincs garancia arra, hogy minden sz\u00fcks\u00e9ges h\u00edv\u00e1s egy\u00e1ltal\u00e1n beker\u00fcl az Oracle-ba. Egy el\u0151ny viszont volt, ami jelent\u0151s: a megszokott PL\/SQL Developer marad a rendszer haszn\u00e1lat\u00e1nak, azaz gyakorlatilag megval\u00f3s\u00edthatjuk a \"Fas\u00e1d\" mint\u00e1t. Alternat\u00edv lehet\u0151s\u00e9g. Kialak\u00edtunk egy mechanizmust, ami a h\u00edv\u00e1sokat export\u00e1lja a C*-b\u0151l, adatokat h\u00faz a megfelel\u0151 Oracle t\u00e1bl\u00e1kb\u00f3l, csatlakoztatja a kapott kiv\u00e1laszt\u00e1sokat \u00e9s megadja az eredm\u00e9nyt, amit azt\u00e1n valahogy felhaszn\u00e1lunk (visszag\u00f6rd\u00edt\u00fcnk, \u00fajra ism\u00e9tl\u00fcnk, elemez\u00fcnk, csod\u00e1lkozunk). H\u00e1tr\u00e1nyok: a folyamat viszonylag sokl\u00e9pcs\u0151s, r\u00e1ad\u00e1sul hi\u00e1nyzik egy interf\u00e9sz az \u00fczemeltet\u00e9si munkat\u00e1rsak sz\u00e1m\u00e1ra.<\/p>\n<p><\/p>\n<p>A v\u00e9g\u00e9n m\u00e9gis a m\u00e1sodik lehet\u0151s\u00e9g mellett d\u00f6nt\u00f6tt\u00fcnk. <b>Az elt\u00e9r\u0151 bankokb\u00f3l sz\u00e1rmaz\u00f3 kiv\u00e1laszt\u00e1sokhoz Apache Sparkot haszn\u00e1ltunk.<\/b> A mechanizmus l\u00e9nyege egy Java-k\u00f3dra reduk\u00e1l\u00f3dott, amely a megadott kulcsok (el\u0151fizet\u0151, a h\u00edv\u00e1s id\u0151pontja \u2013 az alr\u00e9sz kulcsai) alapj\u00e1n adatokat vonszol a C*-b\u0151l, valamint a d\u00fas\u00edt\u00e1shoz sz\u00fcks\u00e9ges adatokat b\u00e1rmely m\u00e1s adatb\u00e1zisb\u00f3l. Ezt k\u00f6vet\u0151en csatlakoztatja \u0151ket a saj\u00e1t mem\u00f3ri\u00e1j\u00e1ban, \u00e9s az eredm\u00e9nyt a v\u00e9gs\u0151 t\u00e1bl\u00e1ba adja ki. A Sparkn\u00e1l elk\u00e9sz\u00edtett\u00fck a webes fel\u00fcletet, ami teljesen haszn\u00e1lhat\u00f3 lett az \u00fczemeltet\u00e9s szempontj\u00e1b\u00f3l.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Hogyan n\u00e9zz\u00fcnk Cassandra szem\u00e9be \u00e9s ne vesz\u00edts\u00fck el az adatainkat, a stabilit\u00e1st \u00e9s a hitet a NoSQL-ben\" src=\"\/wp-content\/uploads\/2019\/08\/5754363569f159dd7b86972bb0cef732.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Az adatok friss\u00edt\u00e9s\u00e9vel kapcsolatos feladat megold\u00e1sa sor\u00e1n a prom-teszt t\u00f6bb megold\u00e1st is figyelembe vett. Mind a Sstloader \u00e1tkonvert\u00e1l\u00e1s, mind a teszt z\u00f3n\u00e1ra k\u00e9t r\u00e9szre bontott klaszter alternat\u00edv\u00e1ja sz\u00f3ba ker\u00fclt, amelyek felv\u00e1ltva kapcsol\u00f3dnak a prom klaszterhez, \u00edgy t\u00e1pell\u00e1t\u00e1st ny\u00fajtanak. A teszt friss\u00edt\u00e9sekor tervezett volt, hogy felcser\u00e9lj\u00fck \u0151ket: az a r\u00e9sz, amelyik a tesztben m\u0171k\u00f6d\u00f6tt, t\u00f6rl\u00e9sre ker\u00fclt, \u00e9s bevezet\u00e9sre ker\u00fclt a promba, m\u00edg a m\u00e1sik k\u00fcl\u00f6n dolgozik az adatokkal. Azonban \u00fajragondolva a helyzetet \u00e9sszer\u0171bben \u00e9rt\u00e9kelt\u00fck a migr\u00e1land\u00f3 adatokat, \u00e9s r\u00e1j\u00f6tt\u00fcnk, hogy maguk a h\u00edv\u00e1sok \u2013 egy k\u00f6vetkezetlen entit\u00e1s a tesztekhez, amely sz\u00fcks\u00e9g eset\u00e9n gyorsan gener\u00e1lhat\u00f3, \u00e9s a prom adathalmaza \u00f6n\u00e1ll\u00f3an nem \u00e9rt\u00e9kes a tesztre val\u00f3 \u00e1tvitelhez. Van n\u00e9h\u00e1ny \u00f6sszegy\u0171jt\u0151 objektum, amelyet \u00e9rdemes \u00e1tkonvert\u00e1lni, de ez mind\u00f6ssze n\u00e9h\u00e1ny t\u00e1bla, amelyek nem t\u00fal nehezek. Teh\u00e1t sz\u00e1munkra <b>mint megold\u00e1s \u00fajra a Spark seg\u00edtett, amelynek seg\u00edts\u00e9g\u00e9vel \u00edrtunk \u00e9s akt\u00edvan haszn\u00e1ltunk egy adat\u00e1tviteli szkriptet a prom \u00e9s a teszt t\u00e1bl\u00e1i k\u00f6z\u00f6tt.<\/b><\/p>\n<p><\/p>\n<p><b>Jelenlegi telep\u00edt\u00e9si politik\u00e1nk lehet\u0151v\u00e9 teszi sz\u00e1munkra a visszagombol\u00e1s n\u00e9lk\u00fcli munk\u00e1t.<\/b> A prom el\u0151tt k\u00f6telez\u0151 tesztelni, ahol a hiba nem olyan dr\u00e1ga. Sikertelens\u00e9g eset\u00e9n mindig t\u00f6r\u00f6lhetj\u00fck a namespace-t \u00e9s \u00fajra telep\u00edthetj\u00fck az eg\u00e9sz s\u00e9m\u00e1t az elej\u00e9r\u0151l.<\/p>\n<p><\/p>\n<p>A Cassandra folyamatos el\u00e9rhet\u0151s\u00e9g\u00e9nek biztos\u00edt\u00e1s\u00e1hoz DBA sz\u00fcks\u00e9ges, \u00e9s nem csak \u0151. <b>Mindenkinek, aki az alkalmaz\u00e1ssal dolgozik, meg kell \u00e9rtenie, hogy hol \u00e9s hogyan ellen\u0151rizheti az aktu\u00e1lis helyzetet, valamint hogyan diagnosztiz\u00e1lhatja a probl\u00e9m\u00e1kat id\u0151ben.<\/b> Ehhez akt\u00edvan haszn\u00e1ljuk a DataStax OpsCentert (munkaterhel\u00e9sek adminisztr\u00e1ci\u00f3ja \u00e9s monitoroz\u00e1sa), a Cassandra Driver rendszeres teljes\u00edtm\u00e9nymutat\u00f3it (\u00edr\u00e1si timeoutok sz\u00e1ma a C*-ben, olvas\u00e1si timeoutok sz\u00e1ma a C*-b\u0151l, maxim\u00e1lis k\u00e9sleltet\u00e9s stb.), figyelj\u00fck az alkalmaz\u00e1s m\u0171k\u00f6d\u00e9s\u00e9t, amely a Cassandr\u00e1t haszn\u00e1lja.\n<\/p>\n<p><\/p>\n<p>Amikor a kor\u00e1bbi k\u00e9rd\u00e9sen gondolkodtunk, r\u00e1j\u00f6tt\u00fcnk, hol lehet a legf\u0151bb kock\u00e1zat. Ez a megjelen\u00edt\u00e9si form\u00e1k, amelyek adatokkal l\u00e1tj\u00e1k el azokat a f\u00fcggetlen lek\u00e9rdez\u00e9seket a t\u00e1rol\u00f3ra. \u00cdgy meglehet\u0151sen inkonzisztens inform\u00e1ci\u00f3kat kaphatunk. De ez a probl\u00e9ma akkor is relev\u00e1ns lenne, ha csak egy adatk\u00f6zponttal dolgozn\u00e1nk. Teh\u00e1t a leg\u00e9rtelmesebb itt term\u00e9szetesen egy k\u00fcls\u0151 alkalmaz\u00e1sbeli batch adatlek\u00e9rdez\u0151 funkci\u00f3 l\u00e9trehoz\u00e1sa, amely biztos\u00edtja az adatok beszerz\u00e9s\u00e9t egy egys\u00e9ges id\u0151szakban. Ami a teljes\u00edtm\u00e9ny szempontj\u00e1b\u00f3l az olvas\u00e1s \u00e9s \u00edr\u00e1s sz\u00e9tv\u00e1laszt\u00e1s\u00e1t illeti, itt egy kock\u00e1zat meg\u00e1ll\u00edtott minket, miszerint a kapcsolat esetleges elveszt\u00e9se eset\u00e9n a DC-k k\u00f6z\u00f6tt k\u00e9t teljesen inkonzisztens klasztert kaphatunk.<\/p>\n<p><\/p>\n<p>Ennek eredm\u00e9nyek\u00e9nt jelenleg <b>az EACH_QUORUM \u00edr\u00e1si konzisztencia szintet \u00e9s a LOCAL_QUORUM olvas\u00e1si szintet v\u00e1lasztottuk.<\/b><\/p>\n<p><\/p>\n<h2>R\u00f6vid benyom\u00e1sok \u00e9s k\u00f6vetkeztet\u00e9sek<\/h2>\n<p><\/p>\n<p>Annak \u00e9rdek\u00e9ben, hogy \u00e9rt\u00e9kelj\u00fck a kapott megold\u00e1st az operat\u00edv t\u00e1mogat\u00e1s \u00e9s a j\u00f6v\u0151beli fejl\u0151d\u00e9s szempontj\u00e1b\u00f3l, \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy megfontoljuk, hol lehet m\u00e9g alkalmazni egy ilyen fejleszt\u00e9st.<\/p>\n<p><\/p>\n<p>Ha hirtelen kellene mondani, akkor az adatok \u00e9rt\u00e9kel\u00e9se az olyan programok sz\u00e1m\u00e1ra, mint a \"Fizess, amikor k\u00e9nyelmes\" (inform\u00e1ci\u00f3t t\u00f6lt\u00fcnk a C*-ba, sz\u00e1m\u00edt\u00e1s a Spark scriptek alapj\u00e1n), a panaszok nyilv\u00e1ntart\u00e1sa ir\u00e1nyonk\u00e9nti aggreg\u00e1l\u00e1ssal, valamint a szerepek t\u00e1rol\u00e1sa \u00e9s a jogosults\u00e1gok sz\u00e1m\u00edt\u00e1sa a szerepm\u00e1trix szerint. <\/p>\n<p><\/p>\n<p>Ahogy l\u00e1tjuk, a reperto\u00e1r sz\u00e9les \u00e9s sokf\u00e9le. \u00c9s ha v\u00e1lasztani kell a NoSQL t\u00e1mogat\u00f3i\/ellenz\u0151i k\u00f6z\u00f6tt, akkor mi a t\u00e1mogat\u00f3khoz csatlakozunk, mivel megkaptuk a saj\u00e1t el\u0151nyeinket, pontosan ott, ahol v\u00e1rtuk.<\/p>\n<p><\/p>\n<p>M\u00e9g a Cassandra dobozb\u00f3l val\u00f3 v\u00e1ltozata is lehet\u0151v\u00e9 teszi a v\u00edzszintes sk\u00e1l\u00e1z\u00e1st val\u00f3s id\u0151ben, teljesen f\u00e1jdalommentesen megoldva az adatok n\u00f6vel\u00e9s\u00e9nek k\u00e9rd\u00e9s\u00e9t a rendszerben. Siker\u00fclt egy k\u00fcl\u00f6n keretbe kiemelni egy nagyon magas terhel\u00e9s\u0171 aggreg\u00e1l\u00e1si mechanizmust a h\u00edv\u00e1sok sz\u00e1m\u00e1ra, valamint sz\u00e9tv\u00e1lasztani az alkalmaz\u00e1s s\u00e9m\u00e1j\u00e1t \u00e9s logik\u00e1j\u00e1t, megszabadulva a szem\u00e9lyre szabott munk\u00e1k \u00e9s objektumok \u00edr\u00e1s\u00e1nak hib\u00e1s gyakorlat\u00e1t\u00f3l az adatb\u00e1zisban. Lehet\u0151s\u00e9get kaptunk arra, hogy v\u00e1lasszunk \u00e9s be\u00e1ll\u00edtsunk, hogy mely DC-ken v\u00e9gezz\u00fck a sz\u00e1m\u00edt\u00e1st, \u00e9s melyeken az adatok \u00edr\u00e1s\u00e1t, biztos\u00edtva magunkat a k\u00fcl\u00f6nb\u00f6z\u0151 csom\u00f3pontok, valamint az eg\u00e9sz DC-es\u00e9sek eset\u00e9n.<\/p>\n<p><\/p>\n<p>\u00daj projektekhez alkalmazva az architekt\u00far\u00e1nkat, l\u00e9v\u00e9n m\u00e1r van n\u00e9mi tapasztalatunk, szeretn\u00e9nk azonnal figyelembe venni a fent eml\u00edtett \u00e1rnyalatokat, \u00e9s elker\u00fclni bizonyos hib\u00e1kat, hogy sim\u00e1bb\u00e1 tegy\u00fck azokat a neh\u00e9zs\u00e9geket, amelyeket kezdetben nem tudtunk elker\u00fclni.<\/p>\n<p><\/p>\n<p>P\u00e9ld\u00e1ul, <b>id\u0151ben k\u00f6vetni a Cassandra legfrissebb friss\u00edt\u00e9seit<\/b>, mert sok olyan probl\u00e9ma, amit kaptunk, m\u00e1r ismeretes volt \u00e9s jav\u00edtott\u00e1k \u0151ket.<\/p>\n<p><\/p>\n<p><b>Ne \u00fcltess\u00fck a DB-t \u00e9s a Spark-ot ugyanazokra a node-okra<\/b> (vagy szigor\u00faan k\u00fcl\u00f6n v\u00e1lasszuk meg a felhaszn\u00e1lhat\u00f3 er\u0151forr\u00e1sok mennyis\u00e9ge szerint), mivel a Spark t\u00f6bb mem\u00f3ri\u00e1t is felhaszn\u00e1lhat, mint amennyi megengedett, \u00e9s gyorsan el\u00e9rhetj\u00fck a probl\u00e9m\u00e1t a list\u00e1nk els\u0151 hely\u00e9n.<\/p>\n<p><\/p>\n<p><b>Fejlessz\u00fck a monitoroz\u00e1st \u00e9s az \u00fczemeltet\u00e9si kompetenci\u00e1t m\u00e1r a projekt tesztel\u00e9si f\u00e1zis\u00e1ban. <\/b><b>Kevesebb potenci\u00e1lis felhaszn\u00e1l\u00f3nkat sz\u00e1m\u00edtsuk be kezdetben a lehet\u0151 legjobban<\/b>, mert ennek v\u00e9geredm\u00e9nye a DB szerkezet\u00e9n fog m\u00falni.<\/p>\n<p><\/p>\n<p>T\u00f6bbsz\u00f6r is vizsg\u00e1ljuk meg a l\u00e9trej\u00f6tt s\u00e9ma optimaliz\u00e1l\u00e1s\u00e1nak lehet\u0151s\u00e9geit. Ki kell emelni, hogy mely mez\u0151ket lehet soros\u00edtani. Meg kell \u00e9rten\u00fcnk, hogy milyen tov\u00e1bbi t\u00e1bl\u00e1kat kell l\u00e9trehoznunk, hogy a lehet\u0151 legpontosabban \u00e9s optim\u00e1lisan figyelembe vegy\u00fck, majd a k\u00e9r\u00e9sre megadjuk a sz\u00fcks\u00e9ges inform\u00e1ci\u00f3t (p\u00e9ld\u00e1ul figyelembe v\u00e9ve, hogy ugyanazokat az adatokat k\u00fcl\u00f6nb\u00f6z\u0151 t\u00e1bl\u00e1kban t\u00e1rolhatjuk, k\u00fcl\u00f6nb\u00f6z\u0151 krit\u00e9riumok alapj\u00e1n, jelent\u0151sen cs\u00f6kkenthetj\u00fck a processzorid\u0151t a lek\u00e9rdez\u00e9sek sor\u00e1n).<\/p>\n<p><\/p>\n<p>Nem rossz <b>azonnal tervezz\u00fcnk TTL-t \u00e9s a r\u00e9gi adatok t\u00f6rl\u00e9s\u00e9t.<\/b><\/p>\n<p><\/p>\n<p>Adatok kiad\u00e1sakor a Cassandr\u00e1t\u00f3l <b>az alkalmaz\u00e1s logik\u00e1j\u00e1nak FETCH elv szerint kell m\u0171k\u00f6dnie, hogy ne minden sort t\u00f6lts\u00fcnk be egyszerre a mem\u00f3ri\u00e1ba, hanem r\u00e9szletekben v\u00e1lasszunk ki.<\/b><\/p>\n<p><\/p>\n<p>Ide\u00e1lis lenne a projekt \u00e1t\u00fcltet\u00e9se el\u0151tt az ismertetett megold\u00e1sba <b>ellen\u0151rizni a rendszer megb\u00edzhat\u00f3s\u00e1g\u00e1t, sorozatos stresszteszteket v\u00e9gezve<\/b>, p\u00e9ld\u00e1ul adatveszt\u00e9s egy adatk\u00f6zpontban, a megs\u00e9r\u00fclt adatok helyre\u00e1ll\u00edt\u00e1sa egy adott id\u0151szakban, h\u00e1l\u00f3zati probl\u00e9m\u00e1k az adatk\u00f6zpontok k\u00f6z\u00f6tt. Az ilyen tesztek nemcsak azt fogj\u00e1k lehet\u0151v\u00e9 tenni, hogy \u00e9rt\u00e9kelj\u00fck az aj\u00e1nlott architekt\u00fara el\u0151nyeit \u00e9s h\u00e1tr\u00e1nyait, hanem j\u00f3 bemeleg\u00edt\u0151 gyakorlatot is adnak az azt v\u00e9gz\u0151 m\u00e9rn\u00f6k\u00f6knek, \u00e9s az \u00edgy megszerzett k\u00e9szs\u00e9g messze nem lesz felesleges, ha a rendszerek hib\u00e1i megism\u00e9tl\u0151dnek a gyakorlatban.<\/p>\n<p><\/p>\n<p>Ha kritikus inform\u00e1ci\u00f3val dolgozunk (p\u00e9ld\u00e1ul a sz\u00e1ml\u00e1z\u00e1shoz sz\u00fcks\u00e9ges adatok, a felhaszn\u00e1l\u00f3i tartoz\u00e1sok kisz\u00e1m\u00edt\u00e1sa), \u00e9rdemes figyelmet ford\u00edtani olyan eszk\u00f6z\u00f6kre is, amelyek cs\u00f6kkenthetik az adatb\u00e1zis-kezel\u0151 rendszer saj\u00e1toss\u00e1gaib\u00f3l fakad\u00f3 kock\u00e1zatokat. P\u00e9ld\u00e1ul haszn\u00e1lhatjuk a nodesync (Datastax) seg\u00e9dprogramot, ha optimaliz\u00e1ljuk a haszn\u00e1lati strat\u00e9gi\u00e1nkat, hogy <b>a konzisztencia \u00e9rdek\u00e9ben ne gener\u00e1ljunk felesleges terhel\u00e9st a Cassandr\u00e1n<\/b> \u00e9s csak bizonyos t\u00e1bl\u00e1khoz haszn\u00e1ljuk egy adott id\u0151szakban.<\/p>\n<p><\/p>\n<p>Mi a helyzet hat h\u00f3nap haszn\u00e1lat ut\u00e1n a Cassandraval? \u00d6sszess\u00e9g\u00e9ben nincs megoldatlan probl\u00e9ma. Komoly balesetek \u00e9s adatveszt\u00e9s sem t\u00f6rt\u00e9nt. Igen, voltak olyan probl\u00e9m\u00e1k, amelyek eddig nem jelentkeztek, \u00e9s ezeket kompenz\u00e1lni kellett, de v\u00e9g\u00fcl ez nem befoly\u00e1solta jelent\u0151sen az architektur\u00e1lis d\u00f6nt\u00e9s\u00fcnket. Ha nyitott vagy \u00faj dolgok kipr\u00f3b\u00e1l\u00e1s\u00e1ra, \u00e9s nem szeretn\u00e9l csal\u00f3dni, k\u00e9sz\u00fclj fel arra, hogy ingyen semmi sincs. Sokat kell majd tanulm\u00e1nyoznod, belemer\u00fcln\u00f6d a dokument\u00e1ci\u00f3ba, \u00e9s t\u00f6bb saj\u00e1t hib\u00e1ba \u00fctk\u00f6zn\u00f6d, mint a r\u00e9gi \u00f6r\u00f6k\u00f6lt megold\u00e1sban, \u00e9s semmilyen elm\u00e9let nem \u00e1rulja el el\u0151re, hogy pontosan milyen probl\u00e9m\u00e1k v\u00e1rnak r\u00e1d.<\/p>\n<p>Forr\u00e1s: <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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\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\/hu\/blog\/administrirovanie\/kak-zaglyanut-v-glaza-kassandre-i-ne-poteryat-pri-etom-dannye-stabilnost-i-veru-v-nosql\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/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\udd47Hogyan n\u00e9zhet\u00fcnk szembe a Cassandraval an\u00e9lk\u00fcl, hogy adatokat, stabilit\u00e1st \u00e9s a NoSQL-ba vetett hit\u00fcnket elvesz\u00edten\u00e9nk | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/hu\/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":"hu_HU","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":".","og:url":"https:\/\/prohoster.info\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/37585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=37585"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/28210"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=37585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=37585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=37585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}