Upload
talon
View
38
Download
0
Embed Size (px)
DESCRIPTION
Causal Message Logging(FBL). Rohit C Fernandes 10/23/01. Overview. Intuition Family Based Logging Manetho. System Model. Fixed Number of Processes (N->N) Reliable FIFO Communication Channels Fail Stop Processes Only non determinism is in message receive ( receive_any ) - PowerPoint PPT Presentation
Citation preview
Causal Message Logging(FBL)
Rohit C Fernandes10/23/01
Overview
Intuition Family Based Logging Manetho
System Model Fixed Number of Processes (N->N) Reliable FIFO Communication
Channels Fail Stop Processes Only non determinism is in message
receive ( receive_any ) Rollback Recovery (checkpoints and
message logs)
Determinant
#m = <sender,receiver,ssn,rsn>
Requirements of logging protocol Tolerate upto f simultaneous
failures Low failure-free overhead Only failed processes roll back (What about optimistic and
pessimistic protocols?)
Causal Logging : Intuition Piggyback determinant of non-
deterministic event on outgoing messages
Determinant? How to control the amount of
piggybacking?
Controlling Piggyback Size To recover from f failures, we need
to store the determinant at f+1 places
f < 3 : easy Recovering from 3 failures (?) Clearly not optimal
f=1
f=2
f=3?
Definitions Depend(m) =set of processes
whose state causally depends on delivery of m
Log(m) = set of processes where #m is logged
Stable(#m) : #m cannot be lost because of crashes
No Orphan Condition m: ((Log(m) f Depend(m)
Log(m)) In practice, Depend(m)=Log(m)
if (Log(m) f WHY?
Definitions DLp : Determinant Log of process p UnstableDLp : subset of DLp which
p does not know to be stable UnstableDLp(q) : set of
determinants in UnstableDLp that p knows q does not already have
FBL protocol idea How can p determine #m is not
stable? How can p determine if q has #m? Piggyback extra information Log(m)p : p’s estimated value of
Log(m) Important : never overestimate
Log(m)
Inferring information from #m When q receives #m from p, q can
infer that Log(m) contains p,q and the m.dest
Det : Protocol in which process p piggybacks the determinants in
UnstableDLp(q)
Inferring Information from Log(m) p
q can infer that Log(m) Log(m) p
When received for the first time, q can infer that Log(m) Log(m) p
+1 Log : Protocol where p piggybacks
#m and Log(m) p for each #m in UnstableDLp(q)
Inferring Information from Log(m) p
q can infer that Log(m) Log(m)p U Log(m)q
Log : Protocol where p piggybacks #m and Log(m) p for each #m in UnstableDLp(q)
2 more protocols
• Log+ : Process p piggybacks the
same data as Log except that if Log(m) p has increased since the last time p piggybacked #m to q,
Log(m)p is piggybacked on m’ Log
+
Comparison :Det, Log, Log , Log
+, Log
+
For f<3, Det logs no more determinants than the other protocols
Trade-off between extra information piggybacked per message and unnecessary copies of #m logged
Trade-off depends on applications pattern of communication
Overhead Measurements D : Number of determinants in
UnstableDLp(q) N : Number of determinants in DLp
W : Number of words required to code a determinant
Overheads Det : Dw words Log : D(w+1) words Log : upto D(w+f) words Log
+,: Upto N(w+1) words (?)
Log+ : Upto N(w+f) words (?)
Intuition for compacting How to estimate log(m)? Idea : Try estimating depend(m)
instead Intuition : Vector Clocks
Dependence Matrix Each process p maintains an n*n
matrix DMatp
DMatp[p,*] : Vector clock of process p
DMatp[q,*] : p’s estimate of vector clock of process q
Update Rules On receipt of a message m at p from q:
P generates #m DMatp [p,p] ++ DMatp [p,*]=max(VCm,Dmat[p,*]) DMatp [q,*]=max(VCm,Dmat[q,*]) DMatp [i,i]=max(VCm[i], DMatp [i,i])
Now, given #m in DLp what is Log(m)p ? Log(m)p ={q| DMatp [q,m.dest] m.rsn} Weak Dependency Vectors(Clocks)
Implementation Log
+: Piggyback DMat on outgoing messages Dmatp can be used to estimate
Log(m)p for all messages m for which p is a member of depend(m)
Log+
,: Need to only piggyback an n*f matrix called the stability matrix
Comparing Piggyback Overheads Det : Dw words Log : D(w+1) words Log : upto D(w+f) words Log
+,: (D+nf)w
Log+ : (D+n2)w
Experimental Results
Pairwise comparison
Det Log |Log|+
, Log Log+
Det - 0 0 0 0
Log 0 - 0 0 0
|Log|+
, 256 256 - 256 24
Log 59 56 0 - 0
Log+ 256 256 192 256 -