-
嵌套事務
鎖定
嵌套事務(nested transaction)是指間接涉及多個服務器的客户事務。
在某些情況下,一個服務器的一個操作可能觸發另一個服務器的某個操作,通常後者可能又進一步請求操作,依此類推。處理這種情況時,每個客户事務由一系列嵌套事務構成。總之,事務由嵌套事務的層次結構組成。同層次的嵌套事務間可併發執行。
- 中文名
- 嵌套事務
- 外文名
- nested transaction
- 定 義
- 間接涉及多個服務器的客户事務
- 應用學科
- 計算機原理術語
嵌套事務概念
嵌套事務(nested transaction)是指間接涉及多個服務器的客户事務。
在某些情況下,一個服務器的一個操作可能觸發另一個服務器的某個操作,通常後者可能又進一步請求操作,依此類推。處理這種情況時,每個客户事務由一系列嵌套事務構成。如圖1所示,服務器Z上的一個客户事務T調用服務器X和Y上的操作,形成嵌套事務
和
,嵌套事務
又調用服務器M和N上的操作,形成深層嵌套事務
和
,類似地,
調用服務器N和P上的操作,形成深層嵌套事務
和
。總之,事務由嵌套事務的層次結構組成。同層次的嵌套事務間可併發執行。
嵌套事務工作原理
一組嵌套事務中的最外層事務被稱為頂層事務,其餘事務稱為子事務。如圖2中,T是頂層事務,
,
,
,
,
和
是子事務,
和
是T的子事務,T作為它們父母。同樣地,
和
是
的子事務,
和
是
的子事務。
當一子事務完成後,它作出獨立決定,或者暫時提交或者中止。暫時提交子事務的最後結果取決於它的父母並最終取決於頂層事務。頂層事務完成後,它的服務器需與後裔子事務的服務器通信,以執行原子提交協議。
嵌套事務的服務器要提供打開子事務的操作,以及使子事務詢問其父母是否提交的操作,客户通過打開頂層事務來開始一組嵌套事務,用OpenTansaction操作為頂層事務返回一事務標識。頂層事務通過OpenTansaction操作開始位於其他服務器之上的嵌套事務,該操作為子事務返回一事務標識。