Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Seo cò ris a tha dìth dreuchd coltach

Tha còdan call-obrach* air an cleachdadh gu farsaing ann an siostaman coimpiutair gus earbsachd stòradh dàta àrdachadh. Ann an Yandex tha iad air an cleachdadh ann am mòran phròiseactan. Mar eisimpleir, le bhith a’ cleachdadh còdan call-obrach an àite ath-riochdachadh nar stòradh stuthan a-staigh sàbhalaidh sin milleanan gun a bhith ag ìobradh earbsachd. Ach a dh’aindeoin an cleachdadh farsaing, is ann glè ainneamh a tha tuairisgeulan soilleir air mar a tha còdan call-obrach ag obair. Tha timcheall air na leanas aig an fheadhainn a tha airson tuigsinn (bho Uicipeid):

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Is e m ’ainm Vadim, aig Yandex tha mi a’ leasachadh MDS airson stòradh stuthan a-staigh. San artaigil seo, bheir mi cunntas ann am faclan sìmplidh air bunaitean teòiridheach còdan call dreuchd (còdan Reed-Solomon agus LRC). Innsidh mi dhut mar a tha e ag obair, às aonais matamataig iom-fhillte agus teirmean tearc. Aig an deireadh bheir mi eisimpleirean de chleachdadh còdan call-obrach ann an Yandex.

Cha bheachdaich mi gu mionaideach air grunn mhion-fhiosrachadh matamataigeach, ach bheir mi ceanglaichean dhaibhsan a tha airson dàibheadh ​​​​nas doimhne. Bheir mi fa-near cuideachd gur dòcha nach bi cuid de mhìneachaidhean matamataigeach teann, leis nach eil an artaigil airson luchd-matamataig, ach airson innleadairean a tha airson brìgh na cùise a thuigsinn.

* Ann an litreachas Beurla, canar còdan sguabaidh gu tric ri còdan call-obrach.

1. Tha brìgh còdan call-obrach

Tha brìgh a h-uile còd call-obrach gu math sìmplidh: stòradh (no tar-chuir) dàta gus nach tèid a chall nuair a thig mearachdan (fàilligidhean diosc, mearachdan gluasad dàta, msaa).

