Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Tani waa sida shaqo-joojintu u egtahay

Koodhadhka dib-u-celinta * ayaa si weyn loogu isticmaalaa nidaamyada kombiyuutarada si loo kordhiyo kalsoonida kaydinta xogta. In Yandex waxaa loo isticmaalaa mashaariic badan. Tusaale ahaan, adeegsiga lambarrada dib-u-celinta halkii aad ku cusboonaysiin lahayd kaydinta shayga gudaha waxa ay badbaadisaa malaayiin iyada oo aan la hurayn isku halaynta. Laakiin inkasta oo isticmaalkooda baahsani yahay, sharraxaad cad oo ku saabsan sida koodhadhka shaqo-joojinta u shaqeeyaan aad bay dhif u yihiin. Kuwa doonaya inay fahmaan waxa ay wajahayaan ku dhawaad ​​kuwan soo socda (laga bilaabo Wikipedia):

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Magacaygu waa Vadim, Yandex waxaan ku horumarinayaa kaydinta walxaha gudaha ee MDS. Maqaalkan, waxaan ku sifayn doonaa ereyo fudud aasaaska aragtida ee codes shaqo-ka-soo-noqoshada ( codes Reed-Solomon iyo LRC). Waxaan kuu sheegi doonaa sida ay u shaqeyso, iyada oo aan lahayn xisaab adag iyo ereyo naadir ah. Dhamaadka waxaan ku siin doonaa tusaalooyin ku saabsan isticmaalka koodhadhka shaqada ee Yandex.

Si faahfaahsan ugama tixgalin doono tiro tafaasiil xisaabeed ah, laakiin waxa aan siin doonaa isku xidhka kuwa doonaya in ay si qoto dheer u quustaan. Waxa kale oo aan xusi doonaa in qeexitaannada xisaabta qaarkood aanay noqon kuwo adag, maadaama maqaalku aan loogu talogelin xisaabyahannada, balse loogu talogalay injineerrada doonaya inay fahmaan nuxurka arrinta.

* Suugaanta luqadda Ingiriisiga, furayaasha dib-u-celinta waxaa badanaa loogu yeeraa codes erasure.

1. Nuxurka koodhadhka shaqo-joojinta

Nuxurka dhammaan codsiyada dib-u-celinta waa mid aad u fudud: kaydi (ama gudbi) xogta si aanay u lumin marka khaladaadku dhacaan (qallada diskka, khaladaadka wareejinta xogta, iwm.).

Inta badan * codes dib-u-celinta, xogta waxaa loo qaybiyaa n xogta blocks, kuwaas oo m blocks codes shaqo-ka-soo-noqoshada la tiriyo, taasoo keentay wadar ahaan n + m blocks. Koodhadhka dib-u-celinta waxaa loo dhisay qaab n blocks xogta lagu soo ceshan karo iyadoo la isticmaalayo kaliya qayb n + m blocks. Marka xigta, waxaanu tixgelin doonaa oo kaliya xannibaadda koodhka dib-u-celinta, taas oo ah, kuwa xogta loo qaybiyo blocks.

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Si aad u soo kabsato dhammaan xogta n, waxaad u baahan tahay inaad haysato ugu yaraan n of n + m blocks, maadaama aadan heli karin n blocks adigoo haysta kaliya n-1 block (kiiskan, waa inaad ka qaadaa 1 blocks "ka baxsan khafiifka ah). hawada"). N + m blocks ma yihiin kuwo ku filan inay soo ceshadaan dhammaan xogta? Tani waxay kuxirantahay nooca codes dib-u-celinta, tusaale ahaan, code-yada Reed-Solomon waxay kuu oggolaanayaan inaad dib u soo ceshato dhammaan xogta adoo isticmaalaya n blocks, laakiin koodhadhka dib-u-celinta LRC had iyo jeer maaha.

Kaydinta xogta

Nidaamyada kaydinta xogta, sida caadiga ah, mid kasta oo ka mid ah xannibaadaha xogta iyo xannibaadaha koodhka dib u celinta waxaa lagu qoraa saxan gaar ah. Kadib, haddii disk gardarro ah uu ku guuldareysto, xogta asalka ah weli waa la soo celin karaa oo la akhriyi karaa. Xogta waa la soo celin karaa xitaa haddii dhowr saxanadood isku mar fashilmaan.

