the database state machine and group ... - Semantic Scholar

7 downloads 5376 Views 1MB Size Report
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)

,;  (−)     

Suggest Documents