Kausaalinen johdonmukaisuus

Kausaalinen johdonmukaisuus on johdonmukaisuusmalli  , joka ei edellytä kaikkien prosessien näkevän samaa tietuesarjaa muistissa, erottamalla potentiaalisesti riippuvaiset (yhden tietue voi riippua toisen solun lukemisen tuloksesta) ja potentiaalisesti riippumattomista (rinnakkaisista) kirjoitusoperaatioista [ 1] .

Järjestelmä saavuttaa kausaalisen johdonmukaisuuden, jos kaikki järjestelmän solmut huomioivat muistioperaatiot, jotka ovat mahdollisesti kausaalisesti yhteydessä. Eri solmut voivat tarkastella samanaikaisia ​​kirjoitusoperaatioita (eli ne, jotka eivät liity kausaalisesti toisiinsa) eri järjestyksessä. Tällainen johdonmukaisuus on heikompi kuin peräkkäinen johdonmukaisuus , joka edellyttää kaikkien solmujen näkevän kaikki tietueet samassa järjestyksessä [2] , mutta vahvempi kuin PRAM-yhteensopivuus , jossa vain yhden solmun tekemät tietueet olisivat näkyvissä samassa järjestyksessä mikä tahansa muu solmu [3] .

Hajautettujen jaettujen muistijärjestelmien toimintojen (tapahtumien) väliset syy-seuraussuhteet voidaan määritellä seuraavasti [4] :

  1. Solmun luku- ja kirjoitussekvenssi määrittää paikallisen syy-järjestyksen.
  2. Kirjoitustoiminto edeltää kausaalisesti toisen solmun lukutoimintoa, jos luku palauttaa kyseisen kirjoitusoperaation kirjoittaman arvon. Tämä on prosessien välinen tilaussuhde.
  3. Ja lopuksi kausaalijärjestystä pidetään transitiivisena : eli jos operaatio A (kausaalisesti) seuraa B:tä ja B - ennen C:tä, niin A on kausaalisuusjärjestyksessä ennen C:tä. Eli paikallissuhteiden transitiivinen sulkeutuminen ja prosessien väliset tilaukset määräävät globaalin kausaalijärjestyksen.

Edut ja haitat

Säilyttämällä taatun matalan latenssin toimintojen ominaisuuden, kausaalinen johdonmukaisuus on parempi kuin lopullinen johdonmukaisuus sekä käyttäjille että ohjelmoijille. Se ottaa huomioon toimintojen väliset syy-seuraussuhteet ja varmistaa, että jokainen solmu näkee toiminnot määritetyssä järjestyksessä. Syy-yhteensopivuus helpottaa myös ohjelmointia, koska ei tarvitse ottaa huomioon epäolennaisia ​​toimintoja [5] .

Syy-yhtenäisyydellä on kuitenkin myös joitain haittoja [5] :

Erityisesti on selvitettävä, riittääkö pelkkä vanhan tiedon päällekirjoittaminen vai tarvitaanko erillisiä mekanismeja ristiriitaisten tietueiden ratkaisemiseksi.

Muistiinpanot

  1. Odintsov I. O. Ammattimainen ohjelmointi. Järjestelmällinen lähestymistapa. - 2. - Pietari. : BHV-Petersburg, 2004. - S. 520-521.
  2. Vijay K. Garg Samanaikainen ja hajautettu tietojenkäsittely Javassa. John Wiley & Sons, 28. tammikuuta 2005 - Tietokoneet - 336 sivua. p60
  3. Kshemkalyani, Singhal, 2011 , s. 420-423.
  4. Kshemkalyani, Singhal, 2011 , 12.2.3 Kausaalinen johdonmukaisuus.
  5. 1 2 Wyatt Lloyd, Michael J. Freedman, Michael Kaminsky, David G. Andersen. Lyhyt perustelu kausaalista johdonmukaisuudesta ;kirjautuminen: The USENIX Magazine, osa 38, numero 4, elokuu 2013.

Kirjallisuus