Causal Message Logging(FBL)

30
Causal Message Logging(FBL) Rohit C Fernandes 10/23/01

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

Transcript of Causal Message Logging(FBL)

Page 1: Causal Message Logging(FBL)

Causal Message Logging(FBL)

Rohit C Fernandes10/23/01

Page 2: Causal Message Logging(FBL)

Overview

Intuition Family Based Logging Manetho

Page 3: Causal Message Logging(FBL)

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)

Page 4: Causal Message Logging(FBL)

Determinant

#m = <sender,receiver,ssn,rsn>

Page 5: Causal Message Logging(FBL)

Requirements of logging protocol Tolerate upto f simultaneous

failures Low failure-free overhead Only failed processes roll back (What about optimistic and

pessimistic protocols?)

Page 6: Causal Message Logging(FBL)

Causal Logging : Intuition Piggyback determinant of non-

deterministic event on outgoing messages

Determinant? How to control the amount of

piggybacking?

Page 7: Causal Message Logging(FBL)

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

Page 8: Causal Message Logging(FBL)

f=1

Page 9: Causal Message Logging(FBL)

f=2

Page 10: Causal Message Logging(FBL)

f=3?

Page 11: Causal Message Logging(FBL)

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

Page 12: Causal Message Logging(FBL)

No Orphan Condition m: ((Log(m) f Depend(m)

Log(m)) In practice, Depend(m)=Log(m)

if (Log(m) f WHY?

Page 13: Causal Message Logging(FBL)

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

Page 14: Causal Message Logging(FBL)

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)

Page 15: Causal Message Logging(FBL)

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)

Page 16: Causal Message Logging(FBL)

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)

Page 17: Causal Message Logging(FBL)

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)

Page 18: Causal Message Logging(FBL)
Page 19: Causal Message Logging(FBL)

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

+

Page 20: Causal Message Logging(FBL)
Page 21: Causal Message Logging(FBL)

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

Page 22: Causal Message Logging(FBL)

Overhead Measurements D : Number of determinants in

UnstableDLp(q) N : Number of determinants in DLp

W : Number of words required to code a determinant

Page 23: Causal Message Logging(FBL)

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 (?)

Page 24: Causal Message Logging(FBL)

Intuition for compacting How to estimate log(m)? Idea : Try estimating depend(m)

instead Intuition : Vector Clocks

Page 25: Causal Message Logging(FBL)

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

Page 26: Causal Message Logging(FBL)

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)

Page 27: Causal Message Logging(FBL)

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

Page 28: Causal Message Logging(FBL)

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

Page 29: Causal Message Logging(FBL)

Experimental Results

Page 30: Causal Message Logging(FBL)

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 -