Anns a’ mhòr-chuid de chòdan call obrach, tha an dàta air a roinn ann an n blocaichean dàta, airson am bi m blocaichean de chòdan call obrach air an cunntadh, agus mar thoradh air sin bidh blocaichean n + m gu h-iomlan. Tha còdan call-obrach air an togail gus an tèid n blocaichean dàta fhaighinn air ais le bhith a’ cleachdadh dìreach cuibhreann de bhlocaichean n + m. An ath rud, beachdaichidh sinn air còdan call obrach a-mhàin bloc, is e sin, an fheadhainn anns a bheil an dàta air a roinn ann am blocaichean.

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Gus na n blocaichean dàta gu lèir fhaighinn air ais, feumaidh co-dhiù n de bhlocaichean n + m a bhith agad, leis nach urrainn dhut n blocaichean fhaighinn le bhith dìreach n-1 bloc (sa chùis seo, dh'fheumadh tu 1 bloc a thoirt a-mach à tana adhair”). A bheil n blocaichean air thuaiream de bhlocaichean n + m gu leòr airson an dàta gu lèir fhaighinn air ais? Tha seo an urra ris an t-seòrsa còdan call dreuchd, mar eisimpleir, leigidh còdan Reed-Solomon leat an dàta gu lèir fhaighinn air ais le bhith a’ cleachdadh blocaichean neo-riaghailteach, ach chan eil còdan call dreuchd LRC an-còmhnaidh.

Stòradh dàta

Ann an siostaman stòraidh dàta, mar riaghailt, tha gach bloc dàta agus blocaichean còd call-obrach air a sgrìobhadh gu diosc air leth. An uairsin, ma dh’ fhailicheas diosc neo-riaghailteach, faodar an dàta tùsail ath-nuadhachadh agus a leughadh fhathast. Faodar dàta fhaighinn air ais eadhon ged a dh’ fhailicheas grunn dhioscaichean aig an aon àm.

Transrachadh dàta

Faodar còdan call-obrach a chleachdadh gus dàta a thar-chuir gu earbsach thairis air lìonra neo-earbsach. Tha an dàta tar-chuir air a roinn ann am blocaichean, agus thathas a’ tomhas còdan call obrach dhaibh. Tha an dà bhloca dàta agus blocaichean còd call-obrach air an gluasad thairis air an lìonra. Ma thachras mearachdan ann am blocaichean neo-riaghailteach (suas ri àireamh sònraichte de bhlocaichean), faodar dàta a chuir thairis air an lìonra gun mhearachdan fhathast. Bithear a’ cleachdadh còdan Reed-Solomon, mar eisimpleir, gus dàta a thar-chuir thairis air loidhnichean conaltraidh optigeach agus ann an conaltradh saideal.

* Tha còdan call obrach ann cuideachd anns nach eil an dàta air a roinn ann am blocaichean, leithid còdan Hamming agus còdan CRC, a tha air an cleachdadh gu farsaing airson sgaoileadh dàta ann an lìonraidhean Ethernet. Is iad sin còdan airson còdadh ceartachadh mhearachdan, tha iad air an dealbhadh gus mearachdan a lorg, agus gun a bhith gan ceartachadh (tha an còd Hamming cuideachd a’ ceadachadh ceartachadh pàirt de mhearachdan).

2. Còdan Reed-Solomon

Is e còdan Reed-Solomon aon de na còdan call-obrach as fharsainge, air an innleachadh air ais anns na 1960n agus air an cleachdadh gu farsaing an toiseach anns na 1980n airson cinneasachadh mòr de chlàran teann.

Tha dà phrìomh cheist ann airson còdan Reed-Solomon a thuigsinn: 1) mar a chruthaicheas tu blocaichean de chòdan call-obrach; 2) mar a gheibh thu air ais dàta a’ cleachdadh blocaichean còd call dreuchd. Lorg sinn freagairtean dhaibh.
Airson sìmplidheachd, gabhaidh sinn ris gu bheil n=6 agus m=4. Thathas a’ beachdachadh air sgeamaichean eile a rèir analogy.

Mar a chruthaicheas tu blocaichean còd call dreuchd

Tha gach bloc de chòdan call-obrach air a chunntadh gu neo-eisimeileach bhon fheadhainn eile. Bithear a’ cleachdadh a h-uile bloc dàta airson gach bloc a chunntadh. Anns an dealbh gu h-ìosal, tha X1-X6 nam blocaichean dàta, tha P1-P4 nan blocaichean còd dìth-obrach.

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Feumaidh a h-uile bloc dàta a bhith den aon mheud, agus faodar pìosan neoni a chleachdadh airson co-thaobhadh. Bidh na blocaichean còd call-obrach a thig às an aon mheud ris na blocaichean dàta. Tha a h-uile bloc dàta air a roinn ann am faclan (mar eisimpleir, 16 pìosan). Canaidh sinn gun roinn sinn na blocaichean dàta ann an k faclan. An uairsin thèid a h-uile bloc de chòdan call-obrach a roinn ann an k faclan cuideachd.

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Airson i-th facal gach bloca call-obrach a chunntadh, thèid na faclan i-th de na blocaichean dàta gu lèir a chleachdadh. Thèid an àireamhachadh a rèir na foirmle a leanas:

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

An seo tha na luachan x nam faclan de bhlocaichean dàta, tha p nam faclan de bhlocaichean còd dìth-obrach, tha a h-uile alpha, beta, gamma agus delta nan àireamhan air an taghadh gu sònraichte a tha co-ionann dha na h-uile i. Feumar a ràdh anns a’ bhad nach e àireamhan àbhaisteach a th’ anns na luachan sin uile, ach eileamaidean de raon Galois; chan e gnìomhachdan +, -, *, / a th’ ann an obrachaidhean air a bheil sinn uile eòlach, ach obrachaidhean sònraichte air an toirt a-steach air eileamaidean den Galois achadh.

