Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Hivi ndivyo redundancy inavyoonekana

Nambari za kutokuwepo tena zinatumika sana katika mifumo ya kompyuta ili kuongeza uaminifu wa hifadhi ya data. Katika Yandex hutumiwa katika miradi mingi. Kwa mfano, kutumia misimbo ya kutokuwa na uwezo badala ya kunakiliwa katika hifadhi yetu ya kifaa cha ndani huokoa mamilioni bila kuacha kutegemewa. Lakini licha ya matumizi yao yaliyoenea, maelezo wazi ya jinsi misimbo ya upunguzaji kazi inavyofanya kazi ni nadra sana. Wale wanaotaka kuelewa wanakabiliwa na takriban yafuatayo (kutoka Wikipedia):

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Jina langu ni Vadim, huko Yandex ninatengeneza MDS ya uhifadhi wa kitu cha ndani. Katika makala hii, nitaelezea kwa maneno rahisi misingi ya kinadharia ya kanuni za upunguzaji (Reed-Solomon na LRC codes). Nitakuambia jinsi inavyofanya kazi, bila hisabati ngumu na masharti adimu. Mwishoni nitatoa mifano ya kutumia nambari za redundancy katika Yandex.

Sitazingatia idadi ya maelezo ya hisabati kwa undani, lakini nitatoa viungo kwa wale ambao wanataka kupiga mbizi zaidi. Pia nitatambua kwamba baadhi ya ufafanuzi wa hisabati hauwezi kuwa mkali, kwa kuwa makala hiyo haikusudiwa kwa wanahisabati, lakini kwa wahandisi ambao wanataka kuelewa kiini cha suala hilo.

* Katika fasihi ya lugha ya Kiingereza, misimbo ya kutokuwa na uwezo mara nyingi huitwa misimbo ya kufuta.

1. Kiini cha kanuni za upunguzaji kazi

Kiini cha nambari zote za uondoaji ni rahisi sana: kuhifadhi (au kusambaza) data ili isipotee wakati makosa yanapotokea (kushindwa kwa diski, makosa ya uhamisho wa data, nk).

Katika misimbo mingi ya* upunguzaji wa data, data imegawanywa katika vizuizi vya data n, ambavyo vizuizi vya m vya misimbo ya urejeshaji huhesabiwa, na kusababisha jumla ya n + m vitalu. Nambari za kutokuwepo tena zinaundwa kwa njia ambayo n vitalu vya data vinaweza kurejeshwa kwa kutumia sehemu tu ya vizuizi vya n + m. Ifuatayo, tutazingatia tu kuzuia nambari za upunguzaji, yaani, zile ambazo data imegawanywa katika vizuizi.

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Ili kurejesha vizuizi vyote vya data, unahitaji kuwa na angalau n ya n + m vitalu, kwani huwezi kupata vizuizi vya n kwa kuwa na n-1 tu (katika kesi hii, itabidi uchukue kizuizi 1 "nje ya nyembamba. hewa"). Vizuizi vya n + m bila mpangilio vinatosha kurejesha data yote? Hii inategemea aina ya misimbo ya uondoaji, kwa mfano, misimbo ya Reed-Solomon hukuruhusu kurejesha data yote kwa kutumia vizuizi vya n kiholela, lakini misimbo ya upunguzaji wa LRC haifanyiki kila wakati.

Uhifadhi wa data

Katika mifumo ya uhifadhi wa data, kama sheria, kila moja ya vizuizi vya data na vizuizi vya upunguzaji wa nambari huandikwa kwa diski tofauti. Kisha, ikiwa diski ya kiholela inashindwa, data ya awali bado inaweza kurejeshwa na kusoma. Data inaweza kurejeshwa hata ikiwa diski kadhaa zitashindwa kwa wakati mmoja.

Uhamisho wa data

Nambari za upunguzaji wa data zinaweza kutumika kusambaza data kwa uaminifu kwenye mtandao usiotegemewa. Data iliyopitishwa imegawanywa katika vizuizi, na nambari za upunguzaji huhesabiwa kwao. Vizuizi vya data na vizuizi vya msimbo wa upunguzaji wa data hupitishwa kwenye mtandao. Ikiwa makosa hutokea katika vitalu vya kiholela (hadi idadi fulani ya vitalu), data bado inaweza kupitishwa kwenye mtandao bila hitilafu. Nambari za Reed-Solomon, kwa mfano, hutumiwa kusambaza data kupitia njia za mawasiliano ya macho na katika mawasiliano ya setilaiti.

