Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Hoc est quod similis redundantia

Codices redundantia* late in systematibus computatralibus adhibentur ad fidem notitiarum repositionis augendam. In Yandex multis inceptis adhibentur. Exempli gratia, adhibitis codicibus redundantia loco replicationis in objecto nostro interno, decies salvat sine sacrificio fidem. Sed, quamvis pervulgatum usum eorum, perspicue descriptiones quantitatis codicis operantur, rarissima sunt. Qui intelligere volunt sunt circa sequentia (a Vicipaedia):

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Nomen meum Vadim est, at Yandex obiectum internum perficio MDS repono. In hoc capitulo simplicibus verbis fundamenta theoricae redundantiae coderum (Reed-Solomon et LRC codes). Dicam quomodo agit sine mathematicis multiplicibus ac raris vocabulis. In fine exempla dabimus utendi redundantia in Yandex codicibus.

Plures mathematicorum singillatim non considerabo, sed nexus dabo iis qui altius intendere volunt. Dicam etiam quod aliquae definitiones mathematicae non possunt esse strictae, cum articulus non sit destinatus mathematicis, sed mechanicis, qui volunt intelligere quidditatem rei.

* In anglico-lingua litterae, redundantia in codicibus saepe in litura codicibus appellatur.

1. essentia redundantia codes

Ratio omnium codicis redundantia est perquam simplex: copia (vel transmittere) notitiarum ita ut non amittatur quando errores occurrunt (in defectione orbis, notitia translationis errores, etc.).

In plerisque codicibus redundantia, notitia in n caudices dividitur, pro quibus m caudices redundantiae codicis numerantur, inde in summa n + m caudices. Codices redundantia ita construuntur ut n caudices notitiarum recuperari possint utendo portione tantum n + m caudices. Deinde videbimus solum impedimentum redundantiae codicis, id est, de iis in quibus notitia in caudices dividitur.

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Ut omnes n cuneos notitiarum recipias, debes habere cuneos n saltem n + m, cum n stipites tantum n-1 truncos habere non possis (hoc in casu, 1 truncum "ex tenuibus accipere debes. aer"). Suntne n stipites temere n + m cuneos satis ad omnes notitias recuperandas? Hoc pendet a typo redundantiae codicibus, exempli gratia, codicis Reed-Solomon permittit te omnia indicia recuperare utentibus n stipitibus arbitrariis, sed LRC redundantia in codicibus non semper.

notitia repono

In notitiis systematis repositionis, pro regula, singulae notitiarum caudices et caudices redundantiae scribitur ad disci separatum. Deinde, si orbis arbitrarius deficit, notitia originalis adhuc restitui et legi potest. Data reparari possunt etiam si plures orbis simul deficiunt.

notitia translatio

Redundantia codes adhiberi potest ut notitias transmittere certo network in ambiguis. Notitia transmissa in caudices divisa est, et codices redundantia pro illis computantur. Utraque notitia caudices et caudices redundantia in retiaculis transmittuntur. Si in arbitrariis caudices (usque ad certum numerum caudices) occurrunt, notitiae adhuc per retis sine erroribus traduci possunt. Codices reed-Solomon, exempli gratia, solent transmittere notitias super lineas communicationis opticas et in communicationibus satellitibus.

* Sunt etiam notae redundantiae in quibus notitia in caudices non dividitur, sicut codices Hamming et CRC code, qui late pro notitia transmissionis in retiacula Ethernetensi adhibentur. Hi codices errorum emendandi coding sunt, errores deprehendendi et non corrigendi destinati sunt (etiam in codice Hammingi admittit errorum partialem correctionem).

2. Cocles Reed-Solomon

Codices reed-Solomon unus e codicibus late usitatis redundantiae, in annis 1960 repertis et primum late in annis 1980 adhibitus est ad productionem discorum compactorum.

