Ok-okozati konzisztencia

Az ok- okozati konzisztencia egy olyan  konzisztencia modell , amely nem követeli meg minden folyamattól, hogy ugyanazt a rekordsorozatot lássa a memóriában, megkülönböztetve a potenciálisan függő (egy rekord egy másik cella beolvasásának eredményétől függ) és a potenciálisan független (párhuzamos) írási műveletek között . 1] .

A rendszer akkor éri el az oksági konzisztenciát, ha a potenciálisan ok-okozati összefüggésben lévő memóriaműveleteket a rendszer összes csomópontja ugyanabban a sorrendben veszi figyelembe. Az egyidejű írási műveleteket (vagyis azokat, amelyek nincsenek ok-okozati összefüggésben) a különböző csomópontok eltérő sorrendben vehetik figyelembe. Ez a fajta konzisztencia gyengébb, mint a szekvenciális konzisztencia , amely megköveteli, hogy minden csomópont az összes rekordot ugyanabban a sorrendben lássa [2] , de erősebb, mint a PRAM konzisztencia , amelyben csak az egyik csomópont által készített rekordok lennének láthatóak ugyanabban a sorrendben bármely más csomópont által [3] .

Az elosztott osztott memóriarendszerek műveletei (események) közötti ok-okozati összefüggések a következőképpen definiálhatók [4] :

  1. A csomóponton lévő olvasási és írási sorrend határozza meg a helyi oksági sorrendet.
  2. Egy írási művelet okozatilag megelőzi egy másik csomóponton végzett olvasási műveletet, ha az olvasás az adott írási művelet által írt értéket adja vissza. Ez egy folyamatok közötti rendelési kapcsolat.
  3. És végül az oksági sorrendet tranzitívnak tekintjük : vagyis ha A művelet (okságilag) követi B-t, és B - C előtt, akkor A az oksági sorrendben van C előtt. Vagyis a lokális kapcsolatok tranzitív lezárása . és az interprocess orders határozza meg a globális oksági sorrendet.

Előnyök és hátrányok

A garantáltan alacsony késleltetésű műveletek tulajdonságainak megőrzésével az ok-okozati konzisztencia jobb, mint a végső konzisztencia mind a felhasználók, mind a programozók számára. Figyelembe veszi a műveletek közötti ok-okozati összefüggéseket, és biztosítja, hogy minden csomópont a megadott sorrendben látja a műveleteket. Az ok-okozati konzisztencia a programozást is megkönnyíti azáltal, hogy nincs szükség irreleváns műveletek figyelembevételére [5] .

Az ok-okozati összefüggésnek azonban vannak hátrányai is [5] :

Különösen azt kell megállapítani, hogy elegendő-e a régi adatok egyszerű felülírása, vagy külön mechanizmusok szükségesek az ütköző rekordok feloldásához.

Jegyzetek

  1. Odintsov I. O. Professzionális programozás. Rendszerszemléletű. - 2. - Szentpétervár. : BHV-Petersburg, 2004. - S. 520-521.
  2. Vijay K. Garg Párhuzamos és elosztott számítástechnika Java nyelven. John Wiley & Sons, 2005. január 28. - Számítógépek - 336 oldal. 60. o
  3. Kshemkalyani, Singhal, 2011 , pp. 420-423.
  4. Kshemkalyani, Singhal, 2011 , 12.2.3 Oksági konzisztencia.
  5. 1 2 Wyatt Lloyd, Michael J. Freedman, Michael Kaminsky, David G. Andersen. Rövid alapozó az ok-okozati konzisztenciáról ;bejelentkezés: The USENIX Magazine, 38. évf., 4. szám, 2013. augusztus.

Irodalom