Learning Center
Plans & pricing Sign in
Sign Out

Distributed Database Systems Distributed Database Systems Autumn 2009 Chapter 11


									Distributed Database Systems
Autumn, 2009

Chapter 11 – Part 3 of 3

Concurrency Control
                           Distributed Database Systems   1
Section 11.5

Optimistic Concurrency
Control Algorithms

               Distributed Database Systems   2
11.5 Optimistic Concurrency Control Algorithms

   Pessimistic algorithms
    assume conflicts
    happen quite often.

   Optimistic algorithms
    delay the validation
    phase until write phase.

                               Distributed Database Systems   3
   Transaction execution model
    ◦ Divide a transaction into subtransactions, each
      of which executes at a site
    ◦ Tij: transaction Ti that executes at site j
 Transactions run independently at each site
  until reaching the end of their read phases
 All subtransactions are assigned a
  timestamp at the end of their read phase

                                  Distributed Database Systems   4
    Optimistic Strategy
   Delay the validation phase until just before
    the write phase
    ◦ Thus an operation submitted to an optimistic
      scheduler is never delayed.

   The read, compute, and write operations of
    each transaction are processed freely
    without updating the actual database.
    ◦ Each transaction initially makes its updates on
      local copies of data items.
                                  Distributed Database Systems   5
    Optimistic Strategy (cont.)
   The validation phase consists of checking if
    these updates would maintain the
    consistency of the database.

   If the answer is affirmative, the changes are
    made global (i.e., written into the actual
    database); Otherwise, the transaction is
    aborted and has to restart.

                                Distributed Database Systems   6
Local Validation of Tij – Rule 1
   If all Tk with ts(Tk) < ts(Tij) have
    completed before Tij has started,
    then the validation succeeds.

   This is a serial execution order.

                              Distributed Database Systems   7
Local Validation of Tij – Rule 2
    If there is any transaction Tk , such that
     ◦   ts(Tk) < ts(Tij)
     ◦   Tk is in write phase
     ◦   Tij is in read phase, and                            Read and write
                                                              phases overlap, but

     ◦   WS(Tk)  RS(Tij) = 
                                                              Tij does not read data
                                                              items written by Tk

     then the validation succeeds.

- None of the data items updated by Tk are read by Tij;
- Updates of Tij will not be overwritten by the updates of Tk
                                              Distributed Database Systems             8
Local Validation of Tij – Rule 3
   If there is any transaction Tk , such that
    ◦ ts(Tk) < ts(Tij)
    ◦ Tk completes the read phase before Tij completes the
      read phase
    ◦ WS(Tk)  RS(Tij) =  , and           They overlap, but
                                           does not access any
    ◦ WS(Tk)  WS(Tij) =                  common data items.

    then the validation succeeds.

- Update of Tk will not affect the read phase or write phase of Tij.
                                             Distributed Database Systems   9
Global Validation
   Local validation ensures local database

   However, there is no known optimistic
    method for doing global validation!

                               Distributed Database Systems   10
Global Validation (cont.)
   One possible way of doing it
    ◦ A transaction is globally validated if all the
      transactions preceding it terminate (either by
      committing or aborting) in the serialization
      order (at that site).
    ◦ It guarantees the transactions execute in the
      same order at each site.

   This is a pessimistic strategy, as it performs
    global validation early and delays a
    transaction                  Distributed Database Systems   11
Advantages and Disadvantages

   Advantages of optimistic algorithm
    ◦ higher concurrency
   Disadvantages
    ◦ higher storage cost for ordering of
   No implementation at the time of writing
    the textbook.

                                Distributed Database Systems   12
Section 11.6

