{"id":36634,"date":"2019-10-31T22:12:47","date_gmt":"2019-10-31T19:12:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\/"},"modified":"2019-10-31T22:12:47","modified_gmt":"2019-10-31T19:12:47","slug":"globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","title":{"rendered":"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263791\/\"><img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/83b8e36bff66516e2c331d75d8434e13.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex> Veritabilele b\u00e2te de database - globale - sunt bine cunoscute de mult timp, dar p\u00e2n\u0103 acum pu\u021bini \u0219tiu s\u0103 le foloseasc\u0103 eficient sau nu le st\u0103p\u00e2nesc deloc ca pe o super-arm\u0103.<\/p>\n<p>Dac\u0103 folose\u0219ti globale pentru rezolvarea sarcinilor \u00een care sunt realmente eficiente, po\u021bi ob\u021bine rezultate remarcabile. Fie \u00een performan\u021b\u0103, fie \u00een simplificarea solu\u021biei problemelor (<noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.ru\/press\/2013\/gaia-mission-1yr-later.html\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/intersystems.ru\/cache\/technology\/techguide\/cache_tech-guide_01.html\">2<\/a><\/noindex>).<\/p>\n<p>Globalele sunt o metod\u0103 special\u0103 de stocare \u0219i procesare a datelor, complet diferit\u0103 de tabelele din SQL. Au ap\u0103rut \u00een 1966 \u00een limbajul <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MUMPS\">M(UMPS)<\/a><\/noindex> (evolu\u021bia - <noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.com\/our-products\/cache\/tech-guide\/chapter-3\/#cache-objectscript\">Cach\u00e9 ObjectScript<\/a><\/noindex>, sau COS) \u00een bazele de date medicale \u0219i sunt \u00eenc\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/VistA\">folosite activ<\/a><\/noindex>, dar au p\u0103truns \u0219i \u00een alte domenii, unde se cere fiabilitate \u0219i performan\u021b\u0103 ridicat\u0103: finan\u021be, trading etc.<\/p>\n<p>Globalele din sistemele moderne de gestionare a bazelor de date suport\u0103 tranzac\u021bii, jurnalizare, replicare, parti\u021bionare. Adic\u0103, pe ele se pot construi sisteme moderne, fiabile, distribuite \u0219i rapide.<\/p>\n<p>Globalele nu te limiteaz\u0103 la capcanele modelului rela\u021bional. Ele ofer\u0103 libertatea de a dezvolta structuri de date optimizate pentru sarcini specifice. Pentru multe aplica\u021bii, utilizarea ra\u021bional\u0103 a globalelor poate fi cu adev\u0103rat o arm\u0103 secret\u0103, oferind performan\u021ba la care dezvoltatorii de aplica\u021bii rela\u021bionale pot doar s\u0103 viseze.<\/p>\n<p>Globalele ca metod\u0103 de stocare a datelor pot fi utilizate \u00een multe limbaje moderne de programare, at\u00e2t de nivel \u00eenalt, c\u00e2t \u0219i de nivel jos. De aceea, \u00een acest articol m\u0103 voi concentra pe globale, nu pe limbajul din care au ap\u0103rut odat\u0103.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>2. Cum func\u021bioneaz\u0103 globale<\/h2>\n<p>\nHaide\u021bi mai \u00eent\u00e2i s\u0103 \u00een\u021belegem cum func\u021bioneaz\u0103 globale \u0219i care sunt punctele lor forte. Pute\u021bi privi globalele din diferite perspective. \u00cen aceast\u0103 parte a articolului, le vom privi ca pe ni\u0219te arbori. Sau ca pe depozite de date ierarhice.<\/p>\n<p>Pe scurt, o global\u0103 este un array persistent. Un array care se salveaz\u0103 automat pe disc.<br \/>\nEste greu de imaginat ceva mai simplu pentru stocarea datelor. \u00cen cod (\u00een limbajele COS\/M) se diferen\u021biaz\u0103 de un array asociativ obi\u0219nuit doar prin caracterul <b>^<\/b> dinaintea numelui.<\/p>\n<p>Pentru a salva date \u00een global\u0103, nu trebuie s\u0103 \u00eenve\u021bi limbajul de interogare SQL, comenzile pentru lucrul cu ele sunt foarte simple. Le po\u021bi \u00eenv\u0103\u021ba \u00eentr-o or\u0103. <\/p>\n<p>S\u0103 \u00eencepem cu cea mai simpl\u0103 exemplificare. Un arbore unilevel cu 2 ramuri. Exemplele sunt scrise \u00een COS.<\/p>\n<p><img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/5e1503716eac1eaadf49fcf3651e7fbf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Set ^a(\"+7926X\") = \"John Sidorov\"\nSet ^a(\"+7916Y\") = \"Sergey Smith\"<\/code><\/pre>\n<p><br clear=\"left\"\/><br \/>\nC\u00e2nd introduci informa\u021bii \u00een global (comanda Set), se \u00eent\u00e2mpl\u0103 automat 3 lucruri:<\/p>\n<ol>\n<li><b>Salvarea datelor pe disc.<\/b>\n<\/li>\n<li><b>Indexarea.<\/b> Ceea ce se afl\u0103 \u00eentre paranteze este cheia (\u00een literatura anglofon\u0103 \u2014 \u201esubscript\u201d), iar \u00een dreapta semnului egal \u2014 valoarea (\u201enode value\u201d).\n<\/li>\n<li><b>Sortarea.<\/b> Datele sunt sortate dup\u0103 cheie. Ulterior, \u00een timpul parcurgerii array-ului, primul element va fi \u201eSergey Smith\u201d, iar al doilea \u201eJohn Sidorov\u201d. Atunci c\u00e2nd se ob\u021bine lista de utilizatori din global, baza nu pierde timp la sortare. De asemenea, se poate solicita afi\u0219area unei liste sortate \u00eencep\u00e2nd de la orice cheie, chiar \u0219i una inexistent\u0103 (afi\u0219area va \u00eencepe de la prima cheie real\u0103 care urmeaz\u0103 cheii inexistente).\n<\/li>\n<\/ol>\n<p>\nToate aceste opera\u021biuni se desf\u0103\u0219oar\u0103 incredibil de repede. Pe computerul de acas\u0103, am ob\u021binut valori de p\u00e2n\u0103 la 750.000 inser\u021bii\/sec \u00eentr-un singur proces. Pe procesoarele multicore, valorile pot atinge <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/257501\/\">zeci de milioane<\/a><\/noindex> inser\u021bii\/sec.<\/p>\n<p>Desigur, viteza de inser\u021bie \u00een sine nu spune nimic. De exemplu, po\u021bi s\u0103 scrii foarte repede informa\u021biile \u00een fi\u0219iere text \u2014 a\u0219a <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/176345\/#comment_6220633\">se spune<\/a><\/noindex> c\u0103 func\u021bioneaz\u0103 procesarea Visa. Dar \u00een cazul globalelor, ob\u021binem un depozit structurat, indexat, cu care putem lucra simplu \u0219i rapid ulterior.<\/p>\n<p><img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/ce447c81cf3a7d570518711c7103dbf0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<ul>\n<li><b>Cea mai puternic\u0103 parte a globalelor este viteza de inser\u021bie a noilor noduri.<\/b>\n<\/li>\n<li><b>Datele din global sunt \u00eentotdeauna indexate. Parcurgerea lor, at\u00e2t pe un singur nivel, c\u00e2t \u0219i \u00een ad\u00e2ncimea arborelui, este \u00eentotdeauna rapid\u0103.<\/b><\/li>\n<\/ul>\n<p>\nS\u0103 ad\u0103ug\u0103m \u00een global \u00eenc\u0103 c\u00e2teva ramuri de nivelul doi \u0219i trei.<\/p>\n<pre><code class=\"bash\">Set ^a(\"+7926X\", \"city\") = \"Moscow\"\nSet ^a(\"+7926X\", \"city\", \"street\") = \"Req Square\"\nSet ^a(\"+7926X\", \"age\") = 25\nSet ^a(\"+7916Y\", \"city\") = \"London\"\nSet ^a(\"+7916Y\", \"city\", \"street\") = \"Baker Street\"\nSet ^a(\"+7916Y\", \"age\") = 36<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/47244a6d96b589ada53ba9f53b2b3a2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEste evident c\u0103 pe baza globalelor se pot construi arbori multilaterali. \u00cen plus, accesul la orice nod este practic instantaneu datorit\u0103 autoindex\u0103rii la inser\u021bie. \u0218i la orice nivel al arborelui, toate ramurile sunt sortate dup\u0103 cheie.<\/p>\n<p>Dup\u0103 cum se vede, informa\u021bia poate fi stocat\u0103 at\u00e2t \u00een cheie, c\u00e2t \u0219i \u00een valoare. Lungimea total\u0103 a cheii (suma lungimilor tuturor indicilor) poate atinge <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/ens20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GGBL_structure#GGBL_structure_maxsubscrlen\">511 octe\u021bi<\/a><\/noindex>, iar valoarea <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GORIENT_appx_limits_long_string\">3.6 MB<\/a><\/noindex> pentru Cach\u00e9. Num\u0103rul de niveluri \u00een arbore (num\u0103rul de dimensiuni) \u2014 31.<\/p>\n<p>Un alt aspect interesant. Po\u021bi construi un arbore f\u0103r\u0103 a stabili valorile nodurilor de nivel \u00eenalt.<\/p>\n<p><img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/f37f81a87a13adb13bbd3583dda06928.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Set ^b(\"a\", \"b\", \"c\", \"d\") = 1\nSet ^b(\"a\", \"b\", \"c\", \"e\") = 2\nSet ^b(\"a\", \"b\", \"f\", \"g\") = 3<\/code><\/pre>\n<p>\nCercul gol este un nod care nu are o valoare atribuit\u0103.<br clear=\"left\"\/><br \/>\nPentru a \u00een\u021belege mai bine globalele, s\u0103 le compar\u0103m cu alte tipuri de arbori: cu arborii de gr\u0103din\u0103 \u0219i cu arborii din sistemele de fi\u0219iere.<\/p>\n<p>S\u0103 compar\u0103m arborii din globale cu cele mai cunoscute structuri ierarhice: arborii normali, care cresc \u00een gr\u0103dini \u0219i pe c\u00e2mpuri, precum \u0219i cu sistemele de fi\u0219iere.<\/p>\n<p><img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/c6b00c70867c3eb2e2d8233e0fc6b6c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA\u0219a cum vedem la arborii de gr\u0103din\u0103, frunzele \u0219i fructele se afl\u0103 doar la capetele ramurilor.<br \/>\n\u00cen sistemele de fi\u0219iere, informa\u021bia este stocat\u0103 doar la capetele ramurilor, care sunt numele complete ale fi\u0219ierelor.<\/p>\n<p>Iat\u0103 structura datelor globale.<\/p>\n<p><img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/288a5d964b4bf859944c0a0ecd000bc7.jpg\" style=\"display:block;margin: 0 auto;\" \/>Diferen\u021bele:<\/p>\n<ol>\n<li><b>Noduri interne:<\/b> Informa\u021bia din global poate fi stocat\u0103 \u00een fiecare nod, nu doar la capetele ramurilor.<\/li>\n<li><b>Noduri externe:<\/b> \u00cen global, valorile trebuie definite la capetele ramurilor, \u00een timp ce \u00een arborii de FS \u0219i cei de gr\u0103din\u0103, nu este necesar.<\/li>\n<\/ol>\n<p><br clear=\"left\"\/><br \/>\n\u00cen ceea ce prive\u0219te unele noduri interne, se poate spune c\u0103 structura globalului este un superset al structurii arborilor de nume din sistemele de fi\u0219iere \u0219i arborii de gr\u0103din\u0103. Adic\u0103, este mai flexibil\u0103.<\/p>\n<p>\u00cen cazul general, globalul reprezint\u0103 <b>un arbore ordonat cu posibilitatea de a stoca date \u00een fiecare nod<\/b>.<\/p>\n<p>Pentru a \u00een\u021belege mai bine cum func\u021bioneaz\u0103 globalele, s\u0103 ne imagin\u0103m ce s-ar fi \u00eent\u00e2mplat dac\u0103 creatorii sistemelor de fi\u0219iere ar fi folosit o abordare similar\u0103 globalelor pentru stocarea informa\u021biei.<\/p>\n<ol>\n<li>C\u00e2nd se \u0219terge un singur fi\u0219ier \u00eentr-un director, directorul ar fi \u0219ters automat, precum \u0219i toate directoarele superioare care con\u021bin doar acel director recent \u0219ters.\n<\/li>\n<li>Necesarul de directoare ar disp\u0103rea. Ar exista doar fi\u0219iere cu subfi\u0219iere \u0219i fi\u0219iere f\u0103r\u0103 subfi\u0219iere. Dac\u0103 compar\u0103m cu un arbore normal, fiecare ramur\u0103 ar deveni un fruct.\n<p><img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/8e5e5681c191869da23c32da6e6d8d7b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\n<\/li>\n<li>Lucruri precum fi\u0219ierele README.txt ar putea disp\u0103rea. Tot ce trebuia spus despre con\u021binutul unui director ar putea fi scris \u00een fi\u0219ierul directorului. \u00cen spa\u021biul c\u0103ilor, numele fi\u0219ierelor nu este diferit de numele directorului, a\u0219a c\u0103 s-ar putea utiliza doar fi\u0219iere.\n<\/li>\n<li>Viteza de \u0219tergere a directorilor cu subdirectoare \u0219i fi\u0219iere ar cre\u0219te drastic. De multe ori, pe habra, au ap\u0103rut articole despre c\u00e2t de mult \u0219i greu este s\u0103 \u0219tergi milioane de fi\u0219iere mici (<noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/152193\/\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/157613\/\">2<\/a><\/noindex>). Cu toate acestea, dac\u0103 se creeaz\u0103 un sistem de pseudo-fi\u0219iere la nivel global, acest lucru va dura secunde sau frac\u021biuni de secund\u0103. C\u00e2nd am testat eliminarea sub-arborilor pe computerul meu de acas\u0103, am eliminat 96-341 milioane de noduri dintr-un arbore cu dou\u0103 niveluri pe HDD (nu SSD) \u00een 1 secund\u0103. Este vorba despre eliminarea unei p\u0103r\u021bi a arborelui, nu doar a \u00eentregului fi\u0219ier cu globale.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/7f700eeafb3e552923139024f38c6661.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Eliminarea sub-arborilor este o alt\u0103 capacitate puternic\u0103 a globalelor. Nu este nevoie de recursivitate pentru aceasta.<\/b> Aceasta se \u00eent\u00e2mpl\u0103 incredibil de repede.<\/p>\n<p>\u00cen arborele nostru, acest lucru s-ar putea face cu comanda <b>Kill<\/b>.<\/p>\n<pre><code class=\"bash\">Kill ^a(\"+7926X\")<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Globalele - s\u0103bii-\u021binut pentru stocarea datelor. Arbori. Partea 1\" src=\"\/wp-content\/uploads\/2019\/07\/89d5b69c6e80832c6865824782d9754d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPentru o mai bun\u0103 \u00een\u021belegere a ac\u021biunilor disponibile asupra globalelor, voi prezenta un tabel scurt.<\/p>\n<p>Comenzi principale \u0219i func\u021bii pentru lucrul cu globale \u00een COS<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cset\">Set<\/a><\/noindex><br \/>\nStabilirea ramurilor p\u00e2n\u0103 la nod (dac\u0103 nu sunt deja definite) \u0219i a valorii nodului<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cmerge\">Merge<\/a><\/noindex><br \/>\nCopierea sub-arborelui<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_ckill\">Kill<\/a><\/noindex><br \/>\nEliminarea sub-arborelui<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_czkill\">ZKill<\/a><\/noindex><br \/>\nEliminarea valorii unui nod specific. Sub-arborele care deriv\u0103 din nod nu este afectat<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fquery\">$Query<\/a><\/noindex><br \/>\nParcurgerea complet\u0103 a arborelui cu ad\u00e2ncire<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_forder\">$Order<\/a><\/noindex><br \/>\nParcurgerea ramurilor unui nod specific<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fdata\">$Data<\/a><\/noindex><br \/>\nVerificarea dac\u0103 nodul este definit<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fincrement\">$Increment<\/a><\/noindex><br \/>\nIncrementarea atomic\u0103 a valorii nodului. Pentru a nu efectua citiri \u0219i scrieri, pentru ACID. \u00cen ultima vreme, se recomand\u0103 s\u0103 se schimbe \u00een <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263793\/\">$Sequence<\/a><\/noindex><\/p>\n<p>V\u0103 mul\u021bumim pentru aten\u021bie, suntem gata s\u0103 r\u0103spundem la \u00eentreb\u0103rile dumneavoastr\u0103.<\/p>\n<p><b>Declinarea<\/b>: <i>Aceast\u0103 articol\u0103 \u0219i comentariile mele la aceasta reprezint\u0103 opinia mea \u0219i nu au leg\u0103tur\u0103 cu pozi\u021bia oficial\u0103 a corpora\u021biei InterSystems.<\/i><\/p>\n<p><i><b>Continuare<\/b> <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/264173\/\">Globale \u2014 s\u0103bii-sfoi pentru stocarea datelor. Arbori. Partea 2<\/a><\/noindex>. Ve\u021bi descoperi ce tipuri de date pot fi afi\u0219ate pe globale \u0219i \u00een ce sarcini acestea aduc cele mai mari beneficii.<\/i><br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/intersystems\/blog\/263791\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u043c\u0435\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u044d\u0442\u0438\u043c \u0441\u0443\u043f\u0435\u0440\u043e\u0440\u0443\u0436\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0442\u0435\u0445 \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041b\u0438\u0431\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0432 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (1, 2). \u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27434,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36634","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.2.1 - aioseo.com -->\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\/ro\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0435\u0440\u0435\u0432\u044c\u044f. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\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:12:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:47+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\udd47Globalele \u2014 s\u0103bii-\u00eent\u0103ritoare pentru stocarea datelor. Arbori. Partea 1 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0435\u0440\u0435\u0432\u044c\u044f. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","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:12:47+00:00","article:modified_time":"2019-10-31T19:12:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36634","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-22 04:13:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:41:52","updated":"2026-01-22 04:13:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/36634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=36634"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/36634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/27434"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=36634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=36634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=36634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}