{"id":87758,"date":"2020-07-10T01:41:58","date_gmt":"2020-07-09T23:41:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kody-izbytochnosti-prostymi-slovami-o-tom-kak-nadyozhno-i-dyoshevo-hranit-dannye"},"modified":"2020-07-10T01:41:58","modified_gmt":"2020-07-09T23:41:58","slug":"kody-izbytochnosti-prostymi-slovami-o-tom-kak-nadyozhno-i-dyoshevo-hranit-dannye","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kody-izbytochnosti-prostymi-slovami-o-tom-kak-nadyozhno-i-dyoshevo-hranit-dannye","title":{"rendered":"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/4d853e314dfea596b45a6aff00238bea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Nii n\u00e4eb v\u00e4lja \u00fclek\u00fcllus<\/em><\/p>\n<p><\/p>\n<p>\u00dclek\u00fclluskoode* kasutatakse laialdaselt arvutis\u00fcsteemides andmete salvestamise usaldusv\u00e4\u00e4rsuse suurendamiseks. Yandexis kasutatakse neid paljusid projekte. N\u00e4iteks \u00fclek\u00fclluskoode kasutatakse meie sisemises objektigaleriis replikatsiooni asemel, mis s\u00e4\u00e4stab miljoneid ilma usaldusv\u00e4\u00e4rsuse v\u00e4henemiseta. Kuid vaatamata laialdasele levikule on \u00fclek\u00fclluskoode kohta arusaadavat kirjeldust harva. Need, kes soovivad rohkem teada, seisavad silmitsi umbes j\u00e4rgmisega (v\u00e4lja arvatud <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D0%BE%D0%B4_%D0%A0%D0%B8%D0%B4%D0%B0_%E2%80%94_%D0%A1%D0%BE%D0%BB%D0%BE%D0%BC%D0%BE%D0%BD%D0%B0\">Vikipeediale<\/a><\/noindex>):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/c5e592acd8c1e113c099357d1ba48d5c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Minu nimi on Vadim, Yandexis tegelen ma sisemise objektigaleriiga MDS arendamisega. Selles artiklis selgitan lihtsate s\u00f5nadega \u00fclek\u00fclluskoode (Reedi-Solomoni koode ja LRC teoreetilisi aluseid). R\u00e4\u00e4gin, kuidas see t\u00f6\u00f6tab, ilma keerulise matemaatika ja haruldaste terminite kasutamiseta. L\u00f5pus toon n\u00e4iteid \u00fclek\u00fclluskoode kasutamisest Yandexis.<\/p>\n<p><\/p>\n<p>M\u00f5ned matemaatilised detailid j\u00e4\u00e4vad mul p\u00f5hjalikult k\u00e4sitlemata, kuid jagan viiteid neile, kes soovivad s\u00fcgavamale minna. Samuti m\u00e4rgin, et m\u00f5ned matemaatilised m\u00e4\u00e4ratlused ei pruugi olla t\u00e4psed, kuna artikkel ei ole suunatud matemaatikutele, vaid inseneridele, kes soovivad m\u00f5ista teema olemust.<\/p>\n<p><\/p>\n<p>* Ingliskeelses kirjanduses nimetatakse liigkoodideks sageli erase codes.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"1-sut-kodov-izbytochnosti\">1. Liigkoodide olemus<\/h1>\n<p><\/p>\n<p>Liigkoodide olemus on \u00e4\u00e4rmiselt lihtne: salvestada (v\u00f5i edastada) andmeid nii, et need ei kaoks, kui tekivad vead (k\u00f5vakettavigu, andmeedastusvead jne). <\/p>\n<p><\/p>\n<p>Enamikus* liigkoodides jagatakse andmed n andmeplokiks, mille jaoks on v\u00e4lja arvutatud m liigkoodi plokki, kokku saame n + m plokki. Liigkoodid on konstrueeritud nii, et n andmeplokki saab taastada, kasutades ainult osa n + m plokist. Edasi vaatame ainult plokkide liigkoodide, see t\u00e4hendab neid, kus andmed jaotatakse plokkideks.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/1273b4643f915dd615026ec38ca56473.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00f5igi n andmeplokkide taastamiseks on vaja, et oleks v\u00e4hemalt n plokki n + m plokist, kuna n plokki ei saa taastada, omades vaid n-1 plokki (sellisel juhul tuleks \u00fcks plokk v\u00f5tta '\u00f5hust'). Kas piisab n suvalisest plokist n + m plokist, et taastada k\u00f5ik andmed? See s\u00f5ltub \u00fclekoormuskoode t\u00fc\u00fcbist; n\u00e4iteks Reed-Solomoni koodid v\u00f5imaldavad k\u00f5iki andmeid taastada suvaliste n plokkide kaudu, kuid LRC \u00fclekoormuskoode ei pruugi alati piisata.<\/p>\n<p><\/p>\n<h3 id=\"hranenie-dannyh\">Andmete salvestamine<\/h3>\n<p><\/p>\n<p>Andmesalvestuss\u00fcsteemides salvestatakse tavaliselt iga andmeplokk ja \u00fclekoormusplokk eraldi kettale. Sel juhul on andmed ikkagi v\u00f5imalik taastada ja lugeda, isegi kui \u00fcksk\u00f5ik milline ketas on rikki l\u00e4inud. Andmed on v\u00f5imalik taastada isegi mitme ketta samaaegse rikkumise korral.<\/p>\n<p><\/p>\n<h3 id=\"peredacha-dannyh\">Andmete edastamine<\/h3>\n<p><\/p>\n<p>Liigne koodide abil saab usaldusv\u00e4\u00e4rselt edastada andmeid ebausaldusv\u00e4\u00e4rses v\u00f5rgus. Edastatavad andmed jagatakse plokkideks, millele arvutatakse liigne kood. V\u00f5rgus edastatakse nii andmeplokid kui ka liigne koodide plokid. Kui teatud plokkides esinevad vead (aines kuni teatava arvu plokkideni), on andmeid siiski v\u00f5imalik veatult edastada. N\u00e4iteks kasutatakse Reedi-Solomoni koode andmete edastamiseks optilistes sideliinides ja satelliitsides.<\/p>\n<p><\/p>\n<p>* On ka liigne koode, kus andmeid ei jagata plokkideks, n\u00e4iteks Hamming'i koodid ja CRC koodid, mida laialdaselt kasutatakse andmete edastamiseks Etherneti v\u00f5rkudes. Need on koodid, mis tagavad m\u00fcra taluvuse, m\u00f5eldud vigade avastamiseks, mitte parandamiseks (Hamming'i kood v\u00f5imaldab ka vigade osalist parandamist).<\/p>\n<p><\/p>\n<h1 id=\"2-kody-rida--solomona\">2. Reedi-Solomoni koodid<\/h1>\n<p><\/p>\n<p>Reedi-Solomoni koodid on \u00fched levinumad liigne koodid, mis p\u00e4rinevad juba 1960. aastatest ja said esmakordselt laialdast kasutust 1980. aastatel kompaktplaatide sarjatootmises.<\/p>\n<p><\/p>\n<p>Reed-Solomon koodide m\u00f5istmiseks on kaks p\u00f5hik\u00fcsimust: 1) kuidas luua \u00fclem\u00e4\u00e4raste koodide bloke; 2) kuidas taastada andmeid \u00fclem\u00e4\u00e4raste koodide abil. Otsime nendele vastuseid.<br \/>\nLihtsustamiseks oletame edaspidi, et n=6 ja m=4. Teised skeemid k\u00e4sitletakse analooge j\u00e4rgides.<\/p>\n<p><\/p>\n<h3 id=\"kak-sozdavat-bloki-kodov-izbytochnosti\">Kuidas luua \u00fclem\u00e4\u00e4raste koodide bloke<\/h3>\n<p><\/p>\n<p>Iga \u00fclem\u00e4\u00e4raste koodide blokk arvestatakse s\u00f5ltumatult teistest. Iga bloki arvutamiseks kasutatakse k\u00f5iki n andmeblokke. Alloleval skeemil X1-X6 on andmeblokid, P1\u2013P4 on \u00fclem\u00e4\u00e4raste koodide blokid.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/b4841e48a5f2f059376bb458a26c6235.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00f5ik andmeblokid peavad olema sama suurusega, tasakaalustamiseks v\u00f5ib kasutada nullbitte. Saadud \u00fclem\u00e4\u00e4raste koodide blokid on sama suurusega kui andmebloked. K\u00f5ik andmeblokid jagunevad s\u00f5nadeks (n\u00e4iteks 16 bitti igas). Oletame, et jagasime andmeblokid k s\u00f5naks. Siis jagunevad k\u00f5ik \u00fclem\u00e4\u00e4raste koodide blokid samuti k s\u00f5naks.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/fff9c998a760e3f05ef45497557888a9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Iga \u00fclem\u00e4\u00e4raste koodide bloki i-s\u00f5na arvutamiseks kasutatakse k\u00f5ikide andmeblokki i-s\u00f5nu. Need arvutatakse j\u00e4rgmise valemi j\u00e4rgi:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/8f52209ef7f628c8a748325b1a30c2d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Siin on x v\u00e4\u00e4rtused \u2013 andmeplokkide s\u00f5nad, p \u2013 \u00fcleliigsete koodide plokkide s\u00f5nad, k\u00f5ik alfa, beeta, gamma ja delta \u2013 spetsiaalselt valitud numbrid, mis on k\u00f5ikidele i jaoks \u00fchesugused. Tuleb kohe \u00f6elda, et k\u00f5ik need v\u00e4\u00e4rtused ei ole tavalised numbrid, vaid Galois'i v\u00e4lja elemendid, operatsioonid +, -, *, \/ \u2013 ei ole k\u00f5igile tuttavad operatsioonid, vaid spetsiaalsed tehingud, mis on m\u00e4\u00e4ratud Galois'i v\u00e4lja elementide \u00fcle.<\/p>\n<p><\/p>\n<h3 id=\"zachem-nuzhny-polya-galua\">Miks on Galois'i v\u00e4ljad vajalikud<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/94ed4514ae15b01e7869efdeb9a605c6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tundub, et k\u00f5ik on lihtne: jagame andmed plokkideks, plokid s\u00f5nadeks, kasutades andmeplokkide s\u00f5nu, arvutame \u00fcleliigsete koodide plokkide s\u00f5nad \u2013 saame \u00fcleliigsete koodide plokid. \u00dcldiselt see nii toimib, kuid diabol on detailides:<\/p>\n<p><\/p>\n<ol>\n<li>Nagu \u00f6eldud, on s\u00f5na suurus fikseeritud, meie n\u00e4ites 16 bitti. \u00dclaltoodud Reed-Solomoni koodide valemid on sellised, et tavaliste t\u00e4isarvude kasutamisel v\u00f5ib p arvutamise tulemus olla esitatud lubatud suurusega s\u00f5nadega.<\/li>\n<li>Andmete taastamisel k\u00e4sitletakse \u00fclaltoodud valemeid kui v\u00f5rrandis\u00fcsteemi, mille lahendamine on vajalik andmete taastamiseks. Lahendamise k\u00e4igus v\u00f5ib tekkida vajadus jagada \u00fcksteisega t\u00e4isarve, mille tulemuseks on reaalnumber, mida arvutis t\u00e4pselt esitada ei saa.<\/li>\n<\/ol>\n<p><\/p>\n<p>Need probleemid ei v\u00f5imalda Reed-Salomoni koodide jaoks kasutada t\u00e4isarve. Probleemi lahendus on originaalne ja seda v\u00f5ib kirjeldada j\u00e4rgmiselt: m\u00f5tleme v\u00e4lja erilised numbrid, mida saab esitada vajalikus pikkuses s\u00f5nadega (n\u00e4iteks 16 bitti), ning k\u00f5ik nendele numbritele tehtud operatsioonide (liitmine, lahutamine, korrutamine, jagamine) tulemused on samuti arvutis esitatud vajaliku pikkusega s\u00f5nadega.<\/p>\n<p><\/p>\n<p>Selliseid \"erilisi\" numbreid on juba ammu uuritud matemaatikas, neid nimetatakse v\u00e4ljadeks. V\u00e4li on elementide kogum, millel on m\u00e4\u00e4ratletud liitmise, lahutamise, korrutamise ja jagamise operatsioonid.<\/p>\n<p><\/p>\n<p>Galois-v\u00e4ljad* on v\u00e4ljad, mille puhul on iga operatsiooni (+, -, *, \/) tulemus iga kahe v\u00e4lja elemendi jaoks olemas ja ainus. Galois-v\u00e4lju saab ehitada arvudele, mis on 2 astmes: 2, 4, 8, 16 jne. (tegelikult mis tahes algarvu p astmes, kuid praktikas huvitavad meid ainult 2 astmed). N\u00e4iteks 16-bitiste s\u00f5nade jaoks on see v\u00e4li, mis sisaldab 65 536 elementi, mille jaoks saab leida iga operatsiooni (+, -, *, \/) tulemust. \u00dclaltoodud valemites x, p, alfa, beeta, gamma, delta v\u00e4\u00e4rtused loetakse Galois-v\u00e4lja elementideks arvutuste tegemisel.<\/p>\n<p><\/p>\n<p>Seega on meil s\u00fcsteem v\u00f5rrandeid, millega saab ehitada \u00fcleliigsuse koodiplokke, kirjutades vastava arvutiprogrammi. Sama s\u00fcsteemi abil saab teostada ka andmete taastamist.<\/p>\n<p><\/p>\n<p>* See ei ole rangelt \u00f6eldes m\u00e4\u00e4ratlus, pigem kirjeldus.<\/p>\n<p><\/p>\n<h3 id=\"kak-vosstanavlivat-dannye\">Kuidas andmeid taastada<\/h3>\n<p><\/p>\n<p>Taastamine on vajalik, kui n + m plokist osa plokke puudub. Need v\u00f5ivad olla nii andmeplokid kui ka liigse koodi plokid. Andmeplokkide ja\/v\u00f5i liigse koodi plokkide puudumine t\u00e4hendab, et \u00fclaltoodud v\u00f5rrandites pole vastavaid muutujaid x ja\/v\u00f5i p.<\/p>\n<p><\/p>\n<p>Reedi-Solomoni koodide v\u00f5rrandeid v\u00f5ib k\u00e4sitleda kui v\u00f5rrandite s\u00fcsteemi, kus k\u00f5ik alfa, beeta, gamma, delta v\u00e4\u00e4rtused on konstandid, k\u00f5ik x ja p, mis vastavad kergesti k\u00e4tte saadavatele plokkidele, on teadaolevad muutujad, ja teised x ja p on tundmatud.<\/p>\n<p><\/p>\n<p>N\u00e4iteks, oletame, et andmeplokid 1, 2, 3 ja liigse koodi plokk 2 on kergesti k\u00e4tte saamata, siis i-nda s\u00f5na r\u00fchma jaoks tekib j\u00e4rgmine v\u00f5rrandite s\u00fcsteem (tundmatud on esile t\u00f5stetud punasega):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/6f24804c3d34423f31796e43e9ae1203.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Meil on 4 v\u00f5rrandi ja 4 tundmatuga s\u00fcsteem, seega saame selle lahendada ja andmeid taastada!<\/p>\n<p><\/p>\n<p>Sellest v\u00f5rrandite s\u00fcsteemist j\u00e4relduvad mitmed t\u00e4helepanekud andmete taastamise kohta Reedi-Solomoni koodide puhul (n andmeplokki, m liigse koodi plokki):<\/p>\n<p><\/p>\n<ul>\n<li>Andmeid saab taastada, kui kaotatakse kuni m blokki v\u00f5i v\u00e4hem. Kui kaotatakse m+1 v\u00f5i rohkem blokk, siis andmeid taastada ei saa: m v\u00f5rrandite s\u00fcsteemi m + 1 tundmatuga lahendada ei saa. <\/li>\n<li>Isegi \u00fche andmebloki taastamiseks tuleb kasutada igasuguseid n \u00fclej\u00e4\u00e4nud bloke, samas v\u00f5ib kasutada igasuguseid \u00fclekande koodide n.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"chto-eschyo-nuzhno-znat\">Mis veel on oluline teada<\/h3>\n<p><\/p>\n<p>\u00dclaltoodud kirjelduses j\u00e4tan t\u00e4helepanuta mitu olulist k\u00fcsimust, mille arutamiseks tuleb matemaatikasse s\u00fcgavamale s\u00fcveneda. Eriti ei r\u00e4\u00e4gi ma j\u00e4rgmistest asjadest:<\/p>\n<p><\/p>\n<ul>\n<li>Reed-Solomoni koodide v\u00f5rrandite s\u00fcsteemil peab olema (ainus) lahendus mis tahes tundmatute kombinatsioonide korral (kuni m tundmatut). Selle n\u00f5ude p\u00f5hjal valitakse alfa, beeta, gamma ja delta v\u00e4\u00e4rtused.<\/li>\n<li>V\u00f5rrandite s\u00fcsteem peab olema v\u00f5imeline automaatselt ehitama (s\u00f5ltuvalt sellest, millised blokid on k\u00e4ttesaamatud) ja lahendama.<\/li>\n<li>Galois' v\u00e4li tuleb luua: antud s\u00f5numi suuruse jaoks peab olema v\u00f5imalik leida mis tahes operatsiooni (+, -, *, \/) tulemus igasuguste kahe elemendi jaoks.<\/li>\n<\/ul>\n<p><\/p>\n<p>Artikli l\u00f5pus on lingid kirjandusele nende oluliste k\u00fcsimuste kohta.<\/p>\n<p><\/p>\n<h3 id=\"vybor-n-i-m\">n ja m valimine<\/h3>\n<p><\/p>\n<p>Kuidas praktikas valida n ja m? Andmesalvestuss\u00fcsteemides kasutatakse redundantsuskoodide abil ruumi kokkuhoiuks, seega valitakse m alati v\u00e4iksem kui n. Nende konkreetsed v\u00e4\u00e4rtused s\u00f5ltuvad mitmetest teguritest, sealhulgas:<\/p>\n<p><\/p>\n<ul>\n<li>Andmete salvestamise usaldusv\u00e4\u00e4rsus. Mida suurem on m, seda rohkem kettah\u00e4ireid suudetakse taluda, mis t\u00e4hendab k\u00f5rgemat usaldusv\u00e4\u00e4rsust.<\/li>\n<li>Salvestuse redundantsus. Mida k\u00f5rgem on suhe m \/ n, seda suurem on salvestuse redundantsus ja seda kallim on s\u00fcsteem.<\/li>\n<li>P\u00e4ringute t\u00f6\u00f6tlemise aeg. Mida suurem on summa n + m, seda pikem on p\u00e4ringute vastamise aeg. Kuna andmete lugemiseks (taastamise ajal) tuleb lugeda n plokki, mis asuvad n erineval kettal, siis m\u00e4\u00e4rab lugemise aeg k\u00f5ige aeglasem ketas.<\/li>\n<\/ul>\n<p><\/p>\n<p>Lisaks sellele seab andmete s\u00e4ilitamine mitmes andme keskuses t\u00e4iendavad piirangud n ja m valikule: \u00fche D\u0421 v\u00e4ljal\u00fclitamisel peavad andmed siiski olema loetavad. N\u00e4iteks, kui andmeid hoitakse 3 D\u0421-s, peab kehtima tingimus: m &gt;= n\/2; vastasel juhul v\u00f5ib juhtuda, et andmed pole p\u00e4rast \u00fche D\u0421 v\u00e4ljal\u00fclitamist loetavad.<\/p>\n<p><\/p>\n<h1 id=\"3-lrc--local-reconstruction-codes\">3. LRC \u2014 Kohalik rekonstrueerimise kood<\/h1>\n<p><\/p>\n<p>Reida \u2014 Solomoni koodide abil andmete taastamiseks peab olema n suvalist andmeplokki. See on hajutatud andmete salvestuss\u00fcsteemide puhul suur puudus, kuna \u00fche rikka ketta andmete taastamiseks tuleb lugeda andmeid enamikest teistest, mis tekitab kettale ja v\u00f5rgule suure lisakoormuse.<\/p>\n<p><\/p>\n<p>Sagedasemad vead on \u00fcksiku andmeploki k\u00e4ttesaadavuse probleem, mis v\u00f5ib tuleneda \u00fche ketta rikke v\u00f5i \u00fclekoormuse t\u00f5ttu. Kas on v\u00f5imalik kuidagi v\u00e4hendada liigset koormust andmete taastamiseks sellistes (k\u00f5ige levinumates) juhtudel? Selgub, et jah: selleks on olemas LRC \u00fcleliigsete koodide s\u00fcsteem.<\/p>\n<p><\/p>\n<p>LRC (Kohalike Rekonstruktsioonikoodid) \u2014 Microsofti v\u00e4lja t\u00f6\u00f6tatud \u00fclekandekoodid, mida kasutatakse Windows Azure Storage'is. LRC idee on lihtne: jagada k\u00f5ik andmeplokid kahte (v\u00f5i rohkem) gruppi ja arvutada iga grupi jaoks eraldi osa plokke \u00fclekandekoodidest. Niisiis, osa \u00fclekandekoodidest arvutatakse k\u00f5igi andmeplokkide alusel (LRC-s nimetatakse neid globaalseteks \u00fclekandekoodideks), ja osa \u00fche grupi andmeplokkide alusel (neid nimetatakse lokaalseteks \u00fclekandekoodideks).<\/p>\n<p><\/p>\n<p>LRC t\u00e4histatakse kolme arvuga: n-r-l, kus n \u2014 andmeplokkide arv, r \u2014 globaalsete \u00fclekandekoodide arv, l \u2014 kohalike \u00fclekandekoodide arv. Andmete lugemiseks, kui \u00fcks andmeplokk ei ole k\u00e4tte saadav, on vaja lugeda vaid n\/l plokki \u2014 see on l korda v\u00e4hem, kui Reed-Solomoni koodide puhul.<\/p>\n<p><\/p>\n<p>Kujutame n\u00e4iteks LRC mudelit 6-2-2. X1\u2013X6 \u2014 6 andmeplokki, P1, P2 \u2014 2 globaalset \u00fclekandekoodide plokki, P3, P4 \u2014 2 kohalikku \u00fclekandekoodide plokki.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/783f6d4b57b992c56385cdd07603cda8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P1 ja P2 pariteedikoodide plokid arvutatakse k\u00f5igi andmeplokkide p\u00f5hjal. P3 pariteedikoodi plokk arvutatakse andmeplokkide X1\u2013X3 p\u00f5hjal, P4 pariteedikoodi plokk arvutatakse andmeplokkide X4\u2013X6 p\u00f5hjal.<\/p>\n<p><\/p>\n<p>\u00dclej\u00e4\u00e4nu tehakse LRC-s Reed-Salomone koodide sarnasel viisil. Suhted pariteedikoodide plokkide s\u00f5nade arvutamiseks on j\u00e4rgmised:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Redundantsed koodid: lihtsustatult, kuidas usaldusv\u00e4\u00e4rselt ja odavalt andmeid salvestada\" src=\"\/wp-content\/uploads\/2020\/07\/b32c8864fac0678014fc9a5abf490537.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Alfa, beeta, gamma ja delta numbrite valimiseks tuleb t\u00e4ita hulga tingimusi, mis tagavad andmete taastamise v\u00f5imaluse (st lahenduste s\u00fcsteemi). T\u00e4iendavat teavet nende kohta leiate <noindex><a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2016\/02\/LRC12-cheng20webpage.pdf\">artiklis<\/a><\/noindex>.<br \/>\nSamuti kasutatakse praktikas kohalike pariteedikoodide P3, P4 arvutamiseks XOR operatsiooni. <\/p>\n<p><\/p>\n<p>LRC v\u00f5rrandis\u00fcsteemist tulenevad mitmed j\u00e4reldused:<\/p>\n<p><\/p>\n<ul>\n<li>Iga 1 andmeploki taastamiseks piisab n\/l ploki lugemisest (n\/2 meie n\u00e4ites).<\/li>\n<li>Kui r + l plokki pole saadaval ning k\u00f5ik plokid kuuluvad \u00fchte gruppi, siis andmeid taastada ei saa. Seda on lihtne seletada n\u00e4ite abil. Oletame, et plokid X1\u2013X3 ja P3 pole saadaval: need on r + l plokid \u00fchest grupist, 4 meie juhul. Seega on meil 3 v\u00f5rrandi s\u00fcsteem 4 tundmatuga, mida ei saa lahendada.<\/li>\n<li>K\u00f5ikides teistes olukordades, kui r + l blokid ei ole saadaval (kui igast grupist on saadaval v\u00e4hemalt \u00fcks blokk), on LRC andmed taastatav.<\/li>\n<\/ul>\n<p><\/p>\n<p>Seega on LRC \u00fcle Reed-Salomoni koodide andmete taastamisel \u00fcksikute vigade p\u00e4rast. Reed-Salomoni koodide puhul on \u00fche andmeploki taastamiseks vaja kasutada n plokki, kuid LRC korral piisab \u00fche andmeploki taastamiseks n\/l plokist (n\/2 meie n\u00e4ites). Teisest k\u00fcljest on LRC Reed-Salomoni koodidele alla j\u00e4\u00e4nud lubatud vigade maksimaalses arvus. \u00dclaltoodud n\u00e4idetes suudavad Reed-Salomoni koodid taastada andmeid igasuguste 4 vea korral, samas kui LRC puhul on 4 vea korral 2 kombinatsiooni, kus andmeid ei ole v\u00f5imalik taastada.<\/p>\n<p><\/p>\n<p>Oluline on see, et see s\u00f5ltub konkreetsest olukorrast, kuid sageli kaaluvad LRC pakkumise \u00fcleliigse koormuse kokkuhoid \u00fcles veidi v\u00e4iksemad salvestamise t\u00f6\u00f6kindluse n\u00e4itajad.<\/p>\n<p><\/p>\n<h1 id=\"4-drugie-kody-izbytochnosti\">4. Teised \u00fclekandekoodid<\/h1>\n<p><\/p>\n<p>Lisaks Reed-Salomoni ja LRC koodidele on olemas palju teisi \u00fclekandekoodide vorme. Erinevad koodid kasutavad erinevat matemaatikat. Siin on m\u00f5ned teised \u00fclekandekoodid:<\/p>\n<p><\/p>\n<ul>\n<li>XOR-operatsiooni abil loodud \u00fclej\u00e4\u00e4gikood. XOR-operatsioon toimub n andmeplokki \u00fcle ja tulemuseks on 1 \u00fclej\u00e4\u00e4gikoodi plokk, ehk skeem n+1 (n andmeplokki, 1 \u00fclej\u00e4\u00e4gikood). Kasutatakse <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/RAID#RAID_5\">RAID 5<\/a><\/noindex>, kus andmeplokid ja \u00fclej\u00e4\u00e4gikoodid kirjutatakse ts\u00fckliliselt k\u00f5ikidesse ketastesse.<\/li>\n<li>Even-odd algoritm, mis p\u00f5hineb XOR-operatsioonil. Selle abil saab luua 2 \u00fclej\u00e4\u00e4gikoodi plokki, ehk skeem n+2.<\/li>\n<li>STAR algoritm, mis p\u00f5hineb XOR-operatsioonil. Selle abil saab luua 3 \u00fclej\u00e4\u00e4gikoodi plokki, ehk skeem n+3.<\/li>\n<li>Pyramide codes \u2014 veel m\u00f5ned Microsofti \u00fclej\u00e4\u00e4gikoodid.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"5-ispolzovanie-v-yandekse\">5. Kasutamine Yandexis<\/h1>\n<p><\/p>\n<p>Mitmed Yandexi infrastruktuuri projektid kasutavad \u00fclej\u00e4\u00e4gikodeerimist andmete usaldusv\u00e4\u00e4rseks salvestamiseks. Siin on m\u00f5ned n\u00e4ited:<\/p>\n<p><\/p>\n<ul>\n<li>MDS sisemine objektihoidla, millest ma r\u00e4\u00e4kisin artikli alguses.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/311104\/\">YT<\/a><\/noindex> \u2014 Yandexi MapReduce s\u00fcsteem.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=FwLvAuOSIOU\">YDB<\/a><\/noindex> (Yandex DataBase) \u2014 jaotatud newSQL andmebaas.<\/li>\n<\/ul>\n<p><\/p>\n<p>MDS-is kasutatakse LRC \u00fclej\u00e4\u00e4gikoodide skeemi 8-2-2. \u00dclej\u00e4\u00e4gikoodidega andmed kirjutatakse 12 erinevale kettale erinevates serverites 3 erinevas andmekeskuses: igas andmekeskuses 4 serverit. Rohkem infot leiate <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/311806\/\">artiklis<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>YT-s kasutatakse nii Reed-Solomoni koode (skeem 6-3), mis oli esmakordselt ellu viidud, kui ka LRC \u00fcleliigseid koode (skeem 12-2-2), kusjuures LRC on eelistatud salvestamise viis.<\/p>\n<p><\/p>\n<p>YDB-s kasutatakse \u00fcleliigseid koode, mis p\u00f5hinevad even-odd (skeem 4-2). \u00dcleliigsete koodide kohta YDB-s on juba <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=dCpfGJ35kK8\">r\u00e4\u00e4gitud Highloadis.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Erinevate \u00fcleliigsete koodide skeemide rakendamine on tingitud erinevatest n\u00f5udmistest, mida s\u00fcsteemidele esitatakse. N\u00e4iteks MDS-s salvestatakse LRC-ga hallatavad andmed kohe 3 andmekeskusesse. Meile on oluline, et andmed j\u00e4\u00e4ksid lugemiseks k\u00e4ttesaadavaks, kui \u00fcksk\u00f5ik milline andmekeskus eba\u00f5nnestub, seega peavad blokkide jaotamine andmekeskuste vahel olema selline, et \u00fche andmekeskuse mittefunktsioneerimise korral ei \u00fcletaks mittefunktsioneerivate blokkide arv lubatud piiri. Skeemis 8-2-2 saab igas andmekeskuses paigutada 4 bloki, siis on mis tahes andmekeskuse v\u00e4ljal\u00fclitamise korral 4 bloki mittefunktsioneerimist, ja andmed on endiselt loetavad. \u00dcksk\u00f5ik, millist skeemi me valime 3 andmekeskusesse asetamiseks, peab igal juhul olema (r + l) \/ n &gt;= 0,5, st salvestamise \u00fcleliigsus j\u00e4\u00e4b v\u00e4hemalt 50%.<\/p>\n<p><\/p>\n<p>YT-s olukord on teine: iga YT klastri t\u00e4ielik asukoht on 1 andmekeskuses (erinevad klastrid erinevates andmekeskustes), seega pole seal sellist piirangut. Skeem 12-2-2 pakub 33% j\u00e4\u00e4krediteerimist, mis t\u00e4hendab, et andmete salvestamine on odavam, samal ajal kui need suudavad taluda kuni 4 samaaegset ketta v\u00e4ljal\u00fclitamist, nagu ka skeem MDS-i puhul.<\/p>\n<p><\/p>\n<p>Andmete salvestamise ja t\u00f6\u00f6tlemise s\u00fcsteemides on veel palju erip\u00e4ra, mis puudutavad j\u00e4\u00e4krediteerimise koode: andmete taastamise n\u00fcansid, taastamise m\u00f5ju p\u00e4ringute t\u00e4itmise ajale, andmete kirjutamise erip\u00e4ra jne. Kavatseme r\u00e4\u00e4kida eraldi nende ja muude j\u00e4\u00e4krediteerimise koodide praktilise rakendamise erip\u00e4radest, kui teema on huvitav.<\/p>\n<p><\/p>\n<h1 id=\"6-ssylki\">6. Lingid<\/h1>\n<p><\/p>\n<ol>\n<li>Artiklite seeria Reed-Solomoni koodidest ja Galois' v\u00e4ljadest: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yadro\/blog\/336286\/\">https:\/\/habr.com\/ru\/company\/yadro\/blog\/336286\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yadro\/blog\/341506\/\">https:\/\/habr.com\/ru\/company\/yadro\/blog\/341506\/<\/a><\/noindex><br \/>\nNendes k\u00e4sitletakse matemaatikat kergesti arusaadavas keeles.<\/li>\n<li>Microsofti artikkel LRC-st: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2016\/02\/LRC12-cheng20webpage.pdf\">https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2016\/02\/LRC12-cheng20webpage.pdf<\/a><\/noindex><br \/>\nJaotises 2 selgitatakse l\u00fchidalt teooriat, seej\u00e4rel k\u00e4sitletakse LRC praktilist rakendamist.<\/li>\n<li>Even-odd skeem: <noindex><a rel=\"nofollow\" href=\"https:\/\/people.eecs.berkeley.edu\/~kubitron\/courses\/cs262a-F12\/handouts\/papers\/p245-blaum.pdf\">https:\/\/people.eecs.berkeley.edu\/~kubitron\/courses\/cs262a-F12\/handouts\/papers\/p245-blaum.pdf<\/a><\/noindex><\/li>\n<li>STAR skeem: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/legacy\/event\/fast05\/tech\/full_papers\/huang\/huang.pdf\">https:\/\/www.usenix.org\/legacy\/event\/fast05\/tech\/full_papers\/huang\/huang.pdf<\/a><\/noindex><\/li>\n<li>P\u00fcramiidi koodid: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems\/\">https:\/\/www.microsoft.com\/en-us\/research\/publication\/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems\/<\/a><\/noindex><\/li>\n<li>MDS-i j\u00e4\u00e4krediteerimise koodid: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/311806\">https:\/\/habr.com\/ru\/company\/yandex\/blog\/311806<\/a><\/noindex> <\/li>\n<li>YT j\u00e4\u00e4krediteerimise koodid: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/311104\/\">https:\/\/habr.com\/ru\/company\/yandex\/blog\/311104\/<\/a><\/noindex><\/li>\n<li>YDB j\u00e4\u00e4krediteerimise koodid: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=dCpfGJ35kK8\">https:\/\/www.youtube.com\/watch?v=dCpfGJ35kK8<\/a><\/noindex><\/li>\n<\/ol>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/510050\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u041a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438* \u0448\u0438\u0440\u043e\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u042f\u043d\u0434\u0435\u043a\u0441\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u043e\u0432 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0431\u0435\u0437 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e. \u0416\u0435\u043b\u0430\u044e\u0449\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87759,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87758","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u041a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438* \u0448\u0438\u0440\u043e\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u042f\u043d\u0434\u0435\u043a\u0441\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u043e\u0432 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0431\u0435\u0437 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e. \u0416\u0435\u043b\u0430\u044e\u0449\u0438\u0435\" \/>\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\/et\/blog\/administrirovanie\/kody-izbytochnosti-prostymi-slovami-o-tom-kak-nadyozhno-i-dyoshevo-hranit-dannye\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438: \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0434\u0451\u0436\u043d\u043e \u0438 \u0434\u0451\u0448\u0435\u0432\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u041a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438* \u0448\u0438\u0440\u043e\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u042f\u043d\u0434\u0435\u043a\u0441\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u043e\u0432 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0431\u0435\u0437 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e. \u0416\u0435\u043b\u0430\u044e\u0449\u0438\u0435\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kody-izbytochnosti-prostymi-slovami-o-tom-kak-nadyozhno-i-dyoshevo-hranit-dannye\" \/>\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=\"2020-07-09T23:41:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-09T23:41:58+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\udd47Liigsed koodid: lihtsate s\u00f5nadega sellest, kuidas andmeid usaldusv\u00e4\u00e4rselt ja odavalt hoida | ProHoster","description":"Nii n\u00e4evad v\u00e4lja liigsed koodid. Liigsete koodide kasutamine on laialt levinud arvutis\u00fcsteemides, et suurendada andmete s\u00e4ilitamise usaldusv\u00e4\u00e4rsust. Yandexis kasutatakse neid paljudes projektides. N\u00e4iteks, liigsete koodide rakendamine meie sisemises objektihoidlas kulutab miljonite v\u00f5rra v\u00e4hem raha ilma usaldusv\u00e4\u00e4rsuse v\u00e4henemiseta. Kuid vaatamata laialdasele kasutusele, esineb arusaadavat seletust selle kohta, kuidas liigsed koodid t\u00f6\u00f6tavad, harva. Soovijatele","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kody-izbytochnosti-prostymi-slovami-o-tom-kak-nadyozhno-i-dyoshevo-hranit-dannye","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438: \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0434\u0451\u0436\u043d\u043e \u0438 \u0434\u0451\u0448\u0435\u0432\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 | ProHoster","og:description":"\u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u041a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438* \u0448\u0438\u0440\u043e\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u042f\u043d\u0434\u0435\u043a\u0441\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u043e\u0432 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0431\u0435\u0437 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043a\u043e\u0434\u044b \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e. \u0416\u0435\u043b\u0430\u044e\u0449\u0438\u0435","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kody-izbytochnosti-prostymi-slovami-o-tom-kak-nadyozhno-i-dyoshevo-hranit-dannye","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":"2020-07-09T23:41:58+00:00","article:modified_time":"2020-07-09T23:41:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87758","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:44:06","updated":"2022-09-29 13:02:43"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/87758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=87758"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/87758\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/87759"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=87758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=87758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=87758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}