{"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\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","title":{"rendered":"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 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=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/83b8e36bff66516e2c331d75d8434e13.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex> Le vere armi segrete dei database \u2014 i globali \u2014 sono conosciute da tempo, ma fino ad oggi poche persone sanno utilizzarle in modo efficace o non le possiedono affatto come super-armi.<\/p>\n<p>Se si utilizzano i globali per risolvere i compiti per i quali sono realmente efficaci, si possono ottenere risultati straordinari. O nella performance, o nella semplificazione della soluzione del problema (<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>I globali sono un modo speciale di memorizzare e elaborare i dati, completamente diverso dalle tabelle in SQL. Sono stati introdotti nel 1966 nel linguaggio <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MUMPS\">M(UMPS)<\/a><\/noindex> (sviluppo evolutivo \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.com\/our-products\/cache\/tech-guide\/chapter-3\/#cache-objectscript\">Cach\u00e9 ObjectScript<\/a><\/noindex>, successivamente COS) nei database medici e sono ancora utilizzati attivamente <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/VistA\">, e hanno trovato applicazione anche in altri settori dove \u00e8 richiesta affidabilit\u00e0 e alta performance: finanza, trading, ecc.<\/a><\/noindex>I globali nei moderni DBMS supportano transazioni, registrazione, replicazione, partizionamento. In altre parole, su di essi \u00e8 possibile costruire sistemi moderni, affidabili, distribuiti e veloci.<\/p>\n<p>I globali non vi limitano ai confini del modello relazionale. Offrono libert\u00e0 nella progettazione di strutture dati ottimizzate per compiti specifici. Per molte applicazioni, un utilizzo ragionevole dei globali pu\u00f2 essere una vera arma segreta, garantendo prestazioni di cui gli sviluppatori di applicazioni relazionali possono solo sognare.<\/p>\n<p>I globali come metodo di memorizzazione dei dati possono essere utilizzati in molti linguaggi di programmazione moderni, sia di alto che di basso livello. Pertanto, in questo articolo mi concentrer\u00f2 sui globali, e non sul linguaggio da cui sono derivati.<\/p>\n<p>2. Come funzionano i globali<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Iniziamo con il comprendere come funzionano i globali e quali sono i loro punti di forza. I globali possono essere visti da diverse prospettive. In questa parte dell'articolo li considereremo come alberi. Oppure come archivi gerarchici di dati.<\/h2>\n<p>\nIn termini semplici, un globale \u00e8 un array persistente. Un array che viene salvato automaticamente su disco.<\/p>\n<p>\u00c8 difficile immaginare qualcosa di pi\u00f9 semplice per memorizzare dati. Nel codice (in linguaggi COS\/M) si distingue da un normale array associativo solo per il simbolo<br \/>\nprima del nome. <b>^<\/b> Per memorizzare dati in un globale non \u00e8 necessario studiare il linguaggio di query SQL, i comandi per lavorare con essi sono molto semplici. Si possono apprendere in un'ora.<\/p>\n<p>Per memorizzare dati in una variabile globale non \u00e8 necessario apprendere un linguaggio di query SQL, i comandi per lavorare con esse sono molto semplici. Si possono imparare in un'ora. <\/p>\n<p>Iniziamo con il pi\u00f9 semplice degli esempi. Un albero unilivello con 2 rami. Gli esempi sono scritti in COS.<\/p>\n<p><img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/5e1503716eac1eaadf49fcf3651e7fbf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Imposta ^a(\"+7926X\") = \"John Sidorov\"\nImposta ^a(\"+7916Y\") = \"Sergey Smith\"<\/code><\/pre>\n<p><br clear=\"left\"\/><br \/>\nQuando si inseriscono informazioni nel globale (comando Set) avvengono automaticamente 3 cose:<\/p>\n<ol>\n<li><b>Salvataggio dei dati su disco.<\/b>\n<\/li>\n<li><b>Indicizzazione.<\/b> Ci\u00f2 che si trova tra parentesi funge da chiave (nella letteratura anglofona - \u00absubscript\u00bb), mentre a destra del segno di uguale si trova il valore (\u00abnode value\u00bb).\n<\/li>\n<li><b>Ordinamento.<\/b> I dati vengono ordinati per chiave. In seguito, durante la navigazione dell'array, il primo elemento sar\u00e0 \u00abSergey Smith\u00bb, e il secondo \u00abJohn Sidorov\u00bb. Quando si riceve un elenco di utenti dal globale, il database non spende tempo per ordinare. Inoltre, \u00e8 possibile richiedere l'output di un elenco ordinato, partendo da qualsiasi chiave, anche inesistente (l'output inizier\u00e0 dalla prima chiave reale che segue quella inesistente).\n<\/li>\n<\/ol>\n<p>\nTutte queste operazioni avvengono incredibilmente velocemente. Sul computer di casa ho ottenuto valori fino a 750.000 inserimenti\/sec in un unico processo. Su processori multicore, i valori possono raggiungere <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/257501\/\">decine di milioni<\/a><\/noindex> di inserimenti\/sec.<\/p>\n<p>Naturalmente, la velocit\u00e0 di inserimento da sola dice poco. Ad esempio, si possono registrare informazioni molto rapidamente nei file di testo\u2014cos\u00ec <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/176345\/#comment_6220633\">si dice<\/a><\/noindex> funziona il processo di Visa. Ma nel caso dei globali, otteniamo in uscita un deposito strutturato indicizzato, con cui \u00e8 possibile lavorare in modo semplice e veloce.<\/p>\n<p><img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/ce447c81cf3a7d570518711c7103dbf0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<ul>\n<li><b>Il punto di forza dei globali \u00e8 la rapidit\u00e0 di inserimento di nuovi nodi.<\/b>\n<\/li>\n<li><b>I dati nel globale sono sempre indicizzati. La loro navigazione, sia a un livello che in profondit\u00e0 nell'albero, \u00e8 sempre veloce.<\/b><\/li>\n<\/ul>\n<p>\nAggiungiamo al globale ancora alcuni rami di secondo e terzo livello.<\/p>\n<pre><code class=\"bash\">Imposta ^a(\"+7926X\", \"city\") = \"Mosca\"\nImposta ^a(\"+7926X\", \"city\", \"street\") = \"Piazza Req\"\nImposta ^a(\"+7926X\", \"age\") = 25\nImposta ^a(\"+7916Y\", \"city\") = \"Londra\"\nImposta ^a(\"+7916Y\", \"city\", \"street\") = \"Baker Street\"\nImposta ^a(\"+7916Y\", \"age\") = 36<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/47244a6d96b589ada53ba9f53b2b3a2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c8 evidente che sulla base dei globali sia possibile costruire alberi multilivello. Inoltre, l'accesso a qualsiasi nodo \u00e8 praticamente istantaneo grazie all'autoindicizzazione durante l'inserimento. E a qualsiasi livello dell'albero, tutti i rami sono ordinati per chiave.<\/p>\n<p>Come si pu\u00f2 vedere, le informazioni possono essere memorizzate sia nella chiave che nel valore. La lunghezza totale della chiave (la somma delle lunghezze di tutti gli indici) pu\u00f2 raggiungere <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>, e i valori <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> per Cach\u00e9. Il numero di livelli nell'albero (il numero di dimensioni) \u00e8 31.<\/p>\n<p>Un altro punto interessante. \u00c8 possibile costruire un albero senza specificare i valori dei nodi ai livelli superiori.<\/p>\n<p><img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/f37f81a87a13adb13bbd3583dda06928.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Imposta ^b(\"a\", \"b\", \"c\", \"d\") = 1\nImposta ^b(\"a\", \"b\", \"c\", \"e\") = 2\nImposta ^b(\"a\", \"b\", \"f\", \"g\") = 3<\/code><\/pre>\n<p>\nI cerchi vuoti sono nodi a cui non \u00e8 stato assegnato un valore.<br clear=\"left\"\/><br \/>\nPer comprendere meglio i globali, li confrontiamo con altri alberi: con gli alberi da giardino e con gli alberi dei nomi dei file.<\/p>\n<p>Confrontiamo gli alberi nei globali con le strutture gerarchiche a noi pi\u00f9 familiari: con i normali alberi che crescono nei giardini e nei campi, e anche con i sistemi di file.<\/p>\n<p><img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/c6b00c70867c3eb2e2d8233e0fc6b6c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCome vediamo, negli alberi da giardino le foglie e i frutti si trovano solo sulle estremit\u00e0 dei rami.<br \/>\nNei sistemi di file, le informazioni si trovano solo sulle estremit\u00e0 dei rami, che sono i nomi completi dei file.<\/p>\n<p>Ecco la struttura dei dati del globale.<\/p>\n<p><img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/288a5d964b4bf859944c0a0ecd000bc7.jpg\" style=\"display:block;margin: 0 auto;\" \/>Differenze:<\/p>\n<ol>\n<li><b>Nodi interni:<\/b> Le informazioni nel globale possono essere memorizzate in ogni nodo, non solo sulle estremit\u00e0 dei rami.<\/li>\n<li><b>Nodi esterni:<\/b> Nel globale devono essere definiti valori sulle estremit\u00e0 dei rami, mentre negli alberi FS e negli alberi da giardino non \u00e8 necessario.<\/li>\n<\/ol>\n<p><br clear=\"left\"\/><br \/>\nIn parte degli nodi interni, si pu\u00f2 dire che la struttura del globale \u00e8 un insieme superiore alla struttura degli alberi dei nomi nei sistemi di file e negli alberi da giardino. Cio\u00e8, \u00e8 pi\u00f9 flessibile.<\/p>\n<p>In generale, il globale rappresenta <b>un albero ordinato con la possibilit\u00e0 di memorizzare dati in ogni nodo.<\/b>.<\/p>\n<p>Per comprendere meglio il funzionamento dei globali, immaginiamo cosa potrebbe succedere se i creatori dei sistemi di file utilizzassero un approccio simile a quello dei globali per la memorizzazione delle informazioni?<\/p>\n<ol>\n<li>Eliminando un singolo file in una directory, la directory verrebbe automaticamente eliminata, cos\u00ec come tutte le directory superiori che contengono solo quella directory appena eliminata.\n<\/li>\n<li>Non ci sarebbe pi\u00f9 bisogno di directory. Ci sarebbero semplicemente file con sottocartelle e file senza sottocartelle. Se confrontato con un albero normale, ogni ramo diventerebbe un frutto.\n<p><img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/8e5e5681c191869da23c32da6e6d8d7b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\n<\/li>\n<li>Elementi come file README.txt potrebbero scomparire. Tutto ci\u00f2 che era necessario dire sul contenuto di una directory poteva essere scritto all'interno del file di directory stesso. Nello spazio dei percorsi, il nome di un file \u00e8 indistinguibile dal nome di una directory, quindi ci si potrebbe accontentare di file singoli.\n<\/li>\n<li>La velocit\u00e0 di eliminazione delle directory con sottodirectory e file aumenterebbe drasticamente. Molte volte su Habr sono apparsi articoli su quanto possa essere lungo e difficile eliminare milioni di piccoli file.<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>). Tuttavia, se si crea un sistema di file pseudo globale, ci vorranno solo secondi o frazioni di essi. Quando ho testato la rimozione di sotto-alberi sul computer di casa, in un secondo rimuovevo da 96 a 341 milioni di nodi da un albero a due livelli su HDD (non SSD). Si tratta della rimozione di una parte dell'albero, non semplicemente di tutto il file con i globali.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/7f700eeafb3e552923139024f38c6661.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>La rimozione di sotto-alberi \u00e8 un altro punto di forza dei globali. Non \u00e8 necessaria la ricorsione.<\/b> Questo avviene incredibilmente rapidamente.<\/p>\n<p>Nel nostro albero si potrebbe fare con il comando <b>Kill<\/b>.<\/p>\n<pre><code class=\"bash\">Elimina ^a(\"+7926X\")<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"I globali sono spade di acciaio per la memorizzazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/89d5b69c6e80832c6865824782d9754d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPer una migliore comprensione delle azioni disponibili sui globali, presenter\u00f2 una tabella riassuntiva.<\/p>\n<p>Strumenti e funzioni principali per lavorare con i globali in COS<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cset\">Imposta<\/a><\/noindex><br \/>\nImpostazione dei rami fino al nodo (se ancora non definiti) e valore del nodo<\/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 \/>\nCopia di sotto-albero<\/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 \/>\nRimozione di sotto-albero<\/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 \/>\nRimozione del valore di un nodo specifico. Il sotto-albero che esce dal nodo non viene toccato.<\/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 \/>\nVisita completa dell'albero con accesso in profondit\u00e0<\/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 \/>\nVisita dei rami di un nodo specifico<\/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 \/>\nVerifica se il nodo \u00e8 definito<\/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 \/>\nIncremento atomico del valore di un nodo. Per evitare letture e scritture, per ACID. Negli ultimi tempi si raccomanda di sostituire con <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263793\/\">$Sequence<\/a><\/noindex><\/p>\n<p>Grazie per l'attenzione, siamo pronti a rispondere alle vostre domande.<\/p>\n<p><b>Avviso<\/b>: <i>Questo articolo e i miei commenti sono la mia opinione e non riflettono la posizione ufficiale della societ\u00e0 InterSystems.<\/i><\/p>\n<p><i><b>Continua<\/b> <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/264173\/\">Globali \u2014 spade-macchine per la memorizzazione dei dati. Alberi. Parte 2<\/a><\/noindex>. Scoprirete quali tipi di dati possono essere visualizzati sui globali e in quali attivit\u00e0 offrono il massimo vantaggio.<\/i><br \/>\n<br \/>Fonte: <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.1.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\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47I globali sono spade magiche per l'archiviazione dei dati. Alberi. Parte 1 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/36634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=36634"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/27434"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=36634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=36634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=36634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}