Gudbinta Xogta

Koodhadhka dib-u-celinta waxaa loo isticmaali karaa in si kalsooni leh loogu gudbiyo xogta shabakad aan la isku halayn karin. Xogta la gudbiyo waxaa loo qaybiyaa baloogyo, waxaana loo xisaabiyaa koodhadhka dib-u-celinta. Xirmooyinka xogta iyo baloogyada koodhka dib-u-celinta labadaba waxaa lagu kala qaadaa shabakada. Haddi ay khaladaad ka dhacaan baloogyada (ilaa tiro go'an oo blocks ah), xogta wali waxa lagu gudbin karaa shabakada khalad la'aan. Koodadka Reed-Solomon, tusaale ahaan, waxaa loo isticmaalaa in lagu gudbiyo xogta khadadka isgaarsiinta indhaha iyo isgaarsiinta satalaytka.

* Waxa kale oo jira codes dib-u-celin ah oo aan xogta loo qaybin blocks, sida Hamming codes iyo codes CRC, kuwaas oo si weyn loogu isticmaalo gudbinta xogta shabakadaha Ethernet. Kuwani waa codes loogu talagalay sixitaanka koodka, waxaa loogu talagalay in lagu ogaado khaladaadka, oo aan ahayn in la saxo ( code Hamming sidoo kale wuxuu ogolaanayaa sixitaanka qayb ka mid ah khaladaadka).

2. codes Reed-Solomon

Koodhadhka Reed-Solomon waa mid ka mid ah koodhadhka dib-u-celinta ee aadka loo isticmaalo, oo la ikhtiraacay 1960-meeyadii oo markii ugu horreysay si ballaaran loo isticmaalay 1980-meeyadii si loo soo saaro tiro badan oo saxannada is haysta.

Waxaa jira laba su'aalood oo muhiim ah oo lagu fahmo codes-ka Reed-Solomon: 1) sida loo abuuro blocks codes shaqo-ka-reebis; 2) sida loo soo kabsado xogta iyadoo la isticmaalayo blocks code redundancy. Aynu jawaabo u helno.
Si ay u fududaato, waxaan u qaadan doonaa in n=6 iyo m=4. Nidaamyada kale waxaa lagu tixgaliyaa isbarbardhig.

Sida loo abuuro blocks code dib-u-celinta

Qayb kasta oo ka mid ah koodka shaqo-ka-reebista waxa loo tiriyaa si ka madax bannaan kuwa kale. Dhammaan blocksyada xogta waxaa loo isticmaalaa in lagu tiriyo baloog kasta. Jaantuska hoose, X1-X6 waa blocks xog, P1-P4 waa blocks code-ka shaqada.

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Dhammaan baloogyada xogta waa inay ahaadaan cabbir isku mid ah, eber-bitsna waxaa loo isticmaali karaa isku toosinta. Natiijadu waxay noqon doontaa blocks code dib-u-celinta waxay la mid noqonayaan blocks xogta. Dhammaan xirmooyinka xogta waxaa loo qaybiyaa erayo (tusaale ahaan, 16 bits). Aynu nidhaahno waxa aynu u kala qaybinay blocks-ka xogta una kala qaybinay kelmado k. Kadibna dhammaan baloogyada koodhadhka dib-u-celinta ayaa sidoo kale loo qaybin doonaa ereyada k.

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Si loo tiriyo erayga i-th ee xannibaad kasta, erayada i-th ee dhammaan blocksyada xogta ayaa la isticmaali doonaa. Waxaa loo xisaabin doonaa qaabkan soo socda:

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Halkan qiyamka x waa ereyada xogta blocks, p waa ereyada xannibaadaha koodhka dib-u-celinta, dhammaan alfa, beta, gamma iyo delta waa lambaro si gaar ah loo doortay oo isku mid ah dhammaan i. Waa in isla markiiba la sheegaa in dhammaan qiyamkaani aysan ahayn tirooyin caadi ah, laakiin xubno ka mid ah goobta Galois; hawlgallada +, -, *, / ma aha hawlgallo aan naqaanno dhammaanteen, laakiin hawlgallada gaarka ah ee lagu soo bandhigay walxaha Galois beerta.

Waa maxay sababta beeraha Galois loogu baahan yahay?

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Waxay u egtahay in wax walba ay fudud yihiin: waxaan u kala qaybineynaa xogta blocks, blocks-ka ereyada, adoo isticmaalaya erayada blocks xogta waxaan tirinaa erayada xannibaadaha koodhka dib-u-celinta - waxaan helnaa xirmooyinka koodhka dib-u-celinta. Guud ahaan tani waa sida ay u shaqeyso, laakiin shaydaanku waa tafaasiisha:

  1. Sida kor ku xusan, cabbirka ereyga waa mid go'an, tusaale ahaan 16 bits. Hababka sare ee codes Reed-Solomon waa sida marka la isticmaalayo tirooyin caadi ah, natiijada xisaabinta p waxaa laga yaabaa in aan la matali karin iyadoo la isticmaalayo kelmad cabbir sax ah.
  2. Marka dib loo soo kabsado xogta, hababka kor ku xusan waxaa loo tixgalin doonaa sida nidaamka isla'egta in ay tahay in la xaliyo si loo soo kabsado xogta. Inta lagu jiro habka xalka, waxaa laga yaabaa inay lagama maarmaan noqoto in la kala qaybiyo midba midka kale, taas oo keenta tiro dhab ah oo aan si sax ah loogu matali karin xusuusta kombiyuutarka.

Dhibaatooyinkan ayaa ka hortagaya isticmaalka lambarada ee code-yada Reed-Solomon. Xalka dhibku waa asal, waxaa lagu tilmaami karaa sidan soo socota: aan la nimaadno tirooyin gaar ah oo lagu matali karo ereyada dhererka loo baahan yahay (tusaale, 16 bits), iyo natiijada fulinta dhammaan hawlgallada kuwaas oo (dheeraad ah). , kala-goynta, isku-dhufashada, qaybinta) waxa kale oo lagu soo bandhigi doonaa xusuusta kombayutarka iyadoo la isticmaalayo erayo dhererka loo baahan yahay.

