database site, and them broadcast to the other database sites for certification and ... In the distributed system domain, the Generic Broadcast problem and the Optimistic ..... Secondly, advances in communication systems have resulted in cheap.
THE DATABASE STATE MACHINE AND GROUP COMMUNICATION ISSUES
THÈSE NO 2090 (1999) PRÉSENTÉE AU DÉPARTEMENT D'INFORMATIQUE
ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE POUR L'OBTENTION DU GRADE DE DOCTEUR ÈS SCIENCES
PAR
Fernando PEDONE M.Sc. in Computer Science, Federal University of Rio Grande do Sul, Porto Alegre, Brésil de nationalité brésilienne
acceptée sur proposition du jury: Prof. A. Schiper, directeur de thèse Prof. G. Alonso, rapporteur Dr B. Charron-Bost, rapporteur Prof. R. Guerraoui, rapporteur Prof. J.-Y. Le Boudec, rapporteur
Lausanne, EPFL 1999
",
- . , ! / # . !
, . 0# ! - , , - ,
1! -
- ,
2 ,
- ! 3
0 , 4 ,
3 - ! , ,!
! ! 5 ! , ! - . 0
" ! -
-
!,
6 -!
.
! , 3
4 - . !
4 .
, 5 , ", $ 7 4 ", 0 , !
, !
. 5 ", # , 3 0 , , , 3 ,
4 3
, 5 ,
3 - $ 7 - ,
5 , , /
#
! - 3 7 $, - ! - ! 2 - 3
! 0 ",
8 ! /
0
! 4 , - 6 -! !
- 4 ! / 4
, , - - ,, - . 0
9 :
' ; 3 ! 7 # ! , #
7 , . 0 ! 7 ,
3S R4+MS 4 R4+MS 3S ( 0 ! , - , 7! # R4+MS 4 7! ,
, 9 0: , 4
! (v) 0 (v) (v)
3 (v)
%&$'
1 # . 3 , ! (v) - - 2 " 3 1 - # A 2 8 .3 5 # commit ! ! commit 2 3 (!
! # 26 .3 5 ! commit !
! # commit
(v) v ∈ {commit, abort}
$+
& %' . / 0
1 # . , - , !, , ! - 3P S R +KS 6 -! -. ! 91 # . 8. : , , 1 # . 8.
! 3 1 #4! , - 29: 6 .3 5 ! commit ! !
! # commit
" $!! 5 - 3 5" # - , ) 3 - , ! ,
(
5 , 3 -
, ' Γ = {x1, x2, . . . , xm} , , r[xk ] w[xk ] , - xk xk ∈ Γ ! c a ,
, ) ti 3
- -
$-
& %' . / 0
5 - ! , , , 4 - 5 I -
! !
, ,
5 J K -
! , , 5 J K
, P#$, J
)5)/ 4 -
A #
4 3 - . J K 6 -! , J K , # , 0 #
!
$1
"
#
4 3
, ", 4 ", ",
-! 5 - , , ! - #. 7 4 ,
! . ",
- 3
G G 5 , !
. - ! 4 ,
, P#$, ! # 4 - 9 H:
' $!! 3 , ! # #"! 8 p ! . # - m - p # m - p 0 #"! - m - p #"! m m . M - , 32 2 # 4 " +2567.
*)
& )' #
3 9 :
G M × M , C 9 C ⊆ M × M: 5 (m, m ) ∈ C - m m
G 3 , 9*:
G C 9H: -
28 .3 5
# m ! #"! m 2" 3 5
#"! m
! #"! m 2 .3 ) m !
#"! m
m - ! # , 27 3 5
p q , #"! m m m m
G p #"! m , m q #"! m , m
4
G C ! - #"! , #"! 4
G C , ! 3 - 0
- * 1 $
8
- 5 - - 9: $, 9,: - , 3 -
9 : - , 3
0
", 9 I: 4-
G 9*:
G , C∅ - C∅ = ∅ 9H: M × M
G , CM×M - CM×M = M × M 5 9*:
G
4 7! ! ! - ! , 5 9H: (m, m )
G , -
, 5 - $, - 3 , 5 ,-
G 3 ( ! '
G ,- - 0
G , , , 0 #
, 3 , 1*2 1*2 # % '
)'$' 7 0
**
- - withdraw - - deposit ' Mdeposit
Mwithdraw
4 -
G CAccount deposit
CAccount = { (m, m ) : m ∈ Mwithdraw or m ∈ Mwithdraw }.
- CAccount
G , !
- - , 3 -.
! 9 Mdeposit 7 , - : ! $, 9- : ' 4
", , ! 9 IHH: /
- , , , 3 >
- - IHJ -! 4 - 0 -
- m m -
ta tb , m : ta m : tb ! RSa = {x, y} W Sa = {z} RSb = {x} W Sb = {w} 5 ta 9
: G
3 tb tb 9
: G
3 ta 4 - RSa ∩ W Sb = ∅ RSb ∩ W Sa = ∅ ) , ! - ! ,
, 4 ! m m ", ,
G CDSM -. , ! ", 3 - . - # ,
4
G CDSM 3 - CDSM = { (m : ta , m : tb ) : (RSa ∩ W Sb = ∅) ∨ (W Sa ∩ RSb = ∅) ∨ (W Sa ∩ W Sb = ∅)}.
1 $
) 3 ,! ! ! , 3 , C ⊆ M × M 6 -!
G 8
#
8 x
*+
& )' #
- 7
G C 4
9 ,
:
, . - , - 3 !
G C ⊂ M × M , AC 3
, - C , AC RN C C AC 4 0 R RN C - -
#"! - #
G m m A
2 3
5
7 AC - - #"!
G 6 -! ! AC - 7 ! , ,! ! - 7 AC
' 1!+ ! 5 - ! / # ! , 8 3 !
!!-
, *
0 7 , 1, 2, . . . , k, . . . k -
G # , #"! k < k %0 , * 01 %
% ' ' m , # 8 p ! m k m
G -
m ! , p k p m pendingpk 312
p ! 312 nack - nack ≥ (n + 1)/2, 9J*: p #"! m
G k 4 - k , N CmsgSet 9N C k 1 # G : CmsgSet 9C # k #"! G : 4 N CmsgSet ∪ CmsgSet k N CmsgSetk #"! , CmsgSetk %0 , * 1 %
% ' k
)'%' #
*,
N CmsgSetk , #"! , p k , p 0 k# 4 N CmsgSetk
G - CmsgSetk
G CmsgSetk #"! p k + 1 #"! CmsgSetk + '
4 ,
-
9: 5 - m m
G #"! k , 9,: 5 m #"! k , p , m N CmsgSetk 9 : 4 N CmsgSetk
G & 8 4
JHI 9: ,
9J*: 9,:k - ! p pendingp 9 ( , 6D: -
6D 0 nchk / m k (nchk + 1)/2 6D m majM Setp ! N CmsgSetk mk (nchk +1)/2 6D m majM Setp 5
2nack + nchk ≥ 2n + 1 9JH: m (nchk + 1)/2 6D m
! , #"! k , 4 - 9JH: nack nchk n ∈ N - ! 9 J*: (n − nchk ) + (nchk + 1)/2 ≤ nack , 9JI: - (n − nchk) , - p . - ) 9JI: m (nchk + 1)/2 6D ! - p . - ACK(m) - , ACK(m) ! m #"! , k , + '
2nack + nchk ≥ 2n + 1 nack . nchk . n ∈ N (n − nchk ) + (nchk + 1)/2 ≤ nack
!
- ! n + (1 − nchk)/2 ≤ nack (n−nchk )+(nchk +1)/2 ≤ nack 8
7 < 2nack + nchk ≥ 2n + 1 nack n+(1−nchk )/2 = (n−nchk )+(nchk +1)/2
& $* $* $* # 9 m m : 3 k k; $* $*
*-
& )' #
(n − nchk )+ (1+ nchk )/2 ≤ nack (n − nchk )+ (nchk + 1)/2 ≤ nack 5 nchk - 4 nchk ! l ∈ N nchk = 2 l 8 ! - (n − 2 l) + (l + 1/2) ≤ nack (n − 2 l) + (l + 1/2) ≤ nack l ∈ N (n − 2 l) + (l + 1/2) ≤ nack (n − 2 l) + (l + 1) ≤ nack > (n − 2 l) + (l + 1) ≤ nack (n − 2 l) + (l + 1/2) ≤ nack 2 9 : , m majM Setkp m (nchk + 1)/2 6Dk ! , p 9
: ' m m , - majM Setp
- pendingqk q 4 -! , m m
G / - nack , #"! #
G nchk
G , 4 7 0(nack , nchk )
4
!
- (2n + 1)/3 - - nack = nchk *
'
!
! ,
0(nack , nchk ) nack ≥ (n + 1)/2 2nack + nchk ≥ 2n + 1 * !
G C . * 0
4. I - 9 *H I*: * V W 9 k: k - ) 0 - (k, pendingq , ACK) 9 I*: - ! (i, −, type) i = k type = ACK p k - ]
$# ! , p • G]deliveredp
#"! , p k < k • pendingpk
! m p ACK m k • localN Cg]Deliverpk
G #"! , p k 9 , p 0 k# # : • R deliveredp
8 p - # m p 0 !(m) 9 O: . , p - m
G $# ! m - m R]deliveredp \ G]deliveredp
)'%' #
*1
5
G 0 p m pendingpk 9 *J: ACK . - $# ! m 9 *K: / p ! nackk ACK m 9 I*: p m localN Cg]Deliverp 9 IK: #"! m 9 IM: 2 1 '
5
G p k k p 3 (k, pendingp , CHK) 9 *L: - k 0 nchk 9 *O: 4 p , majM Setp 9 HN:1 5 , ! majM Setkp
! m q m ∈ localN Cg]Deliverqk 4 p 9 H*: (N CmsgSetk , CmsgSetk ) 9 HH: / k p 3 #"! 9 : N CmsgSet #"! 9 HI HK: p #"! 9
k
: CmsgSet #"! 9 HJ HM: #"! 0 k p k + 1 9 HO#IN: #1 '
* *
8 3 , ' - , ! 9 JH \ JK: ' J* pendingk
G 5 ! ' JH JK - ' pendingpk .
# p. k ≥ 1. m m m m +
7 < , -
p k ≥ 1 m m
G pendingpk m m pendingpk p ! $# ! m m p 3 $# ! m m 4 t p $# ! m p ! *I m ∈ R]deliveredp m ∈ G]deliveredp m ∈ pending pk t m ∈ R]deliveredp 9, m $# ! , m : m ∈ G]deliveredp 9 m ∈ G]delivered HL#H+ m m , , pendingpk : 4 - *I ! m m \ G] delivered m m
G
! R]delivered m pendingpk
2
' JH ! 9: KL - '
m m +. k
majM Setkp = {m : |Chkpk (m)| ≥ (nchk + 1)/2}
+4
& )' #
!%
; ?; @; 7; 6;
R'delivered ← ∅ G'delivered ← ∅ k←1 pending 1 ← ∅ localN Cg 'Deliver1 ← ∅ ( )
(m)
(m)
,; (−)