時間:2022-11-13 00:30:02 | 來源:信息時代
時間:2022-11-13 00:30:02 來源:信息時代
事務調(diào)度 : 對事務中所有操作的執(zhí)行次序進行合理的安排,使得在保證事務ACID性質(zhì)的前提下,最大程度地提高系統(tǒng)事務處理的效率。這里有兩個基本的要求,一是調(diào)度必須是正確的,一是調(diào)度必須是高效的。如何在保證事務正確執(zhí)行的前提下,最大限度地提高事務處理系統(tǒng)的效率是事務調(diào)度的主要課題。
事務調(diào)度不考慮一個事務內(nèi)部操作之間的次序的調(diào)整,這屬于程序優(yōu)化的范疇。在事務調(diào)度中,假定一個事務內(nèi)部的操作順序是不可變更的,主要考慮的是事務之間操作順序的調(diào)整。
如果多個事務依次順序執(zhí)行,即一個事務完全結束后,另一個事務才開始執(zhí)行,則稱這種調(diào)度方式為串行調(diào)度(serial schedule)。如果DBMS可以同時處理多個事務,交叉執(zhí)行不同事務的操作,則稱這樣的調(diào)度為并發(fā)調(diào)度(concurrent schedule)。在單CPU系統(tǒng)中,某一時刻只能有一個事務占用CPU,多個事務利用分時的方法交叉地使用CPU,稱為交叉并發(fā)。在多CPU系統(tǒng)中,可以允許多個事務同時占用CPU,稱為同時并發(fā)。
對一個事務而言,在不同的執(zhí)行階段需要不同的資源,有時需要CPU,有時需要訪問磁盤,有時需要通信。如果多個事務順序執(zhí)行,有些資源可能會空閑,造成系統(tǒng)整體效率低下。如果多個事務并發(fā)執(zhí)行,可以交叉地利用這些資源,有利于提高效率。因此,商用數(shù)據(jù)庫系統(tǒng)都采用并發(fā)調(diào)度。
對于并發(fā)調(diào)度,滿足事務ACID性質(zhì)(即事務的正確性)是基本的要求。由此可以推導出可串行性或者更加嚴格的沖突可串行性及可恢復性的要求。商用數(shù)據(jù)庫系統(tǒng)通過引入一些特定機制和協(xié)議(例如,封鎖和兩階段封鎖協(xié)議),讓全部事務在運行中遵循既定的協(xié)議,來保證事務調(diào)度的正確性,這種機制稱為并發(fā)控制機制。
除了正確性,性能也是事務調(diào)度器要考慮的另一個重要因素。例如,避免級聯(lián)回退就是提高系統(tǒng)整體性能的一個重要方面。通??梢杂妹糠昼娡瓿傻挠行聞諗?shù)TPM(transactions per minute)來衡量。最廣泛使用的測量數(shù)據(jù)庫系統(tǒng)事務處理能力的標準是由事務處理委員會提出的TPC-C測試標準,它通過一個模擬的倉儲應用來度量系統(tǒng)的事務處理能力。
事務調(diào)度需要對事務狀態(tài)的變遷進行記錄,可以用圖1所示的狀態(tài)變遷圖來表示。
圖1 事務的狀態(tài)變遷圖
微信公眾號
版權所有? 億企邦 1997-2022 保留一切法律許可權利。