Download - Chapter 10 Global Properties
![Page 1: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/1.jpg)
Chapter 10
Global Properties
![Page 2: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/2.jpg)
Unstable Predicate Detection
A predicate is stable if, once it becomes true it remains true
Snapshot algorithm is not useful for detection of global properties: Not applicable for unstable predicates Can not compute the least global state that
satisfies a given predicate Excessive overhead if frequency of snapshots is
high
![Page 3: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/3.jpg)
Predicates
Any predicate B constructed from local predicates using boolean connectives can be written in a disjunctive normal form i.e.
where q1, q2, …,qn are conjunctive predicates E.g. : x = y (where x and y are boolean) can
be written as
![Page 4: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/4.jpg)
Weak Conjunctive Predicate (WCP) A Weak Conjunctive Predicate (WCP) is true
iff there exists a consistent global cut in which all the conjuncts are true
Disjunctive predicates are easy to detect Given an algorithm for detecting WCP we can
detect any predicate B constructed from local predicates using boolean connectives
![Page 5: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/5.jpg)
WCP Algorithm outline
Non-Checker process Maintains a vector clock Sends vector clock to
checker process when predicate becomes true
![Page 6: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/6.jpg)
WCP Algorithm outline
Checker process Maintains a separate queue for
each non-checker process Maintain a cut[1..N] (array of
states of the processes) If state cut[i] ! cut[j], then cut[i]
= queuei.getNext() Repeat above statement till all
states in cut[ ] are concurrent cut[ ] is the least CGS for
which the predicate holds
![Page 7: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/7.jpg)
WCP Detection - Checker Process
![Page 8: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/8.jpg)
Overhead Analysis
n: number of processes involved m: max number of messages sent or
received by any process Space :
Each local snapshot : O(n) At most O(mn) local snapshots O(n2m) total space
Time: n2m comparisons O(n2m)
![Page 9: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/9.jpg)
Is the time complexity optimal ? Lemma :
Let there be n elements in a set S . Any algorithm that determines whether all elements are incomparable must make at least n(n-1)/2 comparisons.
![Page 10: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/10.jpg)
Is the time complexity optimal ? Theorem
Let S be any partially ordered finite set of size mn. We are given a decomposition of S into n sets P0 … Pn-1 such that Pi
is a chain of size m . Any algorithm that determines whether there exists an anti-chain of size n must make at least mn(n-1)/2 comparisons
Adversary algorithm
![Page 11: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/11.jpg)
A Token based algorithm for WCP
Monitor process runs on each node along with the application
Monitor processes pass the token to each other
Token stores candidate cut and information to determine if it is consistent
Monitor Process
Application Process
Node Pi
![Page 12: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/12.jpg)
A Token based algorithm for WCP A token is sent to a process Pi when current
state from Pi happened before some other state in the candidate cut
Once the monitor process for Pi has eliminated the current state receive a new state from the application process check for consistency conditions again.
This process is repeated until all states are eliminated from some process Pi or the WCP is detected.
![Page 13: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/13.jpg)
A Token based algorithm for WCP Token consists of two vectors G and color
G represents the candidate global cut G[i] = k indicates that state (i,k) is part of the current cut Invariant: G[i] = k implies that any global cut C with state
(i,s) 2 C and s < k cannot satisfy the WCP color indicates which states have been eliminated
If color[i]=red, then state (i,G[i]) has been eliminated and can never satisfy the global predicate
![Page 14: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/14.jpg)
A Token based algorithm for WCP
![Page 15: Chapter 10 Global Properties](https://reader036.vdocument.in/reader036/viewer/2022082711/56812f39550346895d94cbd7/html5/thumbnails/15.jpg)
Applications
Distributed debugging Detect a bad condition
E.g. There is no leader ,i.e., P1 does not have a token and
P2 does not have a token and
. . .
Pn does not have a token