嵌套事務(nested transaction)是指間接涉及多個伺服器的客戶事務。
在某些情況下,一個伺服器的一個操作可能觸發另一個伺服器的某個操作,通常後者可能又進一步請求操作,依此類推。處理這種情況時,每個客戶事務由一系列嵌套事務構成。總之,事務由嵌套事務的層次結構組成。同層次的嵌套事務間可並發執行。
基本介紹
- 中文名:嵌套事務
- 外文名:nested transaction
- 定 義:間接涉及多個伺服器的客戶事務
- 套用學科:計算機原理術語
概念,工作原理,
概念
嵌套事務(nested transaction)是指間接涉及多個伺服器的客戶事務。
在某些情況下,一個伺服器的一個操作可能觸發另一個伺服器的某個操作,通常後者可能又進一步請求操作,依此類推。處理這種情況時,每個客戶事務由一系列嵌套事務構成。如圖1-1所示,伺服器Z上的一個客戶事務T調用伺服器X和Y上的操作,形成嵌套事務 和 ,嵌套事務 又調用伺服器M和N上的操作,形成深層嵌套事務 和 ,類似地, 調用伺服器N和P上的操作,形成深層嵌套事務 和 。總之,事務由嵌套事務的層次結構組成。同層次的嵌套事務間可並發執行。
工作原理
一組嵌套事務中的最外層事務被稱為頂層事務,其餘事務稱為子事務。如圖2-1中,T是頂層事務, , , , , 和 是子事務, 和 是T的子事務,T作為它們父母。同樣地, 和 是 的子事務, 和 是 的子事務。
當一子事務完成後,它作出獨立決定,或者暫時提交或者中止。暫時提交子事務的最後結果取決於它的父母並最終取決於頂層事務。頂層事務完成後,它的伺服器需與後裔子事務的伺服器通信,以執行原子提交協定。
嵌套事務的伺服器要提供打開子事務的操作,以及使子事務詢問其父母是否提交的操作,客戶通過打開頂層事務來開始一組嵌套事務,用OpenTansaction操作為頂層事務返回一事務標識。頂層事務通過OpenTansaction操作開始位於其他伺服器之上的嵌套事務,該操作為子事務返回一事務標識。
子事務的標識可通過擴展其父母的TID獲得,這樣子事務標識就是全局唯一的。一般,頂層事務可提交,僅當其所有暫時提交的子事務可提交。而後者可提交,僅當它們的所有暫時提交子事務可提交。依此類推,直至子事務沒有下層子事務了。當一嵌套事務暫時提交,它將其狀態及其子孫的狀態報告給它的父母,當一嵌套事務中止,它僅向其父母報告中止。最後,頂層事務收到一張表,表中記錄了所有子事務及其狀態。