Causal Message Logging(FBL)

Post on 04-Feb-2016

34 views 0 download

Tags:

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

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 -