Duae quaestiones praecipuae ad intelligendum Codices Reed-Solomon sunt: ​​1) quomodo cuneos efficiendi codices redundantiae; 2) quomodo ad recipiendas notitias utens redundantia in codice caudices. Inueniamus eis responsa.
Pro simplicitate praeterea ponemus n=6 et m=4. Aliae rationes analogice considerantur.

Quomodo creare cuneos addita codice

Unusquisque codex nugationis codicis praeter alios numeratur. Omnes n data caudices ad singulos stipites computare solebant. In schemate infra, X1-X6 sunt notitiae caudices, P1-P4 caudices redundantia in codice.

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Omnes notitiae caudices eiusdem magnitudinis esse debent, et nulla frena ad alignment adhiberi possunt. Proveniens additamentum codicis caudices eiusdem magnitudinis erit ac notitiarum caudices. Omnes notitiae caudices in verba dividuntur (exempli gratia 16 bits). Dicamus nos data cuneos in k verba scindamus. Tunc omnes cuneos redundantiae codicis etiam in k verba dividantur.

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Ad numerandum verbum i-th cuiusque impedimenti redundantia, verba i-th omnium rerum notitiarum adhibebuntur. Inirentur secundum hanc formulam:

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Hic valores x verba notitiarum caudices sunt, p verba redundantiae codicis caudices, omnes alpha, beta, gamma et della sunt numero specialiter delecti qui idem sunt omnibus i. Dicendum est statim omnes istos valores non esse numeros ordinarios, sed elementa agri Galoidis, operationes +, -, *, non operationes nobis omnibus familiares, sed speciales operationes in elementis Galoidis inductae. agrum.

Cur agri Galois opus sunt?

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Omnia simplicia esse videntur: notitias in caudices, in caudices dividemus in verba, utentes verba notitiarum caudices computamus verba nugarum codicis - redundantiam codicis caudices accipimus. In genere hoc est quomodo operatur, sed diabolus in singulis;

  1. Magnitudo verbi, ut dictum est, figitur, in exemplo nostro 16 calcaria. Formulae supra in codicibus Reed-Solomon tales sunt ut, cum integris ordinariis utantur, effectus computationis p repraesentare non possit verbo validae magnitudinis utens.
  2. Cum data recipienda, formulae superiores habebuntur ut aequationum ratio solvenda est ad notitias repetendas. Per processum solutionis, necesse est integros ab invicem dividere, ex reali numero qui in memoria computatrali accurate repraesentari non potest.