* Pia kuna misimbo ya kupunguza matumizi ambayo data haijagawanywa katika vizuizi, kama vile misimbo ya Hamming na misimbo ya CRC, ambayo hutumiwa sana kwa utumaji data katika mitandao ya Ethaneti. Hizi ni misimbo za kusahihisha makosa, zimeundwa kugundua makosa, na sio kuzirekebisha (msimbo wa Hamming pia inaruhusu urekebishaji wa makosa).

2. Reed-Solomon codes

Nambari za Reed-Solomon ni mojawapo ya misimbo inayotumika sana ya upunguzaji kazi, iliyovumbuliwa miaka ya 1960 na ya kwanza kutumika sana katika miaka ya 1980 kwa ajili ya utengenezaji wa diski kompakt kwa wingi.

Kuna maswali mawili muhimu ya kuelewa misimbo ya Reed-Solomon: 1) jinsi ya kuunda vizuizi vya misimbo ya uondoaji; 2) jinsi ya kurejesha data kwa kutumia vizuizi vya nambari za upunguzaji. Wacha tupate majibu kwao.
Kwa unyenyekevu, tutafikiria zaidi kuwa n=6 na m=4. Miradi mingine inazingatiwa kwa mlinganisho.

Jinsi ya kuunda vizuizi vya msimbo wa upunguzaji

Kila kizuizi cha misimbo ya uondoaji huhesabiwa bila ya wengine. Vitalu vyote vya n data hutumiwa kuhesabu kila kizuizi. Katika mchoro hapa chini, X1-X6 ni vizuizi vya data, P1-P4 ni vizuizi vya msimbo wa redundancy.

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Vitalu vyote vya data lazima viwe na ukubwa sawa, na biti sifuri zinaweza kutumika kwa upatanishi. Vizuizi vya msimbo wa upunguzaji wa matokeo vitakuwa sawa na vizuizi vya data. Vitalu vyote vya data vinagawanywa kwa maneno (kwa mfano, bits 16). Wacha tuseme tunagawanya vizuizi vya data kuwa k maneno. Kisha vizuizi vyote vya nambari za upunguzaji wa kazi pia vitagawanywa katika maneno k.

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Ili kuhesabu neno la i-th la kila kizuizi cha upungufu, maneno ya i-th ya vizuizi vyote vya data yatatumika. Watahesabiwa kulingana na formula ifuatayo:

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Hapa maadili \ x ni maneno ya vizuizi vya data, p ni maneno ya vizuizi vya upunguzaji wa nambari, alpha, beta, gamma na delta zote ni nambari zilizochaguliwa maalum ambazo ni sawa kwa i. Inapaswa kusemwa mara moja kwamba maadili haya yote sio nambari za kawaida, lakini vipengele vya uwanja wa Galois; shughuli +, -, *, / sio shughuli zinazojulikana kwetu sote, lakini shughuli maalum zilizoletwa kwenye vipengele vya Galois. shamba.

Kwa nini mashamba ya Galois yanahitajika?

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Inaweza kuonekana kuwa kila kitu ni rahisi: tunagawanya data katika vitalu, vitalu kwa maneno, kwa kutumia maneno ya vitalu vya data tunahesabu maneno ya vitalu vya kanuni za upunguzaji - tunapata vitalu vya kanuni za upunguzaji. Kwa ujumla hivi ndivyo inavyofanya kazi, lakini shetani yuko katika maelezo:

  1. Kama ilivyoelezwa hapo juu, ukubwa wa neno umewekwa, kwa mfano wetu 16 bits. Fomula zilizo hapo juu za misimbo ya Reed-Solomon ni kwamba unapotumia nambari kamili za kawaida, matokeo ya kukokotoa p yanaweza yasiweze kuwakilishwa kwa kutumia neno la saizi halali.
  2. Wakati wa kurejesha data, fomula zilizo hapo juu zitazingatiwa kama mfumo wa milinganyo ambayo lazima isuluhishwe ili kurejesha data. Wakati wa mchakato wa ufumbuzi, inaweza kuwa muhimu kugawanya integers kwa kila mmoja, na kusababisha idadi halisi ambayo haiwezi kuwakilishwa kwa usahihi katika kumbukumbu ya kompyuta.

