複製鏈接
請複製以下鏈接發送給好友

嵌套事務

鎖定
嵌套事務(nested transaction)是指間接涉及多個服務器的客户事務。
在某些情況下,一個服務器的一個操作可能觸發另一個服務器的某個操作,通常後者可能又進一步請求操作,依此類推。處理這種情況時,每個客户事務由一系列嵌套事務構成。總之,事務由嵌套事務的層次結構組成。同層次的嵌套事務間可併發執行。
中文名
嵌套事務
外文名
nested transaction
定 義
間接涉及多個服務器的客户事務
應用學科
計算機原理術語

目錄

嵌套事務概念

嵌套事務(nested transaction)是指間接涉及多個服務器的客户事務。
在某些情況下,一個服務器的一個操作可能觸發另一個服務器的某個操作,通常後者可能又進一步請求操作,依此類推。處理這種情況時,每個客户事務由一系列嵌套事務構成。如圖1所示,服務器Z上的一個客户事務T調用服務器X和Y上的操作,形成嵌套事務
,嵌套事務
又調用服務器M和N上的操作,形成深層嵌套事務
,類似地,
調用服務器N和P上的操作,形成深層嵌套事務
。總之,事務由嵌套事務的層次結構組成。同層次的嵌套事務間可併發執行。
圖1 圖1

嵌套事務工作原理

一組嵌套事務中的最外層事務被稱為頂層事務,其餘事務稱為子事務。如圖2中,T是頂層事務,
是子事務,
是T的子事務,T作為它們父母。同樣地,
的子事務,
的子事務。
當一子事務完成後,它作出獨立決定,或者暫時提交或者中止。暫時提交子事務的最後結果取決於它的父母並最終取決於頂層事務。頂層事務完成後,它的服務器需與後裔子事務的服務器通信,以執行原子提交協議。
圖2 圖2
嵌套事務的服務器要提供打開子事務的操作,以及使子事務詢問其父母是否提交的操作,客户通過打開頂層事務來開始一組嵌套事務,用OpenTansaction操作為頂層事務返回一事務標識。頂層事務通過OpenTansaction操作開始位於其他服務器之上的嵌套事務,該操作為子事務返回一事務標識。
子事務的標識可通過擴展其父母的TID獲得,這樣子事務標識就是全局唯一的。一般,頂層事務可提交,僅當其所有暫時提交的子事務可提交。而後者可提交,僅當它們的所有暫時提交子事務可提交。依此類推,直至子事務沒有下層子事務了。當一嵌套事務暫時提交,它將其狀態及其子孫的狀態報告給它的父母,當一嵌套事務中止,它僅向其父母報告中止。最後,頂層事務收到一張表,表中記錄了所有子事務及其狀態。 [1] 
參考資料
  • 1.    何炎祥等編著.高級操作系統:人民郵電出版社,1999.04