數(shù)據(jù)庫系統(tǒng)原理英文課件:ch16 Concurrency Control_第1頁
數(shù)據(jù)庫系統(tǒng)原理英文課件:ch16 Concurrency Control_第2頁
數(shù)據(jù)庫系統(tǒng)原理英文課件:ch16 Concurrency Control_第3頁
數(shù)據(jù)庫系統(tǒng)原理英文課件:ch16 Concurrency Control_第4頁
數(shù)據(jù)庫系統(tǒng)原理英文課件:ch16 Concurrency Control_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Chapter 16 : Concurrency Control Chapter 16: Concurrency ControlLock-Based ProtocolsTimestamp-Based ProtocolsValidation-Based ProtocolsMultiple GranularityMultiversion SchemesInsert and Delete OperationsConcurrency in Index StructuresLock-Based ProtocolsA lock is a mechanism to control concurrent ac

2、cess to a data itemData 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.Lock requests are made to concur

3、rency-control manager. Transaction can proceed only after request is granted.Lock-Based Protocols (Cont.)Lock-compatibility matrixA transaction may be granted a lock on an item if the requested lock is compatible with locks already held on the item by other transactionsAny number of transactions can

4、 hold shared locks on an item, but if any transaction holds an exclusive on the item no other transaction may hold any lock on the item.If a lock cannot be granted, the requesting transaction is made to wait till all incompatible locks held by other transactions have been released. The lock is then

5、granted.Lock-Based Protocols (Cont.)Example of a transaction performing locking: 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 wo

6、uld be wrong.A locking protocol is a set of rules followed by all transactions while requesting and releasing locks. Locking protocols restrict the set of possible schedules.Pitfalls of Lock-Based ProtocolsConsider the partial scheduleNeither T3 nor T4 can make progress executing lock-S(B) causes T4

7、 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.Such a situation is called a deadlock. To handle a deadlock one of T3 or T4 must be rolled back and its locks released.Pitfalls of Lock-Based Protocols (Cont.)The potential for deadl

8、ock exists in most locking protocols. Deadlocks are a necessary evil.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 S-lock on the same i

9、tem. The same transaction is repeatedly rolled back due to deadlocks.Concurrency control manager can be designed to prevent starvation.The Two-Phase Locking ProtocolThis is a protocol which ensures conflict-serializable schedules.Phase 1: Growing Phasetransaction may obtain locks transaction may not

10、 release locksPhase 2: Shrinking Phasetransaction may release lockstransaction may not obtain locksThe protocol assures serializability. It can be proved that the transactions can be serialized in the order of their lock points (i.e. the point where a transaction acquired its final lock). The Two-Ph

11、ase Locking Protocol (Cont.)Two-phase locking does not ensure freedom from deadlocksCascading roll-back is possible under two-phase locking. To avoid this, follow a modified protocol called strict two-phase locking. Here a transaction must hold all its exclusive locks till it commits/aborts.Rigorous

12、 two-phase locking is even stricter: here all locks are held till commit/abort. In this protocol transactions can be serialized in the order in which they commit.The Two-Phase Locking Protocol (Cont.)There can be conflict serializable schedules that cannot be obtained if two-phase locking is used. H

13、owever, in the absence of extra information (e.g., ordering of access to data), two-phase locking is needed for conflict serializability in the following sense: Given a transaction Ti that does not follow two-phase locking, we can find a transaction Tj that uses two-phase locking, and a schedule for

14、 Ti and Tj that is not conflict serializable.Lock ConversionsTwo-phase locking with lock conversions: First Phase: can acquire a lock-S on itemcan acquire a lock-X on itemcan convert a lock-S to a lock-X (upgrade) Second Phase:can release a lock-Scan release a lock-Xcan convert a lock-X to a lock-S

15、(downgrade)This protocol assures serializability. But still relies on the programmer to insert the various locking instructions.Automatic Acquisition of LocksA transaction Ti issues the standard read/write instruction, without explicit locking calls.The operation read(D) is processed as: if Ti has a

