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] :
- Solmun luku- ja kirjoitussekvenssi määrittää paikallisen syy-järjestyksen.
- Kirjoitustoiminto edeltää kausaalisesti toisen solmun lukutoimintoa, jos luku palauttaa kyseisen kirjoitusoperaation kirjoittaman arvon. Tämä on prosessien välinen tilaussuhde.
- 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] :
- kaikkia syy-suhteita ei voida määrittää järjestelmän sisällä,
- ei aina ole mahdollista vaatia globaalien invarianttien täyttymistä ,
- Samanaikaisten kirjoitusten toteuttamisen logiikka voi olla vaikea toteuttaa.
Erityisesti on selvitettävä, riittääkö pelkkä vanhan tiedon päällekirjoittaminen vai tarvitaanko erillisiä mekanismeja ristiriitaisten tietueiden ratkaisemiseksi.
Muistiinpanot
- ↑ Odintsov I. O. Ammattimainen ohjelmointi. Järjestelmällinen lähestymistapa. - 2. - Pietari. : BHV-Petersburg, 2004. - S. 520-521.
- ↑ Vijay K. Garg Samanaikainen ja hajautettu tietojenkäsittely Javassa. John Wiley & Sons, 28. tammikuuta 2005 - Tietokoneet - 336 sivua. p60
- ↑ Kshemkalyani, Singhal, 2011 , s. 420-423.
- ↑ Kshemkalyani, Singhal, 2011 , 12.2.3 Kausaalinen johdonmukaisuus.
- ↑ 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
- Kryukov V. A. Luentokurssi "Hajautetut käyttöjärjestelmät" 6. Hajautettu jaettu muisti
- Pradeep K. Sinha. Syy-yhteensopivuusmalli // Hajautetut käyttöjärjestelmät: käsitteet ja suunnittelu . — PHI Learning Pvt. Ltd., 1998. - S. 239-240. — 761 s. — ISBN 9788120313804 .
- Kshemkalyani, AD ja Singhal, M. Distributed Computing: Principles, Algorithms and Systems. - Cambridge University Press, 2011. - ISBN 9781139470315 .
- M. Ahamad, G. Neiger, J. E. Burns, P. Kohli ja P. Hutto. Kausaalinen muisti: Määritelmät, toteutus ja ohjelmointi. Hajautettu tietotekniikka, 9(1), 19
- Bailis, Peter ja Ghodsi, Ali ja Hellerstein, Joseph M. ja Stoica, Ion (2013). Kiinnitettävä kausaalinen johdonmukaisuus . Vuoden 2013 ACM SIGMOD - kansainvälisen tiedonhallintakonferenssin aineisto . SIGMOD '13. New York, New York, USA: ACM. s. 761-772. DOI : 10.1145/2463676.2465279 . Haettu 2013-12-06 .