Global snapshots 11
- ak pre nejakú premennú y neplatí
tak premenné rozdelíme do skupín a zaznamenávanie aplikujeme zvlášt pre kazdú skupinu
Program P2
initially ? ||x:: x.done = false ?
transform ?t
? ||x: t obsahuje x ? ?x.done::
x.rec, x.done = x, true if ? ?y: t obsahuje y:: y.done ??
|| t
add
first.rec, first.done = first, true if begun ? ?first.done ?
Distribuovaná architektúra:
Nech iniciátor je proces, ktorý iniciuje zaznamenávanie tak, ze zaznamená svoj vlastný stav a pošle markre na všetky vychádzajúce kanály
Proces, ktorý ešte nezaznamenal svoj stav, po prijatí markra zaznamená svoj stav a pošle marker na všetky vychádzajúce kanály, ktoré mu patria
Stav kanálaje zaznamenaný procesom, ktorý z neho prijíma správy ? je to postupnost správ prijatá po tom, co jeho vlastný stav je zaznamenaný a prv, nez sa príjme marker