16、 lock on D then read(D) else begin if necessary wait until no other transaction has a lock-X on D grant Ti a lock-S on D; read(D) endAutomatic Acquisition of Locks (Cont.)write(D) is processed as: if Ti has a lock-X on D then write(D) else begin if necessary wait until no other trans. has any lock o

17、n D, if Ti has a lock-S on D then upgrade lock on D to lock-X else grant Ti a lock-X on D write(D) end;All locks are released after commit or abortImplementation of LockingA lock manager can be implemented as a separate process to which transactions send lock and unlock requestsThe lock manager repl

18、ies to a lock request by sending a lock grant messages (or a message asking the transaction to roll back, in case of a deadlock)The requesting transaction waits until its request is answeredThe lock manager maintains a data-structure called a lock table to record granted locks and pending requestsTh

19、e lock table is usually implemented as an in-memory hash table indexed on the name of the data item being lockedLock TableBlack rectangles indicate granted locks, white ones indicate waiting requestsLock table also records the type of lock granted or requestedNew request is added to the end of the q

20、ueue of requests for the data item, and granted if it is compatible with all earlier locksUnlock requests result in the request being deleted, and later requests are checked to see if they can now be grantedIf transaction aborts, all waiting or granted requests of the transaction are deleted lock ma

21、nager may keep a list of locks held by each transaction, to implement this efficientlyGrantedWaitingGraph-Based ProtocolsGraph-based protocols are an alternative to two-phase lockingImpose a partial ordering on the set D = d1, d2 ,., dh of all data items.If di dj then any transaction accessing both

22、di and dj must access di before accessing dj.Implies that the set D may now be viewed as a directed acyclic graph, called a database graph.The tree-protocol is a simple kind of graph protocol. Tree ProtocolOnly exclusive locks are allowed.The first lock by Ti may be on any data item. Subsequently, a

23、 data Q can be locked by Ti only if the parent of Q is currently locked by Ti.Data items may be unlocked at any time.A data item that has been locked and unlocked by Ti cannot subsequently be relocked by Ti Graph-Based Protocols (Cont.)The tree protocol ensures conflict serializability as well as fr

24、eedom from deadlock.Unlocking may occur earlier in the tree-locking protocol than in the two-phase locking protocol.shorter waiting times, and increase in concurrencyprotocol is deadlock-free, no rollbacks are requiredDrawbacksProtocol does not guarantee recoverability or cascade freedomNeed to intr

25、oduce commit dependencies to ensure recoverability Transactions may have to lock data items that they do not access.increased locking overhead, and additional waiting timepotential decrease in concurrencySchedules not possible under two-phase locking are possible under tree protocol, and vice versa.

26、Multiple GranularityAllow data items to be of various sizes and define a hierarchy of data granularities, where the small granularities are nested within larger onesCan be represented graphically as a tree (but dont confuse with tree-locking protocol)When a transaction locks a node in the tree expli

27、citly, it implicitly locks all the nodes descendents in the same mode.Granularity of locking (level in tree where locking is done):fine granularity (lower in tree): high concurrency, high locking overheadcoarse granularity (higher in tree): low locking overhead, low concurrencyExample of Granularity

28、 Hierarchy The levels, starting from the coarsest (top) level aredatabaseareafilerecord Intention Lock ModesIn addition to S and X lock modes, there are three additional lock modes with multiple granularity:intention-shared (IS): indicates explicit locking at a lower level of the tree but only with

29、shared ention-exclusive (IX): indicates explicit locking at a lower level with exclusive or shared locksshared and intention-exclusive (SIX): the subtree rooted by that node is locked explicitly in shared mode and explicit locking is being done at a lower level with exclusive-mode

30、ention locks allow a higher level node to be locked in S or X mode without having to check all descendent nodes.Compatibility Matrix with Intention Lock ModesThe compatibility matrix for all lock modes is: ISIXSS IXX ISIXSS IXX Multiple Granularity Locking SchemeTransaction Ti can lock a node Q, usi

31、ng the following rules:The lock compatibility matrix must be observed.The root of the tree must be locked first, and may be locked in any mode.A node Q can be locked by Ti in S or IS mode only if the parent of Q is currently locked by Ti in either IX or IS mode.A node Q can be locked by Ti in X, SIX