Carson a tha feum air raointean Galois?

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Bhiodh e coltach gu bheil a h-uile dad sìmplidh: bidh sinn a’ roinn an dàta ann am blocaichean, na blocaichean gu faclan, a’ cleachdadh faclan nam blocaichean dàta bidh sinn a’ cunntadh faclan nam blocaichean còd call obrach - gheibh sinn blocaichean còd dìth-obrach. San fharsaingeachd seo mar a tha e ag obair, ach tha an diabhal anns na mion-fhiosrachadh:

  1. Mar a chaidh a ràdh gu h-àrd, tha meud an fhacail stèidhichte, anns an eisimpleir againn 16 pìosan. Tha na foirmlean gu h-àrd airson còdan Reed-Solomon mar sin nuair a bhios tu a’ cleachdadh àireamhan àbhaisteach, is dòcha nach bi toradh àireamhachadh p air a riochdachadh le facal de mheud dligheach.
  2. Nuair a gheibhear dàta air ais, bithear a’ beachdachadh air na foirmlean gu h-àrd mar shiostam de cho-aontaran a dh’fheumar fhuasgladh gus an dàta fhaighinn air ais. Rè a 'phròiseas fuasglaidh, dh'fhaodadh gum bi e riatanach a bhith a' roinneadh nan àireamhan le chèile, a 'ciallachadh gu bheil àireamh fìor nach urrainn a bhith air a riochdachadh gu ceart ann an cuimhne coimpiutair.

Tha na duilgheadasan sin a’ cur casg air a bhith a’ cleachdadh inteirean airson còdan Reed-Solomon. Tha am fuasgladh don duilgheadas tùsail, faodar a mhìneachadh mar a leanas: thig sinn suas le àireamhan sònraichte a dh'fhaodar a riochdachadh le bhith a 'cleachdadh fhaclan den fhad a tha a dhìth (mar eisimpleir, 16 pìosan), agus mar thoradh air a h-uile gnìomhachd air a bheil (cur-ris , toirt air falbh, iomadachadh, roinneadh) cuideachd air a thaisbeanadh ann an cuimhne coimpiutair a’ cleachdadh faclan den fhad a tha a dhìth.

Tha àireamhan “sònraichte” mar sin air a bhith air an sgrùdadh le matamataig airson ùine mhòr; canar raointean riutha. Tha raon na sheata de eileamaidean le gnìomhachd cur-ris, toirt air falbh, iomadachadh agus roinneadh air a mhìneachadh dhaibh.

Tha raointean Galois * nan raointean far a bheil toradh sònraichte de gach gnìomh (+, -, *, /) airson dà eileamaid sam bith den raon. Faodar raointean Galois a thogail airson àireamhan a tha nan cumhachdan 2: 2, 4, 8, 16, msaa (gu dearbh cumhachdan prìomh àireamh p, ach ann an cleachdadh chan eil ùidh againn ach ann an cumhachdan 2). Mar eisimpleir, airson faclan 16-bit, is e seo raon anns a bheil 65 eileamaidean, airson gach paidhir gheibh thu toradh gnìomhachd sam bith (+, -, *, /). Thèid beachdachadh air luachan x, p, alpha, beta, gamma, delta bho na co-aontaran gu h-àrd mar eileamaidean de raon Galois airson àireamhachadh.

Mar sin, tha siostam de cho-aontaran againn leis an urrainn dhuinn blocaichean de chòdan call-obrach a thogail le bhith a’ sgrìobhadh prògram coimpiutair iomchaidh. A 'cleachdadh an aon siostam co-aontaran, faodaidh sibh a' coileanadh dàta ath-bheothachadh.

* Chan e mìneachadh teann a tha seo, ach tuairisgeul.

Ciamar a fhaighinn air ais dàta

Tha feum air ath-nuadhachadh nuair a tha cuid de na blocaichean n+m a dhìth. Faodaidh iad seo a bhith an dà chuid blocaichean dàta agus blocaichean còd call-obrach. Bidh dìth bhlocaichean dàta agus/no blocaichean còd call-obrach a’ ciallachadh nach eil fios air na caochladairean x agus/no p co-fhreagarrach anns na co-aontaran gu h-àrd.

