SlideServe
Menu
Préférences
© SlideServe · v2026

CS4432: Database Systems II

thora avatar
22 diapositives · 391 Views · Oct 13, 2014

CS4432: Database Systems II. Concurrency Control Enforcing Serializability: Locking. Enforcing Serializable Schedules. DBMSs use a “ Scheduler ” that schedules the actions of transactions Transactions send their requests (R or W) to Scheduler The scheduler prevents the formation of cycles

CS4432: Database Systems II - slide 1
01 / 22CS4432: Database Systems II
1 / 17

Télécharger la présentation

CS4432: Database Systems II
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. CS4432: Database Systems II Concurrency Control Enforcing Serializability: Locking

  2. Enforcing Serializable Schedules • DBMSs use a “Scheduler” that schedules the actions of transactions • Transactions send their requests (R or W) to Scheduler • The scheduler prevents the formation of cycles • It grants permission to R or W only if no cycle will be formed

  3. Locking Protocol • “Scheduler” uses a locking protocol to enforce serializability • Two New actions • Lock (exclusive): li(A)  Transaction Ti locks item A • Unlock: Ui(A)  Transaction Ti unlocks (releases) item A lock table

  4. Rule #1: Well-Formed Transactions Ti: … li(A) … pi(A) … ui(A) ... Any action (R/W) must be after the lock (l) and before the unlock (u) Rule 1 is at the level of each transaction independent of the others

  5. Rule #2 Legal Scheduler S = …….. li(A) ………... ui(A) ……... no lj(A) No transaction Tj can lock item A that is already locked by another transaction Ti (Transaction Tj must wait until Ti releases its lock) Rule 2 is at the level of the complete schedule (Set of interleaving transactions)

  6. Schedule F: Let’s Add Some Locking! Does the locking mechanism working? Does it guarantee serializable schedule??

  7. Still Something is Missing… Still by applying the locks….results is not consistent !!!

  8. Rule #3 Two Phase Locking (2PL) Ti = ……. li(A) ………... ui(A) ……... No locks No unlocks • A transaction never start unlocks until it takes all its locks. • In other words: Take all locks before the first unlock Rule 3 is for each transaction…

  9. 2 Phase Locking Protocol # of locks held by a transaction Collect locks Release locks Growing Phase Shrinking Phase

  10. Schedule F : Does it follow 2PL ?  Both transactions violate 2PL

  11. Example 2PL: Schedule G Scheduler will deny this request (T2 will wait…) l2(B)

  12. Example 2PL: Schedule G Scheduler will deny this request (T2 will wait…) l2(B) T2 Continue processing At this point the scheduler can resume T2

  13. Scheduler Forced Schedule G to be Serializable

  14. Theorem • Any legal schedule S following the 2PL  Is a Conflict Serializable schedule Most DBMSs use two-phase locking (2PL) to enforce concurrency There is a room for improvement

  15. Improvement 1: Handling Deadlocks • 2PL protocol does not prevent deadlocks • Transactions waiting for each other indefinitely Deadlock situation l1(B) l2(A) T1 has to wait for T2 T2 has to wait for T1

  16. Handling Deadlocks • Detection • Wait-for graph • Prevention • Resource ordering • Timeout • Wait-die • Wound-wait

  17. Deadlock Detection • Build Wait-For graph • Ti  Tj: means Ti is waiting for Tj • Use lock table structures • Built incrementally by the scheduler • When cycle found, rollback victim Select one among T1, T2, and T3 to kill (rollback)  A good choice is “the most recent one” Cycle (Deadlock)

  18. Deadlock Prevention: Timeout • If transaction waits more than L sec., roll it back! • Pros: Simple scheme • Cons: Hard to select L Check the other techniques in Textbook for your knowledge

  19. Improvement 2: Avoiding Cascade Rollback • 2PL protocol does not prevent dirty reads To avoid this situation, we use Strict Two-Phase Locking (S2PL) Now T2 is based on deleted transaction commit Rollback

  20. Strict 2PL (S2PL) • A transaction releases its lock only at commit or rollback time Commit or rollback event # of locks held by a transaction Collect locks Release locks Growing Phase Shrinking Phase

  21. S2PL: Example Unlock A has to wait until the end (even if T1 is done processing A) U1(A)

  22. Summary of Concurrency Control • How to manage multiple transactions at the same time  and still ensure consistency • Schedules (order of actions) • Serial, Conflict Serializable, Legal • Precedence Graphs for Conflict Serializable • Locking Protocol • 2PL , S2PL, Handling of deadlocks