32、, or IX mode only if the parent of Q is currently locked by Ti in either IX or SIX mode.Ti can lock a node only if it has not previously unlocked any node (that is, Ti is two-phase).Ti can unlock a node Q only if none of the children of Q are currently locked by Ti.Observe that locks are acquired in

33、 root-to-leaf order, whereas they are released in leaf-to-root order.Deadlock HandlingConsider the following two transactions: T1: write (X) T2: write(Y) write(Y) write(X)Schedule with deadlockT1T2lock-X on Xwrite (X) lock-X on Ywrite (X) wait for lock-X on Xwait for lock-X on YDeadlock HandlingSyst

34、em is deadlocked if there is a set of transactions such that every transaction in the set is waiting for another transaction in the set.Deadlock prevention protocols ensure that the system will never enter into a deadlock state. Some prevention strategies :Require that each transaction locks all its

35、 data items before it begins execution (predeclaration).Impose partial ordering of all data items and require that a transaction can lock data items only in the order specified by the partial order (graph-based protocol).More Deadlock Prevention StrategiesFollowing schemes use transaction timestamps

36、 for the sake of deadlock prevention alone.wait-die scheme non-preemptiveolder transaction may wait for younger one to release data item. Younger transactions never wait for older ones; they are rolled back instead.a transaction may die several times before acquiring needed data itemwound-wait schem

37、e preemptiveolder transaction wounds (forces rollback) of younger transaction instead of waiting for it. Younger transactions may wait for older ones.may be fewer rollbacks than wait-die scheme.Deadlock prevention (Cont.)Both in wait-die and in wound-wait schemes, a rolled back transactions is resta

38、rted with its original timestamp. Older transactions thus have precedence over newer ones, and starvation is hence avoided.Timeout-Based Schemes :a transaction waits for a lock only for a specified amount of time. After that, the wait times out and the transaction is rolled back.thus deadlocks are n

39、ot possiblesimple to implement; but starvation is possible. Also difficult to determine good value of the timeout interval.Deadlock DetectionDeadlocks can be described as a wait-for graph, which consists of a pair G = (V,E), V is a set of vertices (all the transactions in the system)E is a set of ed

40、ges; each element is an ordered pair Ti Tj. If Ti Tj is in E, then there is a directed edge from Ti to Tj, implying that Ti is waiting for Tj to release a data item.When Ti requests a data item currently being held by Tj, then the edge Ti Tj is inserted in the wait-for graph. This edge is removed on

41、ly when Tj is no longer holding a data item needed by Ti.The system is in a deadlock state if and only if the wait-for graph has a cycle. Must invoke a deadlock-detection algorithm periodically to look for cycles.Deadlock Detection (Cont.)Wait-for graph without a cycleWait-for graph with a cycleDead

42、lock RecoveryWhen deadlock is detected :Some transaction will have to rolled back (made a victim) to break deadlock. Select that transaction as victim that will incur minimum cost.Rollback - determine how far to roll back transactionTotal rollback: Abort the transaction and then restart it.More effe

43、ctive to roll back transaction only as far as necessary to break deadlock.Starvation happens if same transaction is always chosen as victim. Include the number of rollbacks in the cost factor to avoid starvationOther Approaches to Concurrency ControlTimestamp-Based ProtocolsEach transaction is issue

44、d a timestamp when it enters the system. If an old transaction Ti has time-stamp TS(Ti), a new transaction Tj is assigned time-stamp TS(Tj) such that TS(Ti) TS(Tj). The protocol manages concurrent execution such that the time-stamps determine the serializability order.In order to assure such behavio

45、r, the protocol maintains for each data Q two timestamp values:W-timestamp(Q) is the largest time-stamp of any transaction that executed write(Q) successfully.R-timestamp(Q) is the largest time-stamp of any transaction that executed read(Q) successfully.Timestamp-Based Protocols (Cont.)The timestamp

