Sistemi žetve, pridelka in razširljivi tolerantni sistemi: Povzetek

Ta članek predstavlja povzetek članka »Harvest, donos in razširljivi tolerantni sistemi«, ki so ga izdali Eric Brewer & Amando Fox leta 1999. Vsi nenavedeni citati so iz tega članka.

Prispevek obravnava kompromise med skladnostjo in razpoložljivostjo (CAP) za velike sisteme. Zelo enostavno je pokazati na SKP in trditi, da noben sistem ne more biti dosleden in razpoložljiv.

Toda ulov je. SKP je bila na različne načine napačno razumljena. Kot pojasnjuje Coda Hale v svojem odličnem zapisu v spletnem dnevniku "Ne morete žrtvovati tolerance za particije":

Od doslednosti, razpoložljivosti in tolerance particije CAP izreka je toleranca particije obvezna v porazdeljenih sistemih. Ne morete ga ne izbrati. Namesto SKP bi morali razmisliti o svoji razpoložljivosti glede na donos (odstotek zahtevkov, na katere je bil odgovor uspešno odziv) in letino (odstotek zahtevanih podatkov, ki so dejansko vključeni v odgovore) in katere od teh dveh sistemov bo žrtvoval, ko pride do napak.

Prispevek se osredotoča na povečanje razpoložljivosti velikih sistemov z odpornostjo, zadrževanjem in izolacijo napak:

Predvidevamo, da odjemalci poizvedujejo po strežnikih, v tem primeru obstajata vsaj dve metriki za pravilno vedenje: donos, kar je verjetnost izpolnitve zahteve, in pridelek, ki meri delež podatkov, ki se odraža v odgovoru, tj. popolnost odgovora na poizvedbo.

Dve metriki, letino in donos lahko povzamemo na naslednji način:

  • Žetev : podatki v odgovoru / skupni podatki

    Na primer: Če je eno od vozlišč navzdol v gruči s 100 vozlišči, je letina med trajanjem napake 99%.

  • Donos : zahteve izpolnjene z uspehom / skupno število zahtev

    Opomba: Donos se razlikuje od uptime. Donos obravnava število zahtev, ne le čas, ko se sistem ni mogel odzvati na zahteve.

Prispevek trdi, da obstajajo nekateri sistemi, ki zahtevajo popolne odgovore na poizvedbe vsakič. Obstajajo tudi sistemi, ki občasno prenašajo nepopolne odgovore.

Da bi povečali splošno razpoložljivost naših sistemov, moramo skrbno pretehtati zahtevano doslednost in jamstva glede razpoložljivosti, ki jih mora zagotoviti.

Trgovanje žetve za donos - verjetnostna razpoložljivost

Skoraj vsi sistemi so verjetnostni, ne glede na to, ali se tega zavedajo ali ne. Zlasti je vsak sistem, ki je stoodstotno na voljo pri posameznih napakah, na splošno verjetnostno na voljo (ker obstaja verjetnost več napak, ki ni enaka nič)

Prispevek govori o razumevanju verjetnostne narave razpoložljivosti. To pomaga pri razumevanju in omejevanju vpliva napak z odločanjem o tem, kaj mora biti na voljo in s kakšnimi napakami se sistem lahko spopade.

Orisujejo linearno poslabšanje letine v primeru več napak vozlišča. Letina je neposredno sorazmerna s številom vozlišč, ki delujejo pravilno. Zato se linearno zmanjšuje / povečuje.

Za povečanje donosa se predlagata dve strategiji:

  1. Naključna distribucija podatkov na vozliščih

    Če eno od vozlišč pade, se vedenje napak v povprečnem primeru in v najslabšem primeru ne spremeni. Če pa distribucija ni naključna, se lahko vpliv napake razlikuje glede na vrsto podatkov.

    Če na primer pade samo eno od vozlišč, shranjenih informacij, povezanih s stanjem uporabnikovega računa, celoten bančni sistem ne bo mogel delovati.

  2. Kopiranje najpomembnejših podatkov

    To zmanjša učinek, če se eno od vozlišč, ki vsebuje podnabor visoko prioritetnih podatkov, zniža.

    Izboljša tudi letino.

Druga pomembna ugotovitev v prispevku je, da je mogoče vse vaše podatke ponoviti. Za izboljšanje vaše letine / pridelka ne prispeva veliko, vendar znatno poveča stroške delovanja. To je zato, ker internet deluje na podlagi najboljših protokolov, ki nikoli ne morejo zagotoviti 100% pridelka / donosa.

Razgradnja aplikacij in pravokotni mehanizmi

Druga strategija se osredotoča na prednosti pravokotne zasnove sistema.

Začne se z izjavo, da so veliki sistemi sestavljeni iz podsistemov, ki ne prenesejo napak. Vendar ne uspejo na način, ki omogoča, da celoten sistem še naprej deluje, kar vpliva na uporabnost.

Dejanska korist je zmožnost zagotavljanja upravljanja stanja vsakega podsistema ločeno, pri čemer se zagotavlja doslednost ali trajno stanje samo za podsisteme, ki ga potrebujejo, ne pa tudi za celotno aplikacijo. Prihranki so lahko znatni, če le nekaj majhnih podsistemov zahteva dodatno zapletenost.

Prispevek navaja, da so pravokotne komponente med seboj popolnoma neodvisne. Za druge komponente nimajo vmesnika med izvajanjem, razen če obstaja konfiguracijski vmesnik. To omogoča, da vsaka posamezna komponenta neodvisno odpove, in zmanjša njen vpliv na celotni sistem.

Sestava pravokotnih podsistemov preusmeri breme preverjanja morebitnih škodljivih interakcij iz časa izvajanja na čas prevajanja, uvajanje mehanizmov pravokotne zaščite pa izboljša robustnost med izvajanjem interakcij, ki se pojavijo, z zagotavljanjem izboljšanega zadrževanja napak.

Cilj prispevka je bil spodbuditi raziskave na področju oblikovanja odpornih in visoko razpoložljivih sistemov velikega obsega.

Pazljivo premislite tudi o skladnosti in razpoložljivosti, ki jih mora zagotoviti aplikacija. Poleg kompromisov, ki jih je sposoben doseči v smislu letine in donosa.

Če ste uživali v tem prispevku, pritisnite gumb za ploskanje, da ga vidi več ljudi. Hvala vam.

PS - Če ste prišli tako daleč in bi radi prejeli e-pošto, kadar objavim eno od teh objav, se prijavite tukaj.