Nambarada noocan oo kale ah "gaar ah" waxaa lagu baranayay xisaabta muddo dheer, waxaana loo yaqaan 'fields'. Goobtu waa unugyo isku dhafan oo leh hawlgallo isku-dar, kala-goyn, isku-dhufasho iyo qaybin iyaga loo qeexay.

Beeraha Galois* waa beero ay jirto natiijo gaar ah oo qalliin kasta (+, -, *, /) ee labada walxood ee goobta. Beeraha Galois waxaa loo dhisi karaa nambarada awoodaha 2: 2, 4, 8, 16, iwm. Tusaale ahaan, ereyada 2-bit, tani waa goob ka kooban 16 curiye, lammaane kasta oo aad ka heli karto natiijada qalliin kasta (+, -, *, /). Qiimaha x, p, alfa, beta, gamma, delta ee isla'egyada kore waxa loo tixgalin doonaa qaybaha goobta Galois ee xisaabinta.

Sidaa darteed, waxaan leenahay nidaam isla'egyo ah oo aan ku dhisi karno blocks codes dib-u-celinta annaga oo qoraya barnaamij kombuyuutar ku habboon. Isticmaalka isla nidaamka isla'egyada, waxaad samayn kartaa soo kabashada xogta.

* Tani maaha qeexid adag, laakiin waa sharaxaad.

Sida loo soo kabsado xogta

Soo celinta ayaa loo baahan yahay marka qaar ka mid ah n + m blocks maqan yihiin. Kuwani waxay noqon karaan labadaba xogta blocks iyo blocks code-ka-celinta. Maqnaanshaha xannibaadaha xogta iyo/ama xannibaadaha koodhka dib-u-celinta waxay ka dhigan tahay in doorsoomayaasha x iyo/ama p ee u dhiganta aan lagu aqoon isla'egyada kore.

Isla'egyada codes-ka Reed-Solomon waxaa loo arki karaa inay yihiin nidaam isla'eg kuwaas oo dhammaan alfa, beta, gamma, delta qiyamka ay yihiin joogto, dhammaan x iyo p u dhiganta blocks la heli karo waa doorsoomayaal la yaqaan, iyo x iyo p haray. lama yaqaan.

