時(shí)間:2022-10-30 00:30:01 | 來源:信息時(shí)代
時(shí)間:2022-10-30 00:30:01 來源:信息時(shí)代
可恢復(fù)性 : 度量事務(wù)調(diào)度的一個(gè)屬性,被用于確保事務(wù)的原子性。一個(gè)事務(wù)調(diào)度如果能夠保證在執(zhí)行COMMIT之前的任何時(shí)候,都是可以被撤銷的,也就是它對數(shù)據(jù)庫所作的影響可以被消除,則稱該調(diào)度滿足可恢復(fù)性。
按照事務(wù)原子性的要求,事務(wù)由于各種原因中止執(zhí)行時(shí),需要撤銷事務(wù)已對數(shù)據(jù)庫所做的修改(稱為回退)。更進(jìn)一步,當(dāng)事務(wù)Ti中止執(zhí)行時(shí),還會引起依賴于事務(wù)Ti的事務(wù)Tj(即Tj讀了Ti寫的數(shù)據(jù))也必須中止(稱為級聯(lián)回退)。事務(wù)調(diào)度必須確保上述的撤銷操作是可以執(zhí)行的。
1. 可恢復(fù)的調(diào)度
考慮圖1中的調(diào)度。假定系統(tǒng)允許事務(wù)T2在執(zhí)行了Read(A)和Write(B)后執(zhí)行COMMIT操作,也就是在事務(wù)T1未結(jié)束前,T2已“成功”結(jié)束。如果事務(wù)T1在T2的COMMIT之后,由于某種原因引起失敗,為保證事務(wù)的原子性,事務(wù)T1將執(zhí)行ROLLBACK操作。但是事務(wù)T2已經(jīng)不能再回退了。這種情況稱為事務(wù)T2引用了未提交的數(shù)據(jù),事務(wù)T1的失敗,引起恢復(fù)工作不能徹底進(jìn)行。這種調(diào)度稱為“不可恢復(fù)”的調(diào)度。任何一對事務(wù)Ti和Tj,如果事務(wù)Tj讀了事務(wù)Ti寫的數(shù)據(jù)值,那么Tj的COMMIT操作必須在Ti的COMMIT操作之后。滿足上述條件的調(diào)度稱為可恢復(fù)的調(diào)度(recoverable schedule)。
T1 | T2 |
Read(A) Write(A) | |
Read(A) Write(B) /*COMMlT*/ | |
Read(B) /*ROLLBACK*/ |
圖1 不可恢復(fù)的調(diào)度
T1 | T2 | T3 |
Read(A) Read(B) Write(A) | ||
Read(A) Write(A) | ||
Read(A) |
圖2 關(guān)于無級聯(lián)回退調(diào)度
客戶&案例
關(guān)于我們
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。