Matatizo haya yanazuia matumizi ya nambari kamili kwa misimbo ya Reed-Solomon. Suluhisho la shida ni la asili, linaweza kuelezewa kama ifuatavyo: wacha tuje na nambari maalum ambazo zinaweza kuwakilishwa kwa kutumia maneno ya urefu unaohitajika (kwa mfano, bits 16), na matokeo ya kufanya shughuli zote ambazo (kuongeza). , kutoa, kuzidisha, kugawanya) pia itawasilishwa kwenye kumbukumbu ya kompyuta kwa kutumia maneno ya urefu unaohitajika.

Nambari kama hizo "maalum" zimesomwa na hesabu kwa muda mrefu; zinaitwa uwanja. Sehemu ni seti ya vipengele vilivyo na utendakazi wa kujumlisha, kutoa, kuzidisha na kugawanya vilivyobainishwa kwa ajili yao.

Sehemu za Galois* ni sehemu ambazo kuna matokeo ya kipekee ya kila operesheni (+, -, *, /) kwa vipengele vyovyote viwili vya uga. Sehemu za Galois zinaweza kujengwa kwa nambari ambazo ni nguvu za 2: 2, 4, 8, 16, nk (kwa kweli nguvu za nambari yoyote kuu p, lakini kwa mazoezi tunavutiwa tu na nguvu za 2). Kwa mfano, kwa maneno 16-bit, hii ni shamba iliyo na vipengele 65, kwa kila jozi ambayo unaweza kupata matokeo ya operesheni yoyote (+, -, *, /). Thamani za x, p, alpha, beta, gamma, delta kutoka milinganyo iliyo hapo juu zitazingatiwa vipengele vya uga wa Galois kwa hesabu.

Kwa hivyo, tuna mfumo wa milinganyo ambao tunaweza kuunda vizuizi vya nambari za upunguzaji kwa kuandika programu inayofaa ya kompyuta. Kutumia mfumo sawa wa equations, unaweza kufanya urejeshaji wa data.

* Huu sio ufafanuzi mkali, lakini ni maelezo.

Jinsi ya kurejesha data

Urejeshaji unahitajika wakati baadhi ya vizuizi vya n + m vinakosekana. Hivi vinaweza kuwa vizuizi vya data na vizuizi vya msimbo wa kutolipa kodi. Kutokuwepo kwa vizuizi vya data na/au vizuizi vya upunguzaji wa msimbo kutamaanisha kuwa vigeu vinavyolingana vya x na/au p havijulikani katika milinganyo iliyo hapo juu.

Milinganyo ya nambari za Reed-Solomon inaweza kutazamwa kama mfumo wa milinganyo ambapo thamani zote za alpha, beta, gamma, delta ni za kudumu, zote x na p zinazolingana na vizuizi vinavyopatikana vinajulikana, na x na p iliyobaki. hazijulikani.

Kwa mfano, acha data kuzuia 1, 2, 3 na redundancy code block 2 isipatikane, basi kwa i-th kikundi cha maneno kutakuwa na mfumo ufuatao wa milinganyo (isiyojulikana imewekwa alama nyekundu):

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Tuna mfumo wa equations 4 na 4 haijulikani, ambayo ina maana tunaweza kutatua na kurejesha data!

Kutoka kwa mfumo huu wa milinganyo idadi ya hitimisho hufuata kuhusu urejeshaji data kwa misimbo ya Reed-Solomon (n vitalu vya data, vizuizi vya msimbo wa kutokuwa na uwezo):

  • Data inaweza kurejeshwa ikiwa vizuizi vyovyote vya m au chache vimepotea. Ikiwa vitalu vya m + 1 au zaidi vinapotea, data haiwezi kurejeshwa: haiwezekani kutatua mfumo wa equations m na m + 1 haijulikani.
  • Ili kurejesha kizuizi kimoja cha data, unahitaji kutumia n yoyote ya vizuizi vilivyobaki, na unaweza kutumia nambari zozote za upunguzaji wa data.

Nini kingine unahitaji kujua

Katika maelezo hapo juu, ninaepuka masuala kadhaa muhimu ambayo yanahitaji kuzamishwa kwa kina katika hisabati kuzingatia. Hasa, sisemi chochote kuhusu yafuatayo:

  • Mfumo wa milinganyo kwa nambari za Reed-Solomon lazima uwe na suluhisho (la kipekee) kwa mchanganyiko wowote wa haijulikani (sio zaidi ya m haijulikani). Kulingana na hitaji hili, maadili ya alpha, beta, gamma na delta huchaguliwa.
  • Mfumo wa milinganyo lazima uweze kujengwa kiotomatiki (kulingana na vizuizi vipi havipatikani) na kutatuliwa.
  • Tunahitaji kujenga uwanja wa Galois: kwa ukubwa wa neno uliopewa, uweze kupata matokeo ya operesheni yoyote (+, -, *, /) kwa vipengele vyovyote viwili.

