事務(wù)并發(fā)控制s2pl和s2pl有何區(qū)別?
一、事務(wù)并發(fā)控制s2pl和s2pl有何區(qū)別
2PL(2 Phase Locking), 鎖分兩階段,一階段申請,一階段釋放;S2PL(Strict 2PL),在2PL的基礎(chǔ)上,寫鎖保持到事務(wù)結(jié)束;SS2PL( Strong 2PL),在2PL的基礎(chǔ)上,讀寫鎖都保持到事務(wù)結(jié)束;Gen(SS2PL) ? Gen(S2PL) ? Gen(2PL),
Gen(XXX)表式生成的history/schedule。
簡單來說2PL無法保證事務(wù)是可恢復(fù)的。 這就是常見的臟讀異常,即讀到未提交事務(wù)的數(shù)據(jù),如果該未提交事務(wù)中止,則會導(dǎo)致已提交事務(wù)的狀態(tài)不可靠。但注意,實際上這里的錯誤錯在事務(wù)T2不該提交,而不是讀了未提交事務(wù)(也可以讀了不提交)。
為了避免這一點,引入了調(diào)度的可恢復(fù)性,即如果事務(wù)Ti從事務(wù)Tj中讀到了元素x,在事務(wù)Ti提交前,事務(wù)Tj必須已提交。
保證了可恢復(fù)性的調(diào)度才是正確的調(diào)度。進一步為了簡化恢復(fù)難度,有更高的級別,比如避免級聯(lián)中止(avoid cascading abort),嚴格(strict)。
其中嚴格能保證事務(wù)中止的隔離性,即事務(wù)中止只需要獨立地撤銷自己的修改,不需要管其他事務(wù)。
而嚴格性在2PL中的實現(xiàn),實際上就是持有寫鎖直至事務(wù)提交。
延伸閱讀:
二、什么是數(shù)據(jù)庫
數(shù)據(jù)庫就是英文的“database”翻譯來的,data + base,故名思義就是數(shù)據(jù)的根源,數(shù)據(jù)的基礎(chǔ)。那么為什么要有數(shù)據(jù)庫呢,數(shù)據(jù)庫首先是個計算機軟件,在所謂數(shù)據(jù)庫誕生之前,常用方法可能是程序員自己寫一個小程序來完成數(shù)據(jù)處理分析這樣的工作。
伴隨著計算機的普及,越來越多的場景開始使用計算機,產(chǎn)生了越來越多的數(shù)據(jù),也催生了越來越多的數(shù)據(jù)分析需求。為了降低數(shù)據(jù)分析的門檻,讓更多人能夠更方便高效地管理分析數(shù)據(jù),工程師們就打造了一種專門的軟件來幫助人們對數(shù)據(jù)進行合理的存儲以提高存取效率,提供易用的接口和豐富的分析算法以方便使用,集成有效的管理工具以提高數(shù)據(jù)安全性等等,這就是數(shù)據(jù)庫,也被稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS,Database management system)。
數(shù)據(jù)庫是一整套數(shù)據(jù)管理體系,包括數(shù)據(jù)存儲的模型、數(shù)據(jù)組織的架構(gòu)、數(shù)據(jù)分析的算法、數(shù)據(jù)管理的工具以及數(shù)據(jù)訪問的接口等等。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
MySQL普通索引不等于為什么會失效?
一、MySQL普通索引不等于會失效的原因1、列數(shù)據(jù)類型不匹配如果查詢條件中的列類型與索引列類型不匹配,MySQL無法使用索引進行優(yōu)化。例如,索引...詳情>>
2023-10-18 11:14:01
為什么關(guān)系型數(shù)據(jù)庫系統(tǒng)不易于scaling out(橫向擴展)?
一、為什么關(guān)系型數(shù)據(jù)庫系統(tǒng)不易于scaling out(橫向擴展)因為傳統(tǒng)的SQL數(shù)據(jù)庫沒想到要分片存儲,而現(xiàn)在的NewSQL開始考慮到這些問題了。當然分...詳情>>
2023-10-18 10:49:50
MySQL InnoDB引擎中的各種鎖具體是怎么實現(xiàn)的?
一、MySQL InnoDB引擎中的各種鎖的實現(xiàn)方式MySQL InnoDB引擎中的各種鎖是通過多種機制實現(xiàn)的1、共享鎖(Shared Lock)和排他鎖(Exclusive Lock...詳情>>
2023-10-18 10:26:59
Android怎么連接遠程數(shù)據(jù)庫?
一、Android連接遠程數(shù)據(jù)庫的方法1、確保遠程數(shù)據(jù)庫可以遠程訪問首先,確保您的遠程數(shù)據(jù)庫允許遠程連接。這通常需要在數(shù)據(jù)庫服務(wù)器的配置中啟用...詳情>>
2023-10-18 10:09:10熱門推薦
常用JS前端開發(fā)框架有哪些?
沸事務(wù)并發(fā)控制s2pl和s2pl有何區(qū)別?
熱為什么一臺電腦可以安裝多個SQL Server實例?
熱MySQL普通索引不等于為什么會失效?
新為什么關(guān)系型數(shù)據(jù)庫系統(tǒng)不易于scaling out(橫向擴展)?
MySQL InnoDB引擎中的各種鎖具體是怎么實現(xiàn)的?
Android怎么連接遠程數(shù)據(jù)庫?
為什么MySQL在innodb引擎中即使使用了MVCC機制仍然會出現(xiàn)丟失更新?
IO多路復(fù)用中select、poll、epoll之間的區(qū)別?
讀寫分離為什么能夠提升性能?
為什么mysql innodDB中組合索引中范圍查詢后的條件索引會失效?
為什么noteexpress不能建立數(shù)據(jù)庫也不能打開別的數(shù)據(jù)庫?
計算機前端是什么?
APP中集成移動端車牌識別系統(tǒng)都能達到什么效果?
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學習費用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學習資源
領(lǐng)3000G教程 -
師資團隊
了解師資團隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線