46、 ordering protocol ensures that any conflicting read and write operations are executed in timestamp order.Suppose a transaction Ti issues a read(Q)If TS(Ti) W-timestamp(Q), then Ti needs to read a value of Q that was already overwritten.Hence, the read operation is rejected, and Ti is rolled back.If

47、 TS(Ti) W-timestamp(Q), then the read operation is executed, and R-timestamp(Q) is set to max(R-timestamp(Q), TS(Ti).Timestamp-Based Protocols (Cont.)Suppose that transaction Ti issues write(Q).If TS(Ti) R-timestamp(Q), then the value of Q that Ti is producing was needed previously, and the system a

48、ssumed that that value would never be produced. Hence, the write operation is rejected, and Ti is rolled back.If TS(Ti) W-timestamp(Q), then Ti is attempting to write an obsolete value of Q. Hence, this write operation is rejected, and Ti is rolled back.Otherwise, the write operation is executed, an

49、d W-timestamp(Q) is set to TS(Ti).Example Use of the ProtocolA partial schedule for several data items for transactions withtimestamps 1, 2, 3, 4, 5T1T2T3T4T5read(Y)read(X) read(Y)write(Y) write(Z) read(Z) read(X) abort read(X) write(Z) abort write(Y) write(Z) Correctness of Timestamp-Ordering Proto

50、colThe timestamp-ordering protocol guarantees serializability since all the arcs in the precedence graph are of the form: Thus, there will be no cycles in the precedence graphTimestamp protocol ensures freedom from deadlock as no transaction ever waits. But the schedule may not be cascade-free, and

51、may not even be recoverable.transactionwith smallertimestamptransactionwith largertimestamp Recoverability and Cascade FreedomProblem with timestamp-ordering protocol:Suppose Ti aborts, but Tj has read a data item written by TiThen Tj must abort; if Tj had been allowed to commit earlier, the schedul

52、e is not recoverable.Further, any transaction that has read a data item written by Tj must abortThis can lead to cascading rollback - that is, a chain of rollbacks Solution 1:A transaction is structured such that its writes are all performed at the end of its processingAll writes of a transaction fo

53、rm an atomic action; no transaction may execute while a transaction is being writtenA transaction that aborts is restarted with a new timestampSolution 2: Limited form of locking: wait for data to be committed before reading itSolution 3: Use commit dependencies to ensure recoverabilityThomas Write

54、RuleModified version of the timestamp-ordering protocol in which obsolete write operations may be ignored under certain circumstances.When Ti attempts to write data item Q, if TS(Ti) W-timestamp(Q), then Ti is attempting to write an obsolete value of Q. Rather than rolling back Ti as the timestamp o

55、rdering protocol would have done, this write operation can be ignored.Otherwise this protocol is the same as the timestamp ordering protocol.Thomas Write Rule allows greater potential concurrency. Allows some view-serializable schedules that are not conflict-serializable.Validation-Based ProtocolExe

56、cution of transaction Ti is done in three phases. 1. Read and execution phase: Transaction Ti writes only to temporary local variables 2. Validation phase: Transaction Ti performs a validation test to determine if local variables can be written without violating serializability. 3. Write phase: If T

57、i is validated, the updates are applied to the database; otherwise, Ti is rolled back.The three phases of concurrently executing transactions can be interleaved, but each transaction must go through the three phases in that order.Assume for simplicity that the validation and write phase occur togeth

58、er, atomically and seriallyI.e., only one transaction executes validation/write at a time. Also called as optimistic concurrency control since transaction executes fully in the hope that all will go well during validationValidation-Based Protocol (Cont.)Each transaction Ti has 3 timestampsStart(Ti)

59、: the time when Ti started its executionValidation(Ti): the time when Ti entered its validation phaseFinish(Ti) : the time when Ti finished its write phaseSerializability order is determined by timestamp given at validation time, to increase concurrency. Thus TS(Ti) is given the value of Validation(

60、Ti).This protocol is useful and gives greater degree of concurrency if probability of conflicts is low. because the serializability order is not pre-decided, andrelatively few transactions will have to be rolled back.Validation Test for Transaction TjIf for all Ti with TS (Ti) TS (Tj) either one of

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論