Mwishoni mwa kifungu kuna marejeleo ya fasihi juu ya maswala haya muhimu.

Chaguo la n na m

Jinsi ya kuchagua n na m katika mazoezi? Katika mazoezi, katika mifumo ya kuhifadhi data, kanuni za upunguzaji hutumiwa kuokoa nafasi, hivyo m daima huchaguliwa chini ya n. Thamani zao maalum hutegemea mambo kadhaa, pamoja na:

  • Kuegemea kwa uhifadhi wa data. M kubwa zaidi, idadi kubwa ya kushindwa kwa disk ambayo inaweza kuokolewa, yaani, juu ya kuaminika.
  • Hifadhi isiyo ya kawaida. Uwiano wa juu wa m / n, juu ya upunguzaji wa uhifadhi utakuwa, na mfumo utakuwa wa gharama kubwa zaidi.
  • Omba muda wa usindikaji. Kadiri jumla ya n + m inavyokuwa kubwa, ndivyo muda wa kujibu maombi utakavyokuwa mrefu. Kwa kuwa kusoma data (wakati wa kurejesha) inahitaji kusoma n vitalu vilivyohifadhiwa kwenye n disks tofauti, wakati wa kusoma utatambuliwa na disk polepole zaidi.

Kwa kuongeza, kuhifadhi data katika DCs kadhaa huweka vikwazo vya ziada juu ya uchaguzi wa n na m: ikiwa 1 DC imezimwa, data lazima bado inapatikana kwa kusoma. Kwa mfano, wakati wa kuhifadhi data katika DCs 3, hali ifuatayo lazima ifikiwe: m >= n/2, vinginevyo kunaweza kuwa na hali ambapo data haipatikani kwa kusoma wakati 1 DC imezimwa.

3. LRC - Misimbo ya Ujenzi Mpya wa Mitaa

Ili kurejesha data kwa kutumia misimbo ya Reed-Solomon, unapaswa kutumia n vizuizi vya data kiholela. Hii ni hasara kubwa sana kwa mifumo ya kuhifadhi data iliyosambazwa, kwa sababu kurejesha data kwenye diski moja iliyovunjika, utakuwa na kusoma data kutoka kwa wengine wengi, na kuunda mzigo mkubwa wa ziada kwenye diski na mtandao.

Makosa ya kawaida ni kutoweza kufikiwa kwa block moja ya data kwa sababu ya kutofaulu au kupakia diski moja. Inawezekana kwa njia fulani kupunguza mzigo wa ziada wa urejeshaji data katika kesi hii (ya kawaida)? Inabadilika kuwa unaweza: kuna misimbo ya uondoaji wa LRC mahsusi kwa kusudi hili.

LRC (Misimbo ya Uundaji Upya wa Ndani) ni misimbo ya kutotumia tena iliyobuniwa na Microsoft kwa matumizi katika Hifadhi ya Windows Azure. Wazo la LRC ni rahisi iwezekanavyo: gawanya vizuizi vyote vya data katika vikundi viwili (au zaidi) na usome sehemu ya vizuizi vya upunguzaji wa nambari kwa kila kikundi kando. Kisha vizuizi vingine vya msimbo wa upunguzaji wa data vitahesabiwa kwa kutumia vizuizi vyote vya data (katika LRC vinaitwa nambari za upunguzaji wa pesa za kimataifa), na zingine - kwa kutumia moja ya vikundi viwili vya vizuizi vya data (zinaitwa nambari za upunguzaji wa data za ndani).

LRC inaonyeshwa na nambari tatu: nrl, ambapo n ni idadi ya vizuizi vya data, r ni nambari ya vizuizi vya nambari za upunguzaji wa upunguzaji wa data, l ni nambari ya vizuizi vya ndani vya upunguzaji wa data. Ili kusoma data wakati kizuizi kimoja cha data hakipatikani, unahitaji kusoma vizuizi vya n/l pekee - hii ni mara l chini ya nambari za Reed-Solomon.

Kwa mfano, fikiria mpango wa LRC 6-2-2. X1–X6 β€” Vitalu 6 vya data, P1, P2 β€” vitalu 2 vya uhitaji wa kimataifa, P3, P4 β€” vitalu 2 vya upunguzaji wa ndani.

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Vizuizi vya msimbo wa upunguzaji P1, P2 huhesabiwa kwa kutumia vizuizi vyote vya data. Uzuiaji wa msimbo wa upungufu P3 - kwa kutumia vitalu vya data X1-X3, uzuiaji wa msimbo wa redundancy P4 - kwa kutumia vitalu vya data X4-X6.