Hae difficultates impediunt usum integri in codicibus Reed-Solomon. Solutio quaestionis originalis, hoc modo describi potest: ascendamus cum specialibus numeris qui repraesentari possunt utentes verbis longitudinis debitae (exempli gratia 16 bits), et effectus ad omnes operationes perficiendas in quibus (additio. detractio, multiplicatio, divisio etiam in memoria computatrali utens verbis debitae longitudinis exhibebitur.

Tales numeri mathematici diu studuerunt, dicuntur agri. Ager est locus elementorum cum operationibus additionis, subtractionis, multiplicationis et divisionis eis definitis.

Galois* agri sunt agri ad quos singulare cuiusque operationis (+, -,*,/) effectus est pro quibusvis duobus agri elementis. Agros Galois construi possunt pro numeris qui potestates sunt 2: 2, 4, 8, 16, etc. (Potestates actu numeri primi cuiusvis p, in usu autem tantum potentiae ipsius II interest). Verbi gratia, pro 2-bis verbis, hic campus est continens elementa 16, pro quibuslibet binis quorumlibet operationis exitum invenire potes (+, -, *, /). Valores ipsius x, p, alpha, beta, gamma, della ex aequationibus supra habebuntur elementa agri Galois pro calculis.

Sic habemus aequationum systema, cum quibus caudices redundantiae codes construere possumus aptam programmata computatralia scribendo. Eadem aequationum systemate utens, notitia recuperationis praestare potes.

* Haec non definitio proprie, sed descriptio est.

Quam ad recuperandam notitia

Reparatio necessaria est cum aliqui stipites n+m desunt. Hae esse possunt et notitiae caudices et caudices redundantiae codice. Absentia notitiarum caudices et/vel caudices redundantia codicis significabunt variabiles x et/ vel p correspondentes in aequationibus supra ignotas esse.

Aequationes pro codicibus Reed-Solomon haberi possunt pro aequationum systemate in quo omnes alpha, beta, gamma, delta valores constantes sunt, omnes x et p iunctis clausulis notae variabiles, reliquae x et p respondentes. ignota sunt.

Exempli causa, notitia caudices 1, 2, 3 et impedimentum superuacentiae 2 perpendat, tum pro verborum circulo i-th sequente aequationum systema erit (incognita rubris notata) ;

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Habemus systema 4 aequationum cum 4 incognitis, quod eam solvere ac notitias restituere possumus!

Ex hoc aequationum systemate sequuntur nonnullae conclusiones de notitiis receptandis in codicibus Reed-Solomon (n notitiarum caudices, m redundantiae codicis caudices);

  • Data recuperari potest si quis cuneos m vel pauciores pereunt. Si m+1 vel plures caudices pereunt, notitia restitui non potest: impossibile est systema aequationum m+1 cum incognitis solvere.
  • Ut vel unum truncum schedulam restituas, omni n reliquorum caudices uti debes et quibusvis codicibus redundantia uti potes.

Quid aliud est scire debes

In superius descriptione caveo plures quaestiones principales, quae altius in mathematicam considerare desiderant. Praesertim nihil de his loquor;

  • Systema aequationum in codicibus Reed-Solomon debet habere solutionem cuilibet incognitarum (non plus quam m incognitarum). Ex hac necessitate, valores alpha, beta, gamma et della deliguntur.
  • Systema aequationum automatice construi potest (prout quibus caudices perpendat) et solvuntur.
  • Oportet nos agrum Galois aedificare: data enim magnitudine verbi, exitum cuiuslibet operationis (+, -, *, /) invenire poterit pro quibusvis duobus elementis.

In fine articuli notae sunt litterae de his maximis rebus.

Electio n et m *

Quomodo eligere n&m in usu? In praxi, in notitiis systematis repositionis, codices redundantia ad spatium servandum adhibentur, ita m semper minus eligitur quam n. Eorum valores specifici ex pluribus factorum pendent, quos possidet:

  • Certa notitia repono. Maior m, maior numerus orbis defectis qui supervivere potest, id est, altior est constantia.
  • Superuacua repono. Quanto m/n ratio superior, eo superior nugatio erit, et ratio carior erit.
  • Request tempus processus. Quo maior summa n+m, eo longior tempus petitionum responsionis erit. Cum data lectio (per recuperationem) requirit legere n caudices in n diversis orbis repositis, tempus lecturum per orbem lentissimum determinabitur.

Praeterea accommodare notitias in pluribus DCs restrictiones additis in electione n et m imponit: si 1 DC declinatur, notitia adhuc in promptu erit legendi. Exempli causa, cum actarum notitiarum in 3 DCs, haec condicio occurrendum est: m >= n/2, aliter locus esse potest ubi notitia perpendat legendi cum 1 DC aversa est.

3. LRC - Localis reconstruction Codes

Ad notitias colligendas utentes codicibus reed-Solomon, uti n caudices datas habes. Valde notabile est hoc incommodum ad systemata reponendi distributa, quia notitias in uno disco fracto restitues, notitias ex pluribus aliis legere debebis, magnum additamentum onus in orbes ac retiaculum creans.

Errores frequentissimi sunt inaccessibilitas unius scandali notitiarum propter defectum vel oneris unius orbis. Licetne quodammodo reducere excessum onus pro notitia recuperationis in hoc casu? Evenit ut possis: additae sunt LRC codes specialiter ad hoc.

LRC (Cocles Reconstruction localis) additae sunt codices additae ab Microsoft ad usum in Fenestra Azure Repono. Idea LRC tam simplex est quam maxime: omnes notitias rerum in duos (vel plures) circulos dividere et partem codicis redundantiae caudices singulis divisim legere. Tunc quidam codex redundantia caudices computabuntur adhibitis omnibus notitiis caudices (in LRC qui vocantur codices global redundantia), et quidam - utens unum e duobus coetibus notitiarum caudices (dicuntur notae locorum redundantiae).

LRC tribus numeris notatur: nrl, ubi n numerus clausorum notitiarum est, r numerus clausorum globalis redundantia codicis, l numerus clausorum locorum redundantia codicis est. Legere notitias cum una notitia clausus pervulgatus est, debes tantum n/l caudices legere β€” hoc est l temporibus minus quam in codicibus Reed-Solomon.

Exempli gratia: schema LRC 6-2-2 consider. X1-X6 - 6 notitia caudices, P1, P2 - 2 cuneos globalis redundantia, P3, P4 - 2 locorum redundantia caudices.

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Codicis redundantia caudices P1, P2 utens omnes notitias caudices numerantur. Redundantia code impedimentum P3 - utens notitia caudices X1-X3, redundantia codice scandalum P4 - utens notitia caudices X4-X6.

Reliqua in LRC per analogiam cum codicibus Reed-Solomon. Aequationes computandi verba additae codicis caudices erunt:

Redundantia codes: in simplicibus verbis quomodo condere notitias certo ac vilio

Ad numeros alpha, beta, gamma, della, plures condiciones occurrere debent ut possibilitatem notitiae recuperationis spondeat (id est ratio aequationis solvendae). Plura de illis legere potes articulus.
Etiam in praxi, operatio XOR computare ponitur loci redundantia in codicibus P3, P4.

Sequuntur plures conclusiones ex aequationum ratione LRC:

  • Ad quemlibet 1 impedimentum datos, satis est legere cuneos n/l (in exemplo nostro n/2).
  • Si r + l caudices perpendant, omnesque caudices in uno globo includuntur, notitia restitui non potest. Hoc exemplo facile est exponere. Stipites X1-X3 et P3 sint unavailable: hi r+l caudices ex eodem coetu, in nostro casu 4 sunt. Tunc habemus systema aequationum 3 cum 4 incognitis quae solvi non possunt.
  • In omnibus aliis casibus de cautibus r+l necessariae (cum saltem unus clausus e singulis coetus praesto sit), notitia in LRC restitui potest.

Ita LRC outperformat Codices Reed-Solomon in recepta notitia post singulos errores. In codicibus Reed-Solomon, ut vel unum truncum notitiarum recipias, n stipitibus uti debes, et in LRC, ut unum truncum notitiarum recipias, satis est n/l cuneos uti (in exemplo nostro n/2). Ex altera parte, LRC inferior codicibus Reed-Solomon est secundum maximum numerum errorum licitorum. In exemplis supra, codicibus Reed-Solomon notitias pro quibusvis 4 erroribus recuperare potest, et pro LRC sunt 2 combinationes 4 errorum cum notitia recuperari non potest.

Quod magis pendet a situ specifico, sed saepe compendia in excessu oneris quae LRC praebet, paulo minus certa reposita praeponderante.

4. Alia redundantia codes

Praeter Codices Reed-Solomon et LRC, multae aliae sunt notae additae. Diversi codices redundantia diversis mathematicis utuntur. Hic sunt nonnulla alia additamenta codicis:

  • Redundantia code uti operator XOR. Operatio XOR in n data caudices exercetur, et 1 caudex redundantiae codicibus obtinetur, id est schema n+1 (n notitiarum caudices, 1 redundantia notae). Usus est in INCURSUS 5, ubi schedulae notitiarum et notae additae sunt cyclice scriptae ad omnes orbes ordinatae.
  • Etiam-odd algorithmus in operatione XOR fundatur. Permittit tibi ut 2 caudices redundantiae codes construas, id est n+2 schema.
  • Sidus algorithmus in operatione XOR fundatur. Permittit tibi ut 3 caudices redundantiae codes construas, id est n+3 schema.
  • Codices Pyramidis aliae additae sunt ex Microsoft.

5. Usus in Yandex

Plures infrastructurae Yandex inceptae nugationis codicibus utuntur ad certas notitias repositiones. Exempla hic sunt;

  • MDS repositionis objectum internum, quod in principio articuli scripsimus.
  • YT β€” MapReduce systema Yandex.
  • YDB (Yandex DataBase) - newSQL database distributa.

MDS utitur LRC redundantia in codicibus, 8-2-2 schema. Data cum codicibus redundantia scribitur ad 12 diversos orbis in diversis servientibus in 3 diversis DCs: 4 servientibus in singulis DC. Plura de hac lege in articulus.

YT utitur utrisque codicibus Reed-Solomon (Schema 6-3), qui primi fuerunt ad effectum deducendi, et LRC codicibus redundantia (Schema 12-2-2), cum LRC sit potior ratio repono.

YDB utitur etiam impari- bus codicibus redundantia (Figura 4-2). De additamentis codicibus in YDB iam dixit ad Highload.

Usus variarum technarum redundantiae codicis variis pro systematibus requisitis obvenit. Exempli gratia, in MDS data reposita usura LRC ponitur in 3 DCs simul. Praestat nobis notitias in promptu esse legendi si 1 quarumlibet DCs deficiat, ideo caudices inter DCs distribui debent ut, si quis DC perpendat, numerus inaccessibilis caudices non plus quam licitum sit. In schemate 8-2-2, 4 caudices in singulis DC ponere potes, tunc cum quaelibet DC aversa est, 4 caudices perpendent, et notitia legi potest. Quicquid schema eligamus cum in 3 DCs collocando, in casu quovis casu erit (r + l) / n >= 0,5, id est, nugatio repositionis saltem 50 erit.

In YT res aliter se habet: quilibet YT botrus totus in 1 DC collocatur (diversi racemi in DCs diversi), ideo nulla est ibi restrictio. Ratio 12-2-2 praebet redundantiam 33%, hoc est, notitia repono vilius est, et etiam superesse potest usque ad 4 orbis simultanei outages, sicut schema MDS.

Plures notae sunt notae redundantiae utendi in notitiis repositionis et rationum dispensandorum: nuances receptarum notitiarum, impulsus recuperationis in inquisitione temporis exsecutionis, notarum notabilium notarum, etc. Loquor separatim de his et aliis notis utendi. codicibus in praxi redundantia, si locus erit iucundus.

6. Vincula

  1. Series capitulorum de codicibus Reed-Solomon et agrorum Galois; https://habr.com/ru/company/yadro/blog/336286/
    https://habr.com/ru/company/yadro/blog/341506/
    Matheses in promptu sermone adipiscenda profundius intuentur.
  2. Articuli Microsoft circa LRC: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/LRC12-cheng20webpage.pdf
    Sectio 2 theoriam breviter explicat et dein de experimentis cum LRC in praxi discutit.
  3. Etiam consilium impar; https://people.eecs.berkeley.edu/~kubitron/courses/cs262a-F12/handouts/papers/p245-blaum.pdf
  4. Ordo stellarum: https://www.usenix.org/legacy/event/fast05/tech/full_papers/huang/huang.pdf
  5. Codices Pyramidis: https://www.microsoft.com/en-us/research/publication/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems/
  6. Redundantia codes in MDS: https://habr.com/ru/company/yandex/blog/311806
  7. Redundantia codes in YT: https://habr.com/ru/company/yandex/blog/311104/
  8. Redundantia codes in YDB: https://www.youtube.com/watch?v=dCpfGJ35kK8

Source: www.habr.com