Faodar na co-aontaran airson còdan Reed-Solomon fhaicinn mar shiostam de cho-aontaran anns a bheil a h-uile luachan alpha, beta, gamma, delta nan co-aontaran, a h-uile x agus p a tha co-chosmhail ris na blocaichean a tha rim faighinn nan caochladairean aithnichte, agus na x agus p a tha air fhàgail. neo-aithnichte.

Mar eisimpleir, na biodh blocaichean dàta 1, 2, 3 agus bloc còd call-obrach 2 rim faighinn, agus an uairsin airson an i-th buidheann de dh’fhaclan bidh an siostam co-aontaran a leanas (tha neo-aithnichte air an comharrachadh ann an dearg):

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Tha siostam againn de 4 co-aontaran le 4 neo-aithnichte, a tha a’ ciallachadh gun urrainn dhuinn fhuasgladh agus an dàta a thoirt air ais!

Bhon t-siostam seo de cho-aontaran tha grunn cho-dhùnaidhean a’ leantainn a thaobh faighinn air ais dàta airson còdan Reed-Solomon (n blocaichean dàta, m blocaichean còd call obrach):

  • Faodar dàta fhaighinn air ais ma thèid m blocaichean sam bith no nas lugha a chall. Ma thèid m+1 no barrachd bhlocaichean a chall, cha ghabh an dàta a thoirt air ais: tha e eu-comasach siostam de cho-aontaran fhuasgladh le m + 1 neo-aithnichte.
  • Gus eadhon aon bhloca dàta fhaighinn air ais, feumaidh tu gin de na blocaichean a tha air fhàgail a chleachdadh, agus faodaidh tu gin de na còdan call-obrach a chleachdadh.

Dè eile a dh'fheumas tu a bhith agad

Anns an tuairisgeul gu h-àrd, bidh mi a’ seachnadh grunn chùisean cudromach a dh’ fheumas dàibheadh ​​​​nas doimhne ann am matamataig airson beachdachadh. Gu sònraichte, chan eil mi ag ràdh dad mu na leanas:

  • Feumaidh fuasgladh (sònraichte) a bhith aig siostam nan co-aontaran airson còdan Reed-Solomon airson measgachadh sam bith de nithean neo-aithnichte (gun a bhith nas fhaide na m neo-aithnichte). Stèidhichte air an riatanas seo, tha luachan alpha, beta, gamma agus delta air an taghadh.
  • Feumaidh siostam de cho-aontaran a bhith comasach air a thogail gu fèin-ghluasadach (a rèir dè na blocaichean nach eil rim faighinn) agus a rèiteachadh.
  • Feumaidh sinn raon Galois a thogail: airson meud facal sònraichte, a bhith comasach air toradh gnìomhachd sam bith (+, -, *, /) a lorg airson dà eileamaid sam bith.

Aig deireadh an artaigil tha iomradh air litreachas mu na cùisean cudromach sin.

Roghainn n agus m

Ciamar a roghnaicheas tu n agus m ann an cleachdadh? Ann an cleachdadh, ann an siostaman stòraidh dàta, bidh còdan call-obrach air an cleachdadh gus àite a shàbhaladh, agus mar sin tha m an-còmhnaidh air a thaghadh nas lugha na n. Tha na luachan sònraichte aca an urra ri grunn nithean, nam measg:

  • earbsachd stòradh dàta. Mar as motha m, is ann as motha an àireamh de fhàilligidhean diosc a dh’ fhaodar a chumail beò, is e sin, nas àirde an earbsa.
  • Stòradh gun fheum. Mar as àirde an co-mheas m/n, is ann as àirde a bhios an dìth stòraidh, agus mar as daoire a bhios an siostam.
  • Iarr ùine giollachd. Mar as motha an t-suim n + m, is ann as fhaide a bhios an ùine freagairt airson iarrtasan. Leis gu bheil feum air leughadh dàta (rè ath-bheothachadh) n blocaichean a tha air an stòradh air n diosc eadar-dhealaichte, bidh an ùine leughaidh air a shuidheachadh leis an diosc as slaodaiche.