Mengine yanafanywa katika LRC kwa mlinganisho na misimbo ya Reed-Solomon. Milinganyo ya kuhesabu maneno ya vizuizi vya upunguzaji wa nambari itakuwa:

Nambari za kutokuwepo tena: kwa maneno rahisi kuhusu jinsi ya kuhifadhi data kwa uhakika na kwa bei nafuu

Ili kuchagua nambari za alpha, beta, gamma, delta, hali kadhaa lazima zifikiwe ili kuhakikisha uwezekano wa kurejesha data (yaani, kutatua mfumo wa equation). Unaweza kusoma zaidi juu yao ndani Ibara ya.
Pia katika mazoezi, operesheni ya XOR hutumiwa kuhesabu nambari za upunguzaji wa ndani P3, P4.

Idadi ya hitimisho hufuata kutoka kwa mfumo wa milinganyo ya LRC:

  • Ili kurejesha kizuizi chochote cha data 1, inatosha kusoma vitalu vya n/l (n/2 katika mfano wetu).
  • Ikiwa vitalu vya r + l hazipatikani, na vitalu vyote vinajumuishwa katika kikundi kimoja, basi data haiwezi kurejeshwa. Hii ni rahisi kuelezea kwa mfano. Acha vizuizi vya X1–X3 na P3 visipatikane: hivi ni vizuizi vya r + l kutoka kwa kikundi kimoja, 4 kwa upande wetu. Kisha tuna mfumo wa equations 3 na haijulikani 4 ambazo haziwezi kutatuliwa.
  • Katika visa vingine vyote vya kutopatikana kwa vizuizi vya r + l (wakati angalau kizuizi kimoja kinapatikana kutoka kwa kila kikundi), data katika LRC inaweza kurejeshwa.

Kwa hivyo, LRC inashinda misimbo ya Reed-Solomon katika kurejesha data baada ya makosa moja. Katika nambari za Reed-Solomon, ili kurejesha hata kizuizi kimoja cha data, unahitaji kutumia n blocks, na katika LRC, kurejesha kizuizi kimoja cha data, inatosha kutumia vitalu vya n/l (n/2 katika mfano wetu). Kwa upande mwingine, LRC ni duni kwa misimbo ya Reed-Solomon kulingana na idadi ya juu zaidi ya makosa yanayoruhusiwa. Katika mifano iliyo hapo juu, misimbo ya Reed-Solomon inaweza kurejesha data kwa hitilafu zozote 4, na kwa LRC kuna michanganyiko 2 ya hitilafu 4 wakati data haiwezi kurejeshwa.

Nini ni muhimu zaidi inategemea hali maalum, lakini mara nyingi akiba katika mzigo wa ziada ambayo LRC hutoa huzidi hifadhi isiyoaminika kidogo.

4. Nambari zingine za upunguzaji kazi

Kando na misimbo ya Reed-Solomon na LRC, kuna misimbo mingine mingi ya kutoajiri. Nambari tofauti za upungufu hutumia hisabati tofauti. Hapa kuna nambari zingine za upunguzaji kazi:

  • Nambari ya kupunguza matumizi kwa kutumia opereta ya XOR. Uendeshaji wa XOR unafanywa kwenye vitalu vya data vya n, na kizuizi 1 cha kanuni za upunguzaji hupatikana, yaani, mpango wa n + 1 (n vitalu vya data, msimbo 1 wa redundancy). Inatumika katika RAID 5, ambapo vizuizi vya data na misimbo ya upungufu huandikwa kwa mzunguko kwa diski zote za safu.
  • Algorithm isiyo ya kawaida kulingana na operesheni ya XOR. Inakuruhusu kuunda vizuizi 2 vya misimbo ya upunguzaji kazi, yaani, mpango wa n+2.
  • Algorithm ya STAR kulingana na operesheni ya XOR. Hukuruhusu kuunda vizuizi 3 vya misimbo ya upunguzaji kazi, yaani, mpango wa n+3.
  • Nambari za piramidi ni misimbo nyingine ya uondoaji kutoka kwa Microsoft.

5. Tumia katika Yandex

