資源描述:
《DataConcurrencyandLocking(1).pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、數(shù)據(jù)并發(fā)性和鎖定IBM信息管理云計(jì)算能力中心IBM(加拿大)研究院1?2011IBMCorporation議題事務(wù)并發(fā)性和鎖定鎖等待死鎖2?2011IBMCorporation議題事務(wù)并發(fā)性和鎖定鎖等待死鎖3?2011IBMCorporation什么是事務(wù)(事務(wù))?A的銀行帳戶B的銀行帳戶余額=$1000余額=$200從A帳戶劃撥$100到B帳戶:-從A的銀行帳戶借記$100(減$100)-向B的銀行帳戶貸記$100(加$100)4?2011IBMCorporation什么是事務(wù)?(續(xù))一個(gè)或多個(gè)SQL語(yǔ)句,它們?cè)谝黄鸨灰暈橐粋€(gè)
2、單元也被稱為工作單元(UOW)一次事務(wù)A起始于任何SQL語(yǔ)句,結(jié)束于COMMIT(落實(shí))或ROLLBACK(回滾)COMMIT語(yǔ)句使得修改對(duì)數(shù)據(jù)庫(kù)永久生效ROLLBACK語(yǔ)句逆轉(zhuǎn)所做的修改COMMIT語(yǔ)句和ROLLBACK語(yǔ)句釋放所有的鎖5?2011IBMCorporation事務(wù)示例第一個(gè)SQL語(yǔ)句啟動(dòng)事務(wù)INSERTINTOemployeeVALUES(100,'JOHN')INSERTINTOemployeeVALUES(200,'MANDY')COMMIT由于ROLLBACK,沒(méi)有產(chǎn)生任何變化DELETEFROMempl
3、oyeeWHEREname='MANDY'UPDATEemployeeSETempID=101wherename='JOHN'ROLLBACKUPDATEemployeeSETname='JACK'whereempID=100COMMIT沒(méi)有什么可以回滾的ROLLBACK6?2011IBMCorporation事務(wù)–ACID規(guī)則Atomicity(原子性)事務(wù)中的所有語(yǔ)句被視為一個(gè)單元。如果事務(wù)成功完成,所有的東西都被落實(shí)。如果事務(wù)失敗,截至失敗點(diǎn)的所有東西都回滾。Consistency(一致性)任何事務(wù)都將把數(shù)據(jù)從一個(gè)一致的狀
4、態(tài)帶入另一個(gè)狀態(tài),因此,只有有效的一致數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)庫(kù)中。Isolation(隔離)并發(fā)事務(wù)不能相互干擾。Durability(持久性)已經(jīng)落實(shí)的事務(wù)應(yīng)當(dāng)使它們的修改在數(shù)據(jù)庫(kù)中持久存在。7?2011IBMCorporation議題事務(wù)并發(fā)性和鎖定鎖等待死鎖8?2011IBMCorporation并發(fā)性和鎖定應(yīng)用AIDNameAge應(yīng)用3Peter33B5John23應(yīng)用C22Mary22應(yīng)用35Ann55D并發(fā)性:多個(gè)用戶同時(shí)訪問(wèn)相同的資源鎖定:用于確保數(shù)據(jù)完整性和一致性的機(jī)制9?2011IBMCorporation鎖定根據(jù)需
5、要自動(dòng)獲得鎖,以便根據(jù)隔離級(jí)別支持事務(wù)“”COMMIT和ROLLBACK語(yǔ)句釋放所有的鎖兩個(gè)基本類型的鎖:共享鎖(S鎖)–當(dāng)一個(gè)應(yīng)用希望讀取某一行并阻止其他應(yīng)用更新該行時(shí)獲得的鎖排他鎖(X鎖)–當(dāng)一個(gè)應(yīng)用更新、插入或刪除某行時(shí)的鎖10?2011IBMCorporation如果沒(méi)有并發(fā)控制,將會(huì)出現(xiàn)的問(wèn)題丟失更新未落實(shí)的讀(UncommittedRead)不可重復(fù)讀(Non-RepeatableRead)幻影讀(Phantomread)11?2011IBMCorporation丟失更新reservationsseatname...
6、7C_____7B_____...應(yīng)用A應(yīng)用B12?2011IBMCorporation丟失更新reservationsseatname...7C_____7B_____...應(yīng)用A應(yīng)用Bupdatereservationssetname='John'whereseat='7C'13?2011IBMCorporation丟失更新reservationsseatname...7CJohn_____7B_____...應(yīng)用A應(yīng)用Bupdatereservationssetname='John'whereseat='7C'14?201
7、1IBMCorporation丟失更新reservationsseatname...7CJohn_____7B_____...應(yīng)用A應(yīng)用Bupdatereservationsupdatereservationssetname='John'setname='Mary'whereseat='7C'whereseat='7C'15?2011IBMCorporation丟失更新reservationsseatname...7CJohnMary_____7B_____...應(yīng)用A應(yīng)用Bupdatereservationsupdateres
8、ervationssetname='John'setname='Mary'whereseat='7C'whereseat='7C'16?2011IBMCorporation丟失更新reservationsseatname...7CJohnMary_____?7B