A bharrachd air an sin, tha stòradh dàta ann an grunn DCn a’ cur bacadh a bharrachd air an roghainn n agus m: ma thèid 1 DC a chuir dheth, feumaidh an dàta a bhith fhathast ri fhaighinn airson a leughadh. Mar eisimpleir, nuair a thathar a’ stòradh dàta ann an 3 DCs, feumar coinneachadh ris a’ chumha a leanas: m > = n/2, air neo dh’ fhaodadh gum bi suidheachadh ann far nach eil an dàta ri fhaighinn airson a leughadh nuair a thèid 1 DC a chur dheth.

3. LRC - Còdan Ath-thogail Ionadail

Gus dàta fhaighinn air ais a’ cleachdadh còdan Reed-Solomon, feumaidh tu n blocaichean dàta neo-riaghailteach a chleachdadh. Tha seo na ana-cothrom mòr airson siostaman stòraidh dàta sgaoilte, oir gus dàta a thoirt air ais air aon diosc briste, feumaidh tu dàta bhon mhòr-chuid de chàch a leughadh, a’ cruthachadh luchdan mòra a bharrachd air na diosgan agus an lìonra.

Is e na mearachdan as cumanta ruigsinneachd aon bhloca dàta air sgàth fàilligeadh no cus cuideim air aon diosc. A bheil e comasach dòigh air choireigin an cus luchd airson faighinn seachad air dàta a lughdachadh anns a’ chùis seo (as cumanta)? Tha e a’ tionndadh a-mach gun urrainn dhut: tha còdan call dreuchd LRC ann gu sònraichte airson an adhbhair seo.

Tha LRC (Còdan Ath-thogail Ionadail) nan còdan call obrach a chruthaich Microsoft airson an cleachdadh ann an Windows Azure Storage. Tha am beachd air LRC cho sìmplidh ‘s a ghabhas: roinn a h-uile bloc dàta ann an dà bhuidheann (no barrachd) agus leugh pàirt de na blocaichean còd call-obrach airson gach buidheann fa leth. An uairsin thèid cuid de bhlocaichean còd call-obrach a chunntadh a’ cleachdadh a h-uile bloc dàta (ann an LRC canar còdan dìth-obrach cruinneil riutha), agus cuid - a’ cleachdadh aon de dhà bhuidheann de bhlocaichean dàta (canar còdan call obrach ionadail riutha).

Tha LRC air a chomharrachadh le trì àireamhan: nrl, far a bheil n an àireamh de bhlocaichean dàta, r an àireamh de bhlocaichean còd dìth-obrach cruinneil, is e l an àireamh de bhlocaichean còd dìth-obrach ionadail. Gus dàta a leughadh nuair nach eil aon bhloca dàta ri fhaighinn, feumaidh tu dìreach blocaichean n/l a leughadh - tha seo l tursan nas lugha na ann an còdan Reed-Solomon.

Mar eisimpleir, beachdaich air sgeama LRC 6-2-2. X1 – X6 - 6 blocaichean dàta, P1, P2 - 2 bhloca call obrach cruinneil, P3, P4 - 2 bhloca call obrach ionadail.

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Tha blocaichean còd call-obrach P1, P2 air an cunntadh a’ cleachdadh a h-uile bloc dàta. Bloc còd call-obrach P3 - a’ cleachdadh blocaichean dàta X1-X3, bloc còd call-obrach P4 - a’ cleachdadh blocaichean dàta X4-X6.

Tha an còrr air a dhèanamh ann an LRC mar shamhla le còdan Reed-Solomon. Is iad na co-aontaran airson faclan blocaichean còd call-obrach a chunntadh:

Còdan call-obrach: ann am faclan sìmplidh mu mar as urrainn dhut dàta a stòradh gu earbsach agus gu saor

Gus na h-àireamhan alpha, beta, gamma, delta a thaghadh, feumar grunn chumhachan a choileanadh gus dèanamh cinnteach gum bi e comasach faighinn air ais dàta (is e sin, fuasgladh fhaighinn air an t-siostam co-aontar). Faodaidh tu barrachd a leughadh mun deidhinn ann an artaigil.
Cuideachd ann an cleachdadh, thathas a’ cleachdadh gnìomhachd XOR gus còdan call obrach ionadail P3, P4 obrachadh a-mach.