Idadi ya miradi ya miundombinu ya Yandex hutumia misimbo ya kupunguza uhifadhi wa data ya kuaminika. Hapa kuna baadhi ya mifano:

  • Uhifadhi wa kitu cha ndani cha MDS, ambacho niliandika mwanzoni mwa makala hiyo.
  • YT - Ramani Punguza mfumo wa Yandex.
  • YDB (Yandex DataBase) - hifadhidata mpya ya SQL iliyosambazwa.

MDS hutumia misimbo ya kupunguza matumizi ya LRC, mpango wa 8-2-2. Data iliyo na nambari za upunguzaji wa data imeandikwa kwa diski 12 tofauti katika seva tofauti katika DC 3 tofauti: seva 4 katika kila DC. Soma zaidi kuhusu hili katika Ibara ya.

YT hutumia misimbo ya Reed-Solomon (Mpango wa 6-3), ambao ulikuwa wa kwanza kutekelezwa, na misimbo ya upunguzaji kazi ya LRC (Mpango 12-2-2), huku LRC ikiwa njia inayopendelewa ya kuhifadhi.

YDB hutumia misimbo isiyo ya kawaida ya kupunguza upunguzaji kazi (Mchoro 4-2). Kuhusu misimbo ya kutotumia tena katika YDB tayari aliiambia kwenye Highload.

Matumizi ya mifumo tofauti ya kanuni za upunguzaji wa kazi ni kutokana na mahitaji tofauti ya mifumo. Kwa mfano, katika MDS, data iliyohifadhiwa kwa kutumia LRC imewekwa katika DCs 3 mara moja. Ni muhimu kwetu kwamba data ibaki inapatikana kwa kusomwa ikiwa 1 kati ya DC yoyote itashindwa, kwa hivyo vitalu lazima visambazwe kwenye DCs ili ikiwa DC yoyote haipatikani, idadi ya vitalu visivyoweza kufikiwa isizidi inaruhusiwa. Katika mpango wa 8-2-2, unaweza kuweka vitalu 4 katika kila DC, basi wakati DC yoyote imezimwa, vitalu 4 havitapatikana, na data inaweza kusoma. Mpango wowote tunaochagua wakati wa kuiweka katika DCs 3, kwa hali yoyote inapaswa kuwa (r + l) / n > = 0,5, yaani, upungufu wa uhifadhi utakuwa angalau 50%.

Katika YT hali ni tofauti: kila nguzo ya YT iko kabisa katika 1 DC (makundi tofauti katika DC tofauti), kwa hivyo hakuna kizuizi kama hicho. Mpango wa 12-2-2 hutoa upungufu wa 33%, yaani, kuhifadhi data ni nafuu, na inaweza pia kuishi hadi kukatika kwa diski 4 kwa wakati mmoja, kama mpango wa MDS.

Kuna vipengele vingi zaidi vya utumiaji wa misimbo ya upunguzaji wa nambari katika uhifadhi wa data na mifumo ya usindikaji: nuances ya urejeshaji data, athari za urejeshaji wakati wa utekelezaji wa hoja, vipengele vya kurekodi data, nk. Nitazungumza tofauti kuhusu vipengele hivi na vingine. ya matumizi ya kanuni za upungufu katika mazoezi, ikiwa mada itakuwa ya kuvutia.

6. Viungo

  1. Msururu wa vifungu kuhusu nambari za Reed-Solomon na sehemu za Galois: https://habr.com/ru/company/yadro/blog/336286/
    https://habr.com/ru/company/yadro/blog/341506/
    Wanaangalia kwa undani hisabati katika lugha inayoweza kufikiwa.
  2. Kifungu kutoka Microsoft kuhusu LRC: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/LRC12-cheng20webpage.pdf
    Sehemu ya 2 inaeleza kwa ufupi nadharia hiyo na kisha kujadili uzoefu na LRC kwa vitendo.
  3. Mpango usio wa kawaida: https://people.eecs.berkeley.edu/~kubitron/courses/cs262a-F12/handouts/papers/p245-blaum.pdf
  4. Mpango wa STAR: https://www.usenix.org/legacy/event/fast05/tech/full_papers/huang/huang.pdf
  5. Misimbo ya piramidi: https://www.microsoft.com/en-us/research/publication/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems/
  6. Nambari za kutokuwepo tena katika MDS: https://habr.com/ru/company/yandex/blog/311806
  7. Nambari za kutokuwepo tena katika YT: https://habr.com/ru/company/yandex/blog/311104/
  8. Nambari za kutokuwepo tena katika YDB: https://www.youtube.com/watch?v=dCpfGJ35kK8

Chanzo: mapenzi.com

Kuongeza maoni