Tusaale ahaan, xogta blocks 1, 2, 3 iyo redundancy code block 2 ha ahaato mid aan la heli karin, ka dib kooxda i-th ee erayada waxaa jiri doona nidaamka soo socda ee isla'egta (aan la garanayn ayaa lagu calaamadeeyay casaan):

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Waxaan leenahay nidaam 4 isla'eg oo leh 4 aan la garanayn, taas oo macnaheedu yahay inaan xallin karno oo aan soo celin karno xogta!

Nidaamkan isla'egta waxaa la socda dhowr gunaanad oo ku saabsan soo kabashada xogta codes Reed-Solomon (n data blocks, m blocks code redundancy):

  • Xogta waa la soo celin karaa haddii m blocks ama ka yar la waayo. Haddii m+1 ama blocks ka badan ay lumaan, xogta lama soo celin karo: suurtagal maaha in la xalliyo nidaamka isla'egyada m + 1 aan la garanayn.
  • Si loo soo celiyo xitaa hal baloog xogta, waxaad u baahan tahay inaad isticmaasho n kasta oo ka mid ah baloogyada soo haray, waxaadna isticmaali kartaa mid kasta oo ka mid ah koodka shaqada.

Maxaa kale oo aad u baahan tahay inaad ogaato

Sharaxaadda kore, waxaan ka fogaanayaa dhowr arrimood oo muhiim ah oo u baahan in si qoto dheer loo geliyo xisaabta si loo tixgeliyo. Gaar ahaan, anigu waxba kama odhanayo arrimaha soo socda:

  • Nidaamka isla'egta ee codes-ka Reed-Solomon waa in uu lahaadaa (gaar ah) xal isku-dhafka ah ee aan la garanayn (aan ka badnayn m aan la garanayn). Iyada oo ku saleysan shuruudahan, qiyamka alfa, beta, gamma iyo delta ayaa la doortay.
  • Nidaamka isla'egta waa in si toos ah loo dhisi karaa (iyadoo ku xiran baloogyada aan la heli karin) oo la xalliyo.
  • Waxaan u baahanahay inaan dhisno garoon Galois ah: cabirka ereyga la siiyay, awood u yeelo inaan helno natiijada qalliin kasta (+, -, *, /) laba walxood kasta.

Dhammaadka maqaalka waxaa jira tixraacyo ku saabsan suugaanta arrimahan muhiimka ah.

Doorashada n iyo m

Sidee loo doortaa n iyo m ficil ahaan? Ficil ahaan, nidaamyada kaydinta xogta, codes dib-u-celinta ayaa loo isticmaalaa si loo badbaadiyo meel bannaan, markaa m ayaa had iyo jeer la doortaa wax ka yar n. Qiimahooda gaarka ah waxay ku xiran yihiin dhowr arrimood, oo ay ku jiraan:

  • Kalsoonida kaydinta xogta M ka weyn yahay, tirada weyn ee tirada disc failure ee la badbaadin karo, taas oo ah, sarraysa kalsoonida.
  • kaydinta xad dhaafka ah. Mar kasta oo uu sareeyo saamiga m/n, waxa sii badanaya kaydinta kaydinta, iyo qaaliga nidaamka ayaa noqon doona.
  • Codso wakhtiga habaynta Inta uu bato wadarta n + m, waa sii dheeraanaysaa wakhtiga jawaabta codsiyada. Maadaama xogta akhrinta (inta lagu jiro soo kabashada) ay u baahan tahay akhrinta n blocks ee ku kaydsan saxannada kala duwan, wakhtiga akhrinta waxaa lagu go'aamin doonaa saxanka ugu gaabis ah.

Intaa waxaa dheer, kaydinta xogta dhowr DCs waxay ku soo rogtay xaddidaadyo dheeraad ah doorashada n iyo m: haddii 1 DC la damiyo, xogta waa inay weli diyaar u tahay akhriska. Tusaale ahaan, marka lagu kaydinayo xogta 3 DCs, shuruudaha soo socda waa in la buuxiyaa: m >= n/2, haddii kale waxaa jiri kara xaalad aan xogta la heli karin marka 1 DC la damiyo.