Tha grunn cho-dhùnaidhean a’ leantainn bhon t-siostam co-aontaran airson LRC:

  • Gus bloc dàta 1 fhaighinn air ais, tha e gu leòr blocaichean n / l a leughadh (n / 2 san eisimpleir againn).
  • Mura h-eil blocaichean r + l rim faighinn, agus na blocaichean uile air an toirt a-steach do aon bhuidheann, cha ghabh an dàta ath-nuadhachadh. Tha seo furasta a mhìneachadh le eisimpleir. Na biodh blocaichean X1–X3 agus P3 rim faighinn: is iad sin blocaichean r + l bhon aon bhuidheann, 4 sa chùis againn. An uairsin tha siostam againn de 3 co-aontaran le 4 neo-aithnichte nach gabh fuasgladh.
  • Anns a h-uile cùis eile far nach eil blocaichean r + l rim faighinn (nuair a bhios co-dhiù aon bhloca ri fhaighinn bho gach buidheann), faodar an dàta san LRC ath-nuadhachadh.

Mar sin, tha LRC a’ coileanadh nas fheàrr na còdan Reed-Solomon ann a bhith a’ faighinn dàta air ais às deidh mearachdan singilte. Ann an còdan Reed-Solomon, gus eadhon aon bhloca dàta fhaighinn air ais, feumaidh tu n blocaichean a chleachdadh, agus ann an LRC, gus aon bhloca dàta fhaighinn air ais, tha e gu leòr blocaichean n / l a chleachdadh (n / 2 san eisimpleir againn). Air an làimh eile, tha LRC nas ìsle na còdan Reed-Solomon a thaobh an àireamh as motha de mhearachdan a tha ceadaichte. Anns na h-eisimpleirean gu h-àrd, faodaidh còdan Reed-Solomon dàta fhaighinn air ais airson mearachdan 4 sam bith, agus airson LRC tha 2 mheasgachadh de mhearachdan 4 nuair nach urrainnear dàta fhaighinn air ais.

Tha an rud a tha nas cudromaiche an urra ris an t-suidheachadh shònraichte, ach gu tric bidh na sàbhalaidhean ann an cus luchd a bheir LRC seachad nas àirde na stòradh beagan nas earbsaiche.

4. Còdan call-obrach eile

A bharrachd air còdan Reed-Solomon agus LRC, tha mòran chòdan call-obrach eile ann. Bidh diofar chòdan call-obrach a’ cleachdadh matamataig eadar-dhealaichte. Seo cuid de chòdan call-obrach eile:

  • Còd call-obrach a’ cleachdadh gnìomhaiche XOR. Tha an gnìomhachd XOR air a dhèanamh air n blocaichean dàta, agus gheibhear 1 bloc de chòdan call obrach, is e sin, sgeama n + 1 (n blocaichean dàta, 1 còd call obrach). Air a chleachdadh ann an RAID 5, far a bheil blocaichean dàta agus còdan call-obrach air an sgrìobhadh gu cearcallach gu gach diosc den raon.
  • Algorithm eadhon neònach stèidhichte air gnìomhachd XOR. A’ leigeil leat 2 bhloca de chòdan call obrach a thogail, is e sin, an sgeama n+2.
  • Algorithm STAR stèidhichte air gnìomhachd XOR. A’ leigeil leat 3 blocaichean de chòdan call obrach a thogail, is e sin, an sgeama n+3.
  • Tha còdan pioramaid nan còdan call obrach eile bho Microsoft.

5. Cleachd ann an Yandex

Bidh grunn phròiseactan bun-structair Yandex a’ cleachdadh còdan call obrach airson stòradh dàta earbsach. Seo beagan eisimpleirean:

  • Stòradh stuth taobh a-staigh MDS, a sgrìobh mi mu dheidhinn aig toiseach na h-artaigil.
  • YT - MapReduce siostam Yandex.
  • YDB (Yandex Database) - stòr-dàta sgaoilte newSQL.

Bidh MDS a’ cleachdadh còdan call dreuchd LRC, sgeama 8-2-2. Tha dàta le còdan call-obrach air a sgrìobhadh gu 12 diosc eadar-dhealaichte ann an diofar luchd-frithealaidh ann an 3 DCan eadar-dhealaichte: 4 frithealaichean anns gach DC. Leugh tuilleadh mu dheidhinn seo ann an artaigil.

