浙江大学数据库系统概念PPT第十六章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 2020/6/21 The same transaction is repeatedly rolled
Protocol
• Two-Phase Locking is a protocol which ensures conflict-serializable schedules.
– Phase 1: Growing Phase
• A lock is a mechanism to control concurrent access to a data item
• Data items can be locked in two modes : 1. exclusive (X) mode. Data item can be both read as well as written. X-lock is requested using lock-X instruction. 2. shared (S) mode. Data item can only be read. S-lock is requested using lock-S instruction.
• Any number of transactions can hold shared locks on an item, but if any
2020/6/21
Lock-Based Protocols (Cont.)
• Example of a transaction performing locking:
• A locking protocol is a set of rules
2020/6/21
Pitfalls of Lock-Based Protocols
• Consider the partial schedule
• Neither T3 nor T4 can make progress — executing lock-S(B) causes T4 to wait for T3 to release its lock on B, while executing lock-X(A) causes T3 to wait for T4 to release its lock on A.
Control
• Lock-Based Protocols • Multiple Granularity • Deadlock Handling • Insert and Delete Operations • Concurrency in Index
Structures
2020/6/21
Lock-Based Protocols
• Lock 2020/6/21 requests are made to concurrency-
Lock-Based Protocols (Cont.)
• Lock-compatibility matrix
• A transaction may be granted a lock on an item if the requested lock is compatible with locks already held on the item by other transactions
• Starvation is also possible if concurrency control manager is badly designed. For example:
– A transaction may be waiting for an X-lock on an item, while a sequence of other transactions request and are granted an Slock on the same item.
• The protocol assures serializability. It can be proved that the transactions can
be 2020/6/21 serialized in the order of their lock
Protocol (Cont.)
• Two-phase locking does not ensure freedom from deadlocks
T2: lock-S(A); read (A); unlock(A); lock-S(B); read (B); unlock(B); display(A+B)
– Locking as above is not sufficient to guarantee serializability — if A and B get updated in-between the read of A and B, the displayed sum would be wrong.
• Such a situation is called a deadlock.
– To handle a deadlock one of T3 or T4 must be rolled back and its locks released.
2020/6/21
(CБайду номын сангаасnt.)
• The potential for deadlock exists in most locking protocols. Deadlocks are a necessary evil.
• transaction may obtain locks • transaction may not release locks
– Phase 2: Shrinking Phase
• transaction may release locks • transaction may not obtain locks
• Cascading roll-back is possible under two-phase locking. To avoid this, follow a modified protocol called strict twophase locking. Here a transaction must hold all its exclusive locks till it commits/aborts.
相关文档
最新文档