Deadlock Management

               Distributed Database Systems   13
 A transaction is deadlocked if it is blocked
  and will remain blocked until there is
 Locking-based CC algorithms may cause
 TO-based algorithms that involve waiting
  may cause deadlocks.
  Wait-For Graph (WFG)
 Iftransaction Ti waits for another
  transaction Tj to release a lock on an
  entity, then Ti  Tj in WFG.

           Ti           Tj
    Local versus Global WFG
 Assume T1 and T 2 run at site 1, T 3 and T 4 run
  at site 2.
 Assume T 3 waits for a lock held by T 4 which
  waits for a lock held by T 1 which waits for a
  lock held by T2 which, in turn, waits for a lock
  held by T3 .
       Local WFG           Global WFG
      Site 1   Site 2       Site 1   Site 2
       T1       T4           T1       T4

      T2        T3          T2        T3
    Deadlock Management
   Ignore
    ◦ Let the application programmer deal with it, or restart
      the system
   Prevention
    ◦ Guarantee that deadlocks can never occur in the first
      place. Check transaction when it is initiated. Require no
      run time support.
   Avoidance
    ◦ Detect potential deadlocks in advance and take action to
      ensure that deadlock will not occur. Require run time
   Detection and Recovery
    ◦ Allow deadlocks to form and then find and break them.
      As in the avoidance scheme, this requires run time
     Deadlock Prevention
   All resources which may be needed by a transaction
    must be pre-declared.
    ◦ The system must guarantee that none of the resources will
      be needed by an ongoing transaction.
    ◦ Resources must only be reserved, but not necessarily
      allocated a priori.
    ◦ Unsuitability in database environment
    ◦ Suitable for systems that have no provisions for undoing
   Evaluation
    - Reduced concurrency due to pre-allocation
    - Evaluating whether an allocation is safe leads to added
    - Difficult to determine
    + No transaction rollback or restart is involved.
Deadlock Avoidance
   Transactions are not required to request
    resources a priori.
   Transactions are allowed to proceed unless a
    requested resource is unavailable.
   In case of conflict, transactions may or may not
    be allowed to wait for a fixed time interval.
   Order either the data items or the sites and
    always request locks in that order.
   More attractive than prevention in a database
Deadlock Avoidance - Wait-Die
   If Ti requests a lock on a data item which is
    already locked by Tj, then Ti is permitted to
    wait iff ts(Ti)<ts(Tj).

   If ts(Ti)>ts(Tj), then Ti is aborted and
    restarted with the same timestamp.
    ◦ if ts(Ti)<ts(Tj) then Ti waits else Ti dies
    ◦ non-preemptive: Ti never preempts Tj
    ◦ younger transaction is aborted
Deadlock Avoidance - Wound-Wait
   If Ti requests a lock on a data item which is
    already locked by Tj, then Ti is permitted to
    wait iff ts(Ti) >ts(Tj).

   If ts(Ti)<ts(Tj), then Tj is aborted and the
    lock is granted to Ti.
    ◦ if ts(Ti)<ts(Tj) then Tj is wounded else Ti waits
    ◦ preemptive: Ti preempts Tj
    ◦ younger transaction is aborted
    Deadlock Detection
 Transactions are allowed to wait freely.
 Wait-for graphs and cycles.
 Topologies for deadlock detection
    ◦ Centralized
    ◦ Hierarchical
    ◦ Distributed
Centralized Deadlock Detection
 One site is designated as the deadlock
  detector for the system. Each scheduler
  periodically sends its local WFG to the
  central site which merges them to a global
  WFG to determine cycles.
 How often to transmit?
    ◦ Too often: higher communication cost but lower
      delays due to undetected deadlocks
    ◦ Too late: higher delays due to deadlocks, but
      lower communication cost
   A reasonable choice if the concurrency
    control algorithm is also centralized.
Hierarchical Deadlock Detection
    Organize sites into a hierarchy and
     deadlock detectors (DD) send local
     graphs to parent in the hierarchy
      Level 0

      Level 1       DD11                         DD14

                               Site 3
                Site 1  Site 2          Site 4
      Level 2       DD21 DD22 DD23 DD24

                 Building a hierarchy of deadlock detectors
Distributed Deadlock Detection
Sites cooperate in detection of deadlocks
 The local WFGs are formed at each site and
   passed on to other sites.
 Each local WFG is modified as follows:
  1. Since each site receives the potential deadlock
     cycles from other sites, these edges are added
     to the local WFGs
  2. The edges in the local WFG which show that
     local transactions are waiting for transactions
     at other sites are joined with edges in the local
     WFGs which show that remote transactions
     are waiting for local ones.
Distributed Deadlock Detection
   Each local deadlock detector
    ◦ looks for a cycle that does not involve the
      external edge. If it exists, there is a local
      deadlock which can be handled locally.
    ◦ looks for a cycle involving the external edge.
      If it exists, it indicates a potential global
      deadlock. Pass on the information to the
      next site.

To top