* Hauv cov ntaub ntawv Askiv, cov lej redundancy feem ntau hu ua erasure codes.
1. Lub ntsiab lus ntawm redundancy codes
Lub ntsiab lus ntawm tag nrho cov lej redundancy yog qhov yooj yim heev: khaws cia (lossis xa tawm) cov ntaub ntawv kom nws tsis ploj thaum muaj teeb meem tshwm sim (disk tsis ua haujlwm, hloov cov ntaub ntawv yuam kev, thiab lwm yam).
Nyob rau hauv feem ntau * redundancy codes, cov ntaub ntawv muab faib ua n cov ntaub ntawv thaiv, uas m blocks ntawm redundancy codes raug suav, uas ua rau tag nrho cov n + m blocks. Redundancy cov lis dej num yog tsim nyob rau hauv xws li ib txoj kev uas n blocks ntawm cov ntaub ntawv yuav rov qab tau siv tsuas yog ib feem ntawm n + m blocks. Tom ntej no, peb yuav txiav txim siab tsuas yog thaiv cov lej redundancy, uas yog, cov ntaub ntawv muab faib ua cov blocks.
Yuav kom rov qab tau tag nrho n blocks ntawm cov ntaub ntawv, koj yuav tsum muaj tsawg kawg n ntawm n + m blocks, vim koj tsis tuaj yeem tau n blocks los ntawm tsuas yog n-1 thaiv (qhov no, koj yuav tsum tau siv 1 block "tawm ntawm nyias. airβ). Puas yog n random blocks ntawm n + m blocks txaus los rov qab tau tag nrho cov ntaub ntawv? Qhov no yog nyob ntawm hom redundancy codes, piv txwv li, Reed-Solomon codes tso cai rau koj rov qab tau tag nrho cov ntaub ntawv siv arbitrary n blocks, tab sis LRC redundancy codes tsis tas li.
Cov ntaub ntawv cia
Nyob rau hauv cov ntaub ntawv khaws cia systems, raws li txoj cai, txhua tus ntawm cov ntaub ntawv thaiv thiab redundancy code blocks yog sau rau ib tug nyias muaj nyias disk. Tom qab ntawd, yog tias qhov kev txiav txim siab tsis ua tiav, cov ntaub ntawv qub tseem tuaj yeem rov qab los thiab nyeem. Cov ntaub ntawv tuaj yeem rov qab tau txawm tias ntau lub disks tsis ua haujlwm tib lub sijhawm.
Kev hloov ntaub ntawv
Redundancy codes tuaj yeem siv los xa cov ntaub ntawv hauv lub network tsis muaj kev ntseeg siab. Cov ntaub ntawv kis tau muab faib ua cov blocks, thiab cov lej rov qab raug suav rau lawv. Ob cov ntaub ntawv thaiv thiab redundancy code blocks raug xa mus rau hauv lub network. Yog tias qhov yuam kev tshwm sim hauv cov blocks arbitrary (txog rau qee tus lej ntawm cov blocks), cov ntaub ntawv tseem tuaj yeem xa mus rau hauv lub network yam tsis muaj qhov yuam kev. Piv txwv li, Reed-Solomon codes yog siv los xa cov ntaub ntawv hla kev sib txuas lus kho qhov muag thiab hauv kev sib txuas lus satellite.
* Tseem muaj cov lej redundancy uas cov ntaub ntawv tsis tau muab faib ua cov blocks, xws li Hamming cov lej thiab CRC cov lej, uas tau siv dav rau kev xa cov ntaub ntawv hauv Ethernet networks. Cov no yog cov lis dej num rau kev ua yuam kev-kho coding, lawv tau tsim los xyuas qhov yuam kev, thiab tsis kho lawv (lub Hamming code kuj tso cai rau kev kho ib feem ntawm qhov yuam kev).
2. Reed-Solomon codes
Reed-Solomon cov lis dej num yog ib qho ntawm feem ntau siv redundancy codes, invented rov qab nyob rau hauv 1960s thiab thawj zaug siv nyob rau hauv 1980s rau loj zus tau tej cov compact discs.
Muaj ob lo lus nug tseem ceeb rau kev nkag siab Reed-Solomon codes: 1) yuav ua li cas los tsim cov blocks ntawm redundancy codes; 2) yuav ua li cas rov qab tau cov ntaub ntawv siv redundancy code blocks. Cia peb nrhiav cov lus teb rau lawv.
Rau qhov yooj yim, peb yuav ntxiv xav tias n = 6 thiab m = 4. Lwm cov tswv yim yog xam los ntawm kev sib piv.
Yuav ua li cas los tsim redundancy code blocks
Txhua block ntawm redundancy codes raug suav ntawm nws tus kheej ntawm lwm tus. Tag nrho n cov ntaub ntawv thaiv yog siv los suav txhua qhov thaiv. Nyob rau hauv daim duab hauv qab no, X1-X6 yog cov ntaub ntawv thaiv, P1-P4 yog redundancy code blocks.
Tag nrho cov ntaub ntawv thaiv yuav tsum yog tib qhov loj, thiab xoom cov khoom siv tau rau kev sib tw. Cov txiaj ntsig redundancy code blocks yuav yog qhov loj tib yam li cov ntaub ntawv thaiv. Tag nrho cov ntaub ntawv thaiv tau muab faib ua cov lus (piv txwv li, 16 khoom). Wb hais tias peb faib cov ntaub ntawv blocks rau hauv k lo lus. Ces tag nrho cov blocks ntawm redundancy codes kuj yuav muab faib ua k lo lus.
Txhawm rau suav cov lus i-th ntawm txhua qhov kev rov ua dua tshiab, cov lus i-th ntawm tag nrho cov ntaub ntawv thaiv yuav raug siv. Lawv yuav raug xam raws li cov qauv hauv qab no:
Ntawm no tus nqi x yog cov lus ntawm cov ntaub ntawv thaiv, p yog cov lus ntawm redundancy code blocks, tag nrho alpha, beta, gamma thiab delta yog tshwj xeeb xaiv cov lej uas zoo ib yam rau tag nrho i. Nws yuav tsum tau hais tam sim ntawd tias tag nrho cov txiaj ntsig no tsis yog tus lej zoo tib yam, tab sis cov ntsiab lus ntawm Galois teb; kev ua haujlwm +, -, *, / tsis yog kev ua haujlwm paub peb txhua tus, tab sis cov haujlwm tshwj xeeb qhia txog cov ntsiab lus ntawm Galois. teb.
Raws li tau hais los saum no, lo lus loj yog tsau, hauv peb qhov piv txwv 16 khoom. Cov qauv saum toj no rau Reed-Solomon cov lej yog xws li thaum siv cov lej zoo tib yam, qhov tshwm sim ntawm kev suav p yuav tsis tuaj yeem sawv cev siv lo lus ntawm qhov loj me.
Thaum rov qab cov ntaub ntawv, cov qauv saum toj no yuav raug suav tias yog ib qho kev sib npaug uas yuav tsum tau daws kom thiaj li rov qab tau cov ntaub ntawv. Thaum lub sij hawm kev daws teeb meem, nws yuav tsum tau faib cov zauv los ntawm ib leeg, uas ua rau muaj tus lej tiag tiag uas tsis tuaj yeem sawv cev rau hauv lub cim xeeb hauv computer.
Cov teeb meem no tiv thaiv kev siv cov lej rau Reed-Solomon codes. Txoj kev daws teeb meem yog qhov qub, nws tuaj yeem piav qhia raws li hauv qab no: cia peb los nrog cov lej tshwj xeeb uas tuaj yeem sawv cev siv cov lus ntawm qhov xav tau ntev (piv txwv li, 16 khoom), thiab cov txiaj ntsig ntawm kev ua txhua yam haujlwm uas (ntxiv. , rho tawm, sib npaug, faib) kuj yuav nthuav tawm hauv lub computer nco siv cov lus ntawm qhov ntev yuav tsum tau ua.
Cov lej "tshwj xeeb" tau kawm los ntawm lej tau ntev lawm; lawv hu ua teb. Ib daim teb yog ib pawg ntawm cov ntsiab lus nrog kev ua haujlwm ntawm qhov sib ntxiv, rho tawm, sib faib thiab faib tau txhais rau lawv.
Kev kho dua tshiab yog xav tau thaum qee qhov n + m blocks ploj lawm. Cov no tuaj yeem yog ob qho tib si cov ntaub ntawv thaiv thiab redundancy code blocks. Qhov tsis muaj cov ntaub ntawv thaiv thiab / lossis rov ua dua cov lej thaiv yuav txhais tau tias qhov sib txuas x thiab / lossis p qhov sib txawv tsis paub nyob rau hauv qhov sib npaug saum toj no.
Qhov sib npaug rau Reed-Solomon cov lis dej num tuaj yeem pom tau tias yog ib qho kev sib npaug uas tag nrho cov alpha, beta, gamma, delta qhov tseem ceeb, tag nrho x thiab p sib raug rau cov blocks muaj yog paub txawv, thiab cov seem x thiab p. tsis paub.
Piv txwv li, cia cov ntaub ntawv thaiv 1, 2, 3 thiab redundancy code block 2 tsis muaj, ces rau pawg i-th ntawm cov lus yuav muaj cov kab ke hauv qab no ntawm kev sib npaug (tsis paub yog cim liab):
Los ntawm cov kab ke ntawm qhov sib npaug no ntau cov lus xaus ua raws li cov ntaub ntawv rov qab rau Reed-Solomon codes (n data blocks, m redundancy code blocks):
Cov ntaub ntawv tuaj yeem rov qab tau yog tias ib qho m blocks lossis tsawg dua ploj. Yog tias m + 1 lossis ntau qhov blocks ploj lawm, cov ntaub ntawv tsis tuaj yeem rov qab los: nws tsis tuaj yeem daws qhov system ntawm m sib npaug nrog m + 1 tsis paub.
Hauv cov lus piav qhia saum toj no, kuv zam ntau qhov teeb meem tseem ceeb uas yuav tsum tau ua kom tob tob rau hauv lej los xav txog. Tshwj xeeb, kuv tsis tau hais dab tsi txog cov hauv qab no:
Yuav ua li cas xaiv n thiab m hauv kev xyaum? Nyob rau hauv kev xyaum, nyob rau hauv cov ntaub ntawv cia systems, redundancy codes yog siv los cawm qhov chaw, yog li ntawd m yeej ib txwm xaiv tsawg tshaj n. Lawv cov txiaj ntsig tshwj xeeb yog nyob ntawm ntau yam, suav nrog:
Kev ntseeg tau ntawm cov ntaub ntawv khaws cia. Qhov loj dua m, ntau dua cov disk tsis ua haujlwm uas tuaj yeem muaj sia nyob, uas yog, qhov kev ntseeg siab dua.
Kev khaws cia tsis tu ncua. Qhov siab dua qhov sib piv m / n, qhov ntau dua qhov kev cia khoom rov ua dua yuav yog, thiab qhov kim dua qhov system yuav yog.
Thov lub sijhawm ua haujlwm. Qhov loj dua tus lej n + m, lub sijhawm teb rau qhov kev thov yuav ntev dua. Txij li thaum nyeem cov ntaub ntawv (thaum rov qab los) yuav tsum tau nyeem n blocks khaws cia rau n sib txawv disks, lub sijhawm nyeem ntawv yuav txiav txim siab los ntawm qhov qeeb tshaj disk.
Tsis tas li ntawd, kev khaws cov ntaub ntawv hauv ntau lub DCs txwv tsis pub ntxiv rau kev xaiv ntawm n thiab m: yog tias 1 DC raug kaw, cov ntaub ntawv tseem yuav tsum muaj rau kev nyeem ntawv. Piv txwv li, thaum khaws cov ntaub ntawv hauv 3 DCs, yuav tsum ua raws li cov xwm txheej hauv qab no: m > = n / 2, txwv tsis pub yuav muaj qhov xwm txheej uas cov ntaub ntawv tsis muaj rau kev nyeem ntawv thaum 1 DC raug tua.
3. LRC - Local Reconstruction Codes
Yuav kom rov qab tau cov ntaub ntawv siv Reed-Solomon cov lej, koj yuav tsum siv cov ntaub ntawv tsis txaus ntseeg. Qhov no yog qhov tsis zoo heev rau kev faib cov ntaub ntawv khaws cia, vim tias txhawm rau kho cov ntaub ntawv ntawm ib qho tawg, koj yuav tsum tau nyeem cov ntaub ntawv los ntawm feem ntau ntawm lwm tus, tsim kom muaj qhov loj ntxiv ntawm cov disks thiab lub network.
Feem ntau yuam kev yog qhov tsis muaj peev xwm nkag tau ntawm ib qho thaiv cov ntaub ntawv vim qhov tsis ua haujlwm lossis dhau ntawm ib lub disk. Puas yog nws ua tau los txo qis cov load ntau dhau rau cov ntaub ntawv rov qab hauv qhov no (feem ntau)? Nws hloov tawm tias koj tuaj yeem: muaj LRC redundancy codes tshwj xeeb rau lub hom phiaj no.
LRC (Local Reconstruction Codes) yog cov lej redundancy tsim los ntawm Microsoft rau siv hauv Windows Azure Storage. Lub tswv yim ntawm LRC yog qhov yooj yim li sai tau: faib tag nrho cov ntaub ntawv blocks rau hauv ob (lossis ntau dua) pawg thiab nyeem ib feem ntawm cov lej rov ua dua rau txhua pab pawg sib cais. Tom qab ntawd qee qhov redundancy code blocks yuav raug suav siv tag nrho cov ntaub ntawv thaiv (hauv LRC lawv raug hu ua cov lej redundancy thoob ntiaj teb), thiab qee qhov - siv ib ntawm ob pawg ntawm cov ntaub ntawv thaiv (lawv hu ua cov lej redundancy hauv zos).
LRC yog txhais los ntawm peb tus lej: nrl, qhov twg n yog tus naj npawb ntawm cov ntaub ntawv thaiv, r yog tus lej ntawm lub ntiaj teb redundancy code blocks, l yog tus lej ntawm cov lej hauv zos redundancy code blocks. Txhawm rau nyeem cov ntaub ntawv thaum ib cov ntaub ntawv thaiv tsis muaj, koj yuav tsum nyeem tsuas yog n / l blocks - qhov no yog l zaus tsawg dua hauv Reed-Solomon codes.