Bidh YT a’ cleachdadh an dà chòd Reed-Solomon (Sgeama 6-3), a’ chiad fheadhainn a chuir an gnìomh, agus còdan call-obrach LRC (Sgeama 12-2-2), le LRC mar an dòigh stòraidh as fheàrr leotha.

Bidh YDB a’ cleachdadh còdan call obrach stèidhichte air eadhon (Figear 4-2). Mu chòdan call-obrach ann an YDB mu thràth air innseadh air Highload.

Tha cleachdadh sgeamaichean còd call-obrach eadar-dhealaichte mar thoradh air diofar riatanasan airson siostaman. Mar eisimpleir, ann an MDS, thèid dàta a tha air a stòradh a’ cleachdadh LRC a chuir ann an 3 DCn aig an aon àm. Tha e cudromach dhuinne gum bi an dàta fhathast ri fhaighinn airson a leughadh ma dh’ fhailicheas 1 de DCan sam bith, mar sin feumaidh na blocaichean a bhith air an sgaoileadh thairis air na DCan gus nach bi an àireamh de bhlocaichean ruigsinneach nas motha na tha ceadaichte mura h-eil DC ri fhaighinn. Anns an sgeama 8-2-2, faodaidh tu 4 blocaichean a chuir anns gach DC, an uairsin nuair a thèid DC sam bith a chuir dheth, cha bhith 4 blocaichean rim faighinn, agus faodar an dàta a leughadh. Ge bith dè an sgeama a thaghas sinn nuair a chuireas sinn e ann an 3 DCs, ann an suidheachadh sam bith bu chòir (r + l) / n> = 0,5 a bhith ann, is e sin, bidh dìth stòraidh co-dhiù 50%.

Ann an YT tha an suidheachadh eadar-dhealaichte: tha gach buidheann YT gu tur suidhichte ann an 1 DC (cruinneachaidhean eadar-dhealaichte ann an diofar DCan), agus mar sin chan eil bacadh sam bith ann. Tha an sgeama 12-2-2 a’ toirt seachad call obrach 33%, is e sin, tha stòradh dàta nas saoire, agus faodaidh e cuideachd a bhith beò suas ri 4 briseadh diosc aig an aon àm, dìreach mar an sgeama MDS.

Tha mòran a bharrachd fheartan ann a thaobh a bhith a’ cleachdadh còdan call-obrach ann an siostaman stòraidh is giullachd dàta: nuances ann an faighinn seachad air dàta, a’ bhuaidh a thig air ais air àm cur an gnìomh ceiste, feartan clàradh dàta, msaa. de chleachdadh còdan call dreuchd ann an cleachdadh, ma bhios an cuspair inntinneach.

6. Ceanglaichean

  1. Sreath de artaigilean mu chòdan Reed-Solomon agus raointean Galois: https://habr.com/ru/company/yadro/blog/336286/
    https://habr.com/ru/company/yadro/blog/341506/
    Bheir iad sùil nas doimhne air matamataig ann an cànan ruigsinneach.
  2. Artaigil bho Microsoft mu LRC: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/LRC12-cheng20webpage.pdf
    Tha Earrann 2 a’ mìneachadh an teòiridh gu h-aithghearr agus an uairsin a’ beachdachadh air eòlasan ann an cleachdadh le LRC.
  3. Sgeama neo-àbhaisteach: https://people.eecs.berkeley.edu/~kubitron/courses/cs262a-F12/handouts/papers/p245-blaum.pdf
  4. Sgeama STAR: https://www.usenix.org/legacy/event/fast05/tech/full_papers/huang/huang.pdf
  5. Còdan pioramaid: https://www.microsoft.com/en-us/research/publication/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems/
  6. Còdan call dreuchd ann an MDS: https://habr.com/ru/company/yandex/blog/311806
  7. Còdan call dreuchd ann an YT: https://habr.com/ru/company/yandex/blog/311104/
  8. Còdan call-obrach ann an YDB: https://www.youtube.com/watch?v=dCpfGJ35kK8

Source: www.habr.com

Cuir beachd ann