3. LRC - Xeerarka dib u dhiska deegaanka

Si aad u soo kabsato xogta isticmaalaya codes Reed-Solomon, waa in aad isticmaasho n blocks xogta sabab la'aan ah. Tani waxay faa'iido weyn u tahay nidaamyada kaydinta xogta ee la qaybiyey, sababtoo ah si loo soo celiyo xogta hal disk jaban, waa inaad akhrido xogta inta badan kuwa kale, abuurista culeys dheeraad ah oo dheeraad ah oo ku saabsan saxanadaha iyo shabakada.

Khaladaadka ugu badan ayaa ah helid la'aanta hal baloog oo xogta ah taas oo ay ugu wacan tahay cillad ama culeyska hal disk. Suurtagal ma tahay in si uun loo yareeyo culeyska xad-dhaafka ah ee soo kabashada xogta kiiskan (ugu badan)? Waxaa soo baxday in ay suurtagal tahay: waxaa jira xeerar shaqo-ka-carin LRC oo gaar ahaan ujeeddadan.

LRC ( Xeerarka Dib-u-dhiska Maxaliga ah) waa koodka dib-u-dhiska ee Microsoft ay ikhtiraacday si loogu isticmaalo Kaydinta Azure Windows. Fikradda LRC waa sida ugu fudud ee suurtogalka ah: U qaybi dhammaan blocksyada xogta laba (ama ka badan) koox oo si gaar ah u akhri qayb ka mid ah xirmooyinka koodhka shaqada ee koox kasta. Kadibna qaar ka mid ah blocks code dib-u-celinta ayaa la tirin doonaa iyadoo la isticmaalayo dhammaan xogta xogta (LRC waxaa lagu magacaabaa codes shaqo-ka-celinta caalamiga ah), iyo qaar - iyadoo la adeegsanayo mid ka mid ah labada kooxood ee xogta blocks (waxaa loo yaqaannaa koodka dib-u-celinta maxalliga ah).

LRC waxaa lagu tilmaamaa saddex lambar: nrl, halka n ay tahay tirada blocks xogta, r waa tirada xannibaadaha koodhka dib u celinta caalamiga ah, l waa tirada blocks code dib u celinta. Si aad u akhrido xogta marka hal kayd xog ah la waayo, waxaad u baahan tahay inaad akhrido kaliya n/l blocks - tani waa l jeer ka yar marka loo eego koodka Reed-Solomon.

Tusaale ahaan, tixgeli nidaamka LRC 6-2-2. X1–X6 β€” 6 blocks data, P1, P2 β€” 2 blocks redundancy international blocks, P3, P4 β€” 2 blocks redundancy local blocks.

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Koodhka dib u celinta P1, P2 waxaa lagu tiriyaa iyadoo la isticmaalayo dhammaan xogta blocks. Koodhka dib u celinta P3 - iyada oo la adeegsanayo blocks xogta X1-X3, koodhka dib u celinta P4 - iyada oo la adeegsanayo blocks xogta X4-X6.

Inta soo hartay waxaa lagu sameeyaa LRC iyadoo la barbardhigayo code-yada Reed-Solomon. Isla'egyada tirinta ereyada koodka dib-u-celinta waxay noqon doonaan:

Koodhadhka dib-u-celinta: ereyo fudud oo ku saabsan sida loo kaydiyo xogta si la isku halleyn karo oo jaban

Si loo doorto tirooyinka alfa, beta, gamma, delta, shuruudo dhowr ah waa in la buuxiyaa si loo dammaanad qaado suurtagalnimada soo kabashada xogta (taas oo ah, xallinta nidaamka isla'egta). Waxaad wax badan oo iyaga ku saabsan ka akhriyi kartaa gudaha maqaal.
Sidoo kale ficil ahaan, hawlgalka XOR waxaa loo isticmaalaa in lagu xisaabiyo koodhadhka shaqo-joojinta deegaanka P3, P4.

Dhawr gabagabo ah ayaa ka socda nidaamka isla'egta LRC:

  • Si aad u soo kabsato 1 block oo xog ah, waa ku filan inaad akhrido n/l blocks (n/2 tusaale ahaan).
  • Haddii r + l blocks aan la heli karin, oo dhammaan baloogyada lagu daray hal koox, markaa xogta lama soo celin karo. Tani way fududahay in lagu sharaxo tusaale. U ogolow blocks X1-X3 iyo P3 lama heli karo: kuwani waa baloogyada r + l ee isla koox, 4 xaaladdeena. Markaa waxaan leenahay nidaam ah 3 isla'eg oo leh 4 aan la garanayn oo aan la xallin karin.
  • Dhammaan kiisaska kale ee la'aanta r ​​+ l blocks (marka ugu yaraan hal baloog laga helo koox kasta), xogta ku jirta LRC waa la soo celin karaa.

Markaa, LRC waxay ka sarraysaa koodhka Reed-Solomon ee soo kabashada xogta ka dib khaladaad keli ah. Codsiyada Reed-Solomon, si aad u soo ceshato xitaa hal baloog oo xog ah, waxaad u baahan tahay inaad isticmaasho n blocks, iyo LRC, si aad u soo ceshato hal baloog oo xog ah, waa ku filan inaad isticmaasho n/l blocks (n/2 tusaale ahaan). Dhanka kale, LRC way ka hoosaysaa koodka Reed-Solomon marka loo eego tirada ugu badan ee khaladaadka la ogol yahay. Tusaalooyinka kore, code-yada Reed-Solomon waxay soo ceshan karaan xogta 4 qalad kasta, LRC-na waxaa jira 2 isku-dar ah 4 khalad marka xogta aan la soo celin karin.

Waxa ka muhiimsan waxay ku xiran tahay xaaladda gaarka ah, laakiin badiyaa kaydka rarka xad dhaafka ah ee ay LRC bixiso ayaa ka miisaan badan kaydinta la isku halleyn karo oo yara yar.

4. Xeerarka kale ee shaqo joojinta

Marka laga soo tago codes Reed-Solomon iyo LRC, waxaa jira nambaro kale oo badan oo shaqo joojin ah. Xeerarka dib-u-celinta ee kala duwan waxay isticmaalaan xisaabo kala duwan. Waa kuwan qaar ka mid ah koodhadhka dib-u-celinta:

  • Koodhka dib u celinta iyadoo la isticmaalayo hawlwadeenka XOR. Hawlgalka XOR waxa lagu sameeyaa n blocks xogta, waxaana la helay 1 block of codes dib u dhigista, taas oo ah, nidaamka n+1 (n data blocks, 1 redundancy code). Lagu dhex isticmaalo RAID 5, halkaas oo blocks of xogta iyo codes dib-u-celinta si meerto ah loogu qoro dhammaan saxannada habraaca.
  • Algorithm-ka aan caadi ahayn ee ku salaysan hawlgalka XOR. Waxay kuu ogolaanaysaa inaad dhisto 2 baloog oo codes dib-u-celin ah, taas oo ah, nidaamka n+2.
  • STAR algorithm oo ku salaysan hawlgalka XOR. Waxay kuu ogolaanaysaa inaad dhisto 3 baloog oo codes dib-u-celin ah, taas oo ah, nidaamka n+3.
  • Koodhadhka Pyramide waa koodhadh kale oo shaqo joojin ah oo ka yimid Microsoft.

5. Ku isticmaal Yandex

Tiro ka mid ah mashaariicda kaabayaasha Yandex ayaa adeegsada koodka dib-u-celinta kaydinta xogta la isku halayn karo. Waa kuwan tusaalayaal:

  • Kaydinta shayga gudaha ee MDS, oo aan ku qoray bilawga maqaalka.
  • YT - Khariidadda dhimista nidaamka Yandex.
  • YDB (Yandex DataBase) - xogta cusub ee SQL qaybisay.

MDS waxay isticmaashaa koodka dib-u-celinta LRC, 8-2-2. Xogta leh codes dib-u-celinta waxaa loo qoraa 12 saxan oo kala duwan oo ku jira servero kala duwan 3 DC oo kala duwan: 4 server ee DC kasta. Wax badan oo arrintan ku saabsan ka akhri gudaha maqaal.

YT waxay isticmaashaa labada codes ee Reed-Solomon (Scheme 6-3), kuwaas oo ahaa kuwii ugu horreeyay ee la hirgeliyo, iyo koodhadhka dib-u-celinta LRC (Scheme 12-2-2), iyadoo LRC ay tahay habka kaydinta ee doorbiday.

YDB waxay isticmaashaa koodhadhka dib-u-celinta ku salaysan xitaa-khafiifka ah (Jaantuska 4-2). Ku saabsan koodka dib-u-celinta ee YDB mar hore ayaa lagu sheegay Highload.

Isticmaalka nidaamyada koodhka dib-u-celinta ee kala duwan waxaa sabab u ah shuruudaha kala duwan ee nidaamyada. Tusaale ahaan, gudaha MDS, xogta lagu kaydiyo iyadoo la isticmaalayo LRC waxaa lagu meeleeyaa 3 DC hal mar. Waxaa muhiim noo ah in xogta aan la heli karo si loo akhriyo haddii 1 ka mid ah DC-yada ay ku guuldareystaan, sidaas darteed baloogyada waa in loo qaybiyaa DC-yada si haddii DC mid ka mid ah aan la heli karin, tirada blocks aan la heli karin waa wax ka badan la oggol yahay. Nidaamka 8-2-2, waxaad ku dhejin kartaa 4 baloog DC kasta, ka dib marka DC kasta la damiyo, 4 blocks lama heli doono, xogtana waa la akhrin karaa. Nidaam kasta oo aan doorano marka aan ku dhejineyno 3 DCs, kiis kasta waa inuu jiraa (r + l) / n> = 0,5, taas oo ah, dib-u-celinta kaydinta waxay noqon doontaa ugu yaraan 50%.

YT xaaladdu way ka duwan tahay: koox kasta oo YT ah waxay ku taal gebi ahaan 1 DC (kooxaha kala duwan ee DC-yada kala duwan), markaa ma jiro xayiraad noocaas ah halkaas. Nidaamka 12-2-2 wuxuu bixiyaa 33% dib-u-celin, taas oo ah, kaydinta xogtu way ka jaban tahay, waxayna sidoo kale ku noolaan kartaa ilaa 4 go'do disk oo isku mar ah, sida nidaamka MDS.

Waxaa jira sifooyin badan oo dheeraad ah oo ku saabsan isticmaalka codes dib u kaydinta xogta iyo hababka processing: nuucyada soo kabashada xogta, saamaynta soo kabashada on wakhtiga fulinta su'aal, muuqaalada duubo xogta, iwm. Waxaan si gaar ah ugala hadli doonaa kuwan iyo sifooyinka kale ee isticmaalka. Xeerarka shaqo-joojinta ee ficil ahaan, haddii mawduucu uu noqon doono mid xiiso leh.

6. Xiriirinta

  1. Maqaallo taxane ah oo ku saabsan koodhadhka Reed-Solomon iyo goobaha Galois: https://habr.com/ru/company/yadro/blog/336286/
    https://habr.com/ru/company/yadro/blog/341506/
    Waxay si qoto dheer u eegaan xisaabta luqadda la heli karo.
  2. Maqaalka Microsoft ee ku saabsan LRC: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/LRC12-cheng20webpage.pdf
    Qaybta 2 ayaa si kooban u sharraxaysa aragtida ka dibna ka hadlaysa waayo-aragnimada LRC ficil ahaan.
  3. Nidaam aan caadi ahayn: https://people.eecs.berkeley.edu/~kubitron/courses/cs262a-F12/handouts/papers/p245-blaum.pdf
  4. Qorshaha STAR: https://www.usenix.org/legacy/event/fast05/tech/full_papers/huang/huang.pdf
  5. Koodhadhka Ahraamta: https://www.microsoft.com/en-us/research/publication/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems/
  6. Koodhadhka dib-u-celinta ee MDS: https://habr.com/ru/company/yandex/blog/311806
  7. Koodhadhka dib-u-celinta ee YT: https://habr.com/ru/company/yandex/blog/311104/
  8. Koodhadhka dib-u-celinta ee YDB: https://www.youtube.com/watch?v=dCpfGJ35kK8

Source: www.habr.com

Add a comment