{"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\/da\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","title":{"rendered":"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 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=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/83b8e36bff66516e2c331d75d8434e13.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex> Rigtige databasekl\u00e6be-sv\u00e6rd \u2014 globaler \u2014 har l\u00e6nge v\u00e6ret kendt, men stadig f\u00e5 form\u00e5r effektivt at bruge dem eller overhovedet ejer dette superv\u00e5ben.<\/p>\n<p>Hvis man bruger globaler til at l\u00f8se de opgaver, som de virkelig er gode til, kan man opn\u00e5 fremragende resultater. Enten i ydeevne eller i forenkling af l\u00f8sning af opgaven (<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>Globaler er en speciel m\u00e5de at gemme og behandle data p\u00e5, helt anderledes end-tabeller i SQL. De blev introduceret i 1966 i sproget <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MUMPS\">M(UMPS)<\/a><\/noindex> (evolution\u00e6rt udviklet \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.com\/our-products\/cache\/tech-guide\/chapter-3\/#cache-objectscript\">Cach\u00e9 ObjectScript<\/a><\/noindex>, ogs\u00e5 kaldet COS) i medicinske databaser og anvendes stadig aktivt der. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/VistA\">De er ogs\u00e5 tr\u00e6ngt ind i nogle andre omr\u00e5der, hvor der kr\u00e6ves p\u00e5lidelighed og h\u00f8j ydeevne: finansiering, handel mv.<\/a><\/noindex>Globaler i moderne DBMS underst\u00f8tter transaktioner, logning, replikation og partitionering. Det vil sige, at man kan bygge moderne, p\u00e5lidelige, distribuerede og hurtige systemer p\u00e5 dem.<\/p>\n<p>Globaler begr\u00e6nser ikke dig til rammerne af den relationelle model. De giver frihed til at udvikle datakonstruktioner, der er optimeret til specifikke opgaver. For mange applikationer kan en fornuftig brug af globaler v\u00e6re virkelig et hemmeligt v\u00e5ben, der sikrer en ydeevne, som udviklere af relationelle applikationer kun kan dr\u00f8mme om.<\/p>\n<p>Globaler som datalagringsmetode kan bruges i mange moderne programmeringssprog, b\u00e5de h\u00f8j- og lavniveau. Derfor vil jeg i denne artikel fokusere specifikt p\u00e5 globaler og ikke p\u00e5 det sprog, de engang stammer fra.<\/p>\n<p>2. Hvordan fungerer globaler<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Lad os f\u00f8rst forst\u00e5, hvordan globaler fungerer, og hvad deres styrker er. Man kan se p\u00e5 globaler fra forskellige vinkler. I denne del af artiklen ser vi dem som tr\u00e6er. Eller som hierarkiske datalagre.<\/h2>\n<p>\nForenklet sagt er en global en vedholdende array. En array, der automatisk gemmes p\u00e5 disk.<\/p>\n<p>Det er sv\u00e6rt at forestille sig noget mere enkelt til datalagring. I kode (p\u00e5 COS\/M-sprog) adskiller det sig fra et almindeligt associativt array kun med symbolet<br \/>\nforan navnet. <b>^<\/b> For at gemme data i en global er det ikke n\u00f8dvendigt at l\u00e6re SQL-foresp\u00f8rgselssproget, kommandoerne til at arbejde med dem er meget enkle. Man kan l\u00e6re dem p\u00e5 en time.<\/p>\n<p>For at gemme data i globalen beh\u00f8ver man ikke at l\u00e6re SQL-sp\u00f8rgsm\u00e5lssproget, da kommandoerne til at arbejde med dem er meget enkle. Man kan l\u00e6re dem p\u00e5 en time. <\/p>\n<p>Lad os starte med det enkleste eksempel. Et en-niveau tr\u00e6 med 2 grene. Eksempler er skrevet i COS.<\/p>\n<p><img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 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 \/>\nN\u00e5r man inds\u00e6tter information i globalen (kommando Set) sker der automatisk 3 ting:<\/p>\n<ol>\n<li><b>Gemmer data p\u00e5 disken.<\/b>\n<\/li>\n<li><b>Indeksering.<\/b> Det, der er i parentes, fungerer som en n\u00f8gle (i den engelsksprogede litteratur kaldet \u00absubscript\u00bb), og til h\u00f8jre for lighedstegnet er v\u00e6rdien (\u00abnode value\u00bb).\n<\/li>\n<li><b>Sortering.<\/b> Dataene sorteres efter n\u00f8gle. Ved traversal af arrayet bliver det f\u00f8rste element \u00abSergey Smith\u00bb og det andet \u00abJohn Sidorov\u00bb. N\u00e5r liste over brugere hentes fra globalen, bruger databasen ikke tid p\u00e5 sortering. Desuden kan man anmode om en udskrift af den sorterede liste, der starter med en hvilken som helst n\u00f8gle, selv en ikke-eksisterende (udskriften starter med den f\u00f8rste reelle n\u00f8gle, der f\u00f8lger efter den ikke-eksisterende).\n<\/li>\n<\/ol>\n<p>\nAlle disse operationer sker utrolig hurtigt. P\u00e5 min hjemmecomputer opn\u00e5ede jeg v\u00e6rdier op til 750.000 inds\u00e6tninger\/s i \u00e9n proces. P\u00e5 flerkernede processorer kan v\u00e6rdierne n\u00e5 <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/257501\/\">tusinder af millioner<\/a><\/noindex> inds\u00e6tninger\/s.<\/p>\n<p>Selvf\u00f8lgelig siger inds\u00e6tningshastigheden ikke meget i sig selv. Man kan for eksempel hurtigt skrive information til tekstfiler \u2014 s\u00e5dan <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/176345\/#comment_6220633\">siger rygterne<\/a><\/noindex> at Visa-processering fungerer. Men i tilf\u00e6lde af globale f\u00e5r vi en struktureret, indekseret lager, som man efterf\u00f8lgende kan arbejde med let og hurtigt.<\/p>\n<p><img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/ce447c81cf3a7d570518711c7103dbf0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<ul>\n<li><b>Den st\u00f8rste styrke ved globale er hastigheden af nye nodes inds\u00e6ttelse.<\/b>\n<\/li>\n<li><b>Data i globalen er altid indekserede. Deres traversal, b\u00e5de p\u00e5 \u00e9t niveau og dybt i tr\u00e6et, er altid hurtig.<\/b><\/li>\n<\/ul>\n<p>\nLad os tilf\u00f8je et par grene p\u00e5 andet og tredje niveau til globalen.<\/p>\n<pre><code class=\"bash\">Set ^a(\"+7926X\", \"city\") = \"Moskva\"\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=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/47244a6d96b589ada53ba9f53b2b3a2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet er tydeligt, at man kan bygge flerniveaus tr\u00e6er baseret p\u00e5 globala. Desuden er adgangen til enhver node n\u00e6sten \u00f8jeblikkelig p\u00e5 grund af autoindeksering under inds\u00e6ttelse. Og p\u00e5 ethvert niveau i tr\u00e6et er alle grene sorteret efter n\u00f8gle.<\/p>\n<p>Som man kan se, kan information gemmes b\u00e5de i n\u00f8glen og v\u00e6rdien. Den samlede l\u00e6ngde af n\u00f8glen (summen af l\u00e6ngderne af alle indekser) kan n\u00e5 <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/ens20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GGBL_structure#GGBL_structure_maxsubscrlen\">511 byte<\/a><\/noindex>, mens v\u00e6rdierne <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> for Cach\u00e9. Antallet af niveauer i tr\u00e6et (antal dimensioner) er 31.<\/p>\n<p>En anden interessant detalje. Man kan bygge et tr\u00e6 uden at angive v\u00e6rdierne for noderne p\u00e5 de \u00f8verste niveauer.<\/p>\n<p><img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 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>\nTomme noder er noder, der ikke har nogen v\u00e6rdi tildelt.<br clear=\"left\"\/><br \/>\nFor bedre at forst\u00e5 globale variabler, lad os sammenligne dem med andre tr\u00e6er: have- og filsystemstr\u00e6er.<\/p>\n<p>Lad os sammenligne tr\u00e6erne med de mest velkendte hierarkiske strukturer: de s\u00e6dvanlige tr\u00e6er, der vokser i haver og marker, samt filsystemer.<\/p>\n<p><img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/c6b00c70867c3eb2e2d8233e0fc6b6c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom vi ser, har have tr\u00e6er blader og frugter kun p\u00e5 enderne af grenene.<br \/>\nP\u00e5 filsystemer opbevares oplysninger kun p\u00e5 enderne af grenene, som er de fulde navne p\u00e5 filerne.<\/p>\n<p>Og her er datastrukturen for en global variabel.<\/p>\n<p><img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/288a5d964b4bf859944c0a0ecd000bc7.jpg\" style=\"display:block;margin: 0 auto;\" \/>Forskelle:<\/p>\n<ol>\n<li><b>Interne noder:<\/b> Oplysninger i globale kan opbevares i hver knude, ikke kun p\u00e5 enderne af grenene.<\/li>\n<li><b>Eksterne noder:<\/b> En global skal have v\u00e6rdi defineret p\u00e5 enderne af grenene, hvilket ikke er n\u00f8dvendigt for filsystem- og havetr\u00e6er.<\/li>\n<\/ol>\n<p><br clear=\"left\"\/><br \/>\nN\u00e5r det kommer til dele af de interne noder, kan man sige, at strukturen af en global er et overm\u00e6ngde af strukturen af filsystemers og havetr\u00e6s navne. Dvs. mere fleksibel.<\/p>\n<p>Generelt repr\u00e6senterer en global <b>et ordnet tr\u00e6 med mulighed for at opbevare data i hver knude.<\/b>.<\/p>\n<p>For bedre at forst\u00e5, hvordan globale fungerer, lad os forestille os, hvad der ville ske, hvis skaberne af filsystemerne brugte en metode til at opbevare oplysninger, der var lig med globale?<\/p>\n<ol>\n<li>Ved at slette en enkelt fil i en mappe ville mappen automatisk blive slettet, ligesom alle overliggende mapper, der kun indeholdt den lige slettede mappe.\n<\/li>\n<li>Behovet for mapper ville v\u00e6re forsvundet. Der ville blot v\u00e6re filer med underfiler og filer uden underfiler. Hvis man sammenligner det med et almindeligt tr\u00e6, ville hver gren blive til en frugt.\n<p><img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/8e5e5681c191869da23c32da6e6d8d7b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\n<\/li>\n<li>S\u00e5danne ting som README.txt-filer ville muligvis forsvinde. Alt, hvad der skulle siges om indholdet af en mappe, kunne skrives i selve mappen. I stinavnet er filnavnet uadskilleligt fra mappenavnet, s\u00e5 man kunne n\u00f8jes med filer.\n<\/li>\n<li>Hastigheden ved at slette mapper med indlejrede undermapper og filer ville stige dramatisk. Flere gange er der dukket artikler op p\u00e5 Habr om, hvor lang tid det tager at slette millioner af sm\u00e5 filer (<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>). Men hvis du laver et pseudo-filssystem p\u00e5 globalen, vil det tage sekunder eller br\u00f8kdele deraf. Da jeg testede sletning af undertr\u00e6er p\u00e5 min hjemmecomputer, kunne jeg i l\u00f8bet af 1 sekund slette 96-341 millioner noder fra et to-niveau tr\u00e6 p\u00e5 HDD (ikke SSD). Og dette handler om at slette dele af tr\u00e6et, ikke bare hele filen med globalerne.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/7f700eeafb3e552923139024f38c6661.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Sletning af undertr\u00e6er er endnu en st\u00e6rk side ved globalerne. Dette kr\u00e6ver ikke rekursion.<\/b> Det sker utrolig hurtigt.<\/p>\n<p>I vores tr\u00e6 kunne dette g\u00f8res med kommandoen <b>Kill<\/b>.<\/p>\n<pre><code class=\"bash\">Kill ^a(\"+7926X\")<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Globale \u2014 datalagringsskove. Tr\u00e6er. Del 1\" src=\"\/wp-content\/uploads\/2019\/07\/89d5b69c6e80832c6865824782d9754d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFor bedre forst\u00e5else af, hvilke handlinger vi har til r\u00e5dighed over globalerne, vil jeg give en kort tabel.<\/p>\n<p>Hovedkommandoer og funktioner til arbejde med globaler i COS<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cset\">S\u00e6t<\/a><\/noindex><br \/>\nIndstilling af grene til noden (hvis de endnu ikke er defineret) og nodens v\u00e6rdi<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cmerge\">Sammenflet<\/a><\/noindex><br \/>\nKopiering af undertr\u00e6et<\/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 \/>\nSletning af undertr\u00e6et<\/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 \/>\nSletning af v\u00e6rdien af en bestemt node. Undertr\u00e6et, der kommer fra noden, ber\u00f8res ikke<\/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 \/>\nFuld gennemgang af tr\u00e6et med indg\u00e5ende bes\u00f8g<\/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 \/>\nGennemgang af grene af en bestemt node<\/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 \/>\nTjekker om noden er defineret<\/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 \/>\nAtomisk inkrementering af nodens v\u00e6rdi. For at undg\u00e5 l\u00e6sninger og skrivninger, til ACID. For nylig anbefales det at \u00e6ndre til <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263793\/\">$Sequence<\/a><\/noindex><\/p>\n<p>Tak for din opm\u00e6rksomhed, vi er klar til at besvare dine sp\u00f8rgsm\u00e5l.<\/p>\n<p><b>Ansvarsfraskrivelse<\/b>: <i>Denne artikel og mine kommentarer til den er min mening og har ikke noget at g\u00f8re med den officielle position fra InterSystems.<\/i><\/p>\n<p><i><b>Forts\u00e6ttelse<\/b> <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/264173\/\">Globale \u2014 datalagringsskove. Tr\u00e6er. Del 2<\/a><\/noindex>. Du vil l\u00e6re, hvilke datatyper der kan vises p\u00e5 globalerne, og hvorn\u00e5r de giver det st\u00f8rste udbytte.<\/i><br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Globaler \u2013 sv\u00e6rd med kreative egenskaber til datalagring. Tr\u00e6er. Del 1 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/36634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=36634"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/36634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/27434"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=36634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=36634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=36634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}