SLIDE 1
1 Consensus:partII
FDC SummerTerm2007
MaxPlanckInstituteforSoftware Systems
- Sofar…
2processconsensuscannotbesolvedusing
registers
Nprocessconsensuscanbesolveduisng
registersand'
2processconsensuscanbesolvedusing
registersandT&Sorqueues(butnot3 processconsensus) Whyconsensusisinteresting?
- Becauseitisuniversal!
IfwecansolveconsensusamongN
processes,thenwecanimplement every
- bjectsharedbyNprocesses
Akeytoimplementagenericfaulttolerant
service(replicatedstatemachine)
- Whatisanobject?
ObjectOisdefinedbythetuple (Q,R,S,σ):
SetofstatesQ SetofoutputsR SetofoperationsS Sequentialspecificationσ,asubsetof
SxQxRxQ:
(o,q,r,q’)isinσ ifoperationoisappliedtoan
- bjectinstateq,thentheobjectcan returnr
andchangeitsstatetoq’
- Deterministicobjectsandbinding
Anoperationappliedtoadeterministic
- bjectresultsinexactlyone(output,state)
inRxQ,i.e.,σ canbeseenafunctionSxQ > RxQ
Weassumethateveryprocesscanattach
itself toeveryobjectatanypointof comutation (softwired bindingmodel)
- Implementinganobject
Usingonly base objects,animplementationofan
- bjectO=(Q,R,S,σ)exportstheoperationsinSto
theprocessesandcreatesanillusionthatan atomic objectOisavailable
deq() x enq(x)
- k
empty deq() Queue Base
- bjects