專利名稱:在頁級跟蹤重做完成的制作方法
技術領域:
本發(fā)明涉及先于重做階段的數據訪問的技木。
背景技術:
計算機已變得高度集成于工作、家庭、移動設備以及許多其他地方中。計算機可快速且有效地處理大量信息。被設計成在計算機系統(tǒng)上運行的軟件應用允許用戶執(zhí)行包括商業(yè)應用、學校作業(yè)、娛樂等等在內的各種各樣的功能。軟件 應用通常被設計成執(zhí)行特定的任務,諸如用于草擬文檔的文字處理器應用或者用于發(fā)送、接收和組織電子郵件的電子郵件程序。在許多情況下,軟件應用被設計為與其他軟件應用或其他計算機系統(tǒng)交互。例如,因特網用戶可經由web瀏覽器與web服務器進行交互。用戶可請求諸如電子郵件的特定服務并接收與其相對應的數據。在一些情況下,web服務器可從數據庫檢索數據,以履行用戶的請求。這些數據庫可存儲幾百萬用戶的數據。因此,數據庫被頻繁地備份,以確保用戶數據是安全的。然而,有時候,數據服務器可發(fā)生故障,并且這些故障可在客戶機或服務器事務正在進行時發(fā)生。隨后要執(zhí)行多個步驟來使該數據庫重新在線。在這些步驟正在被執(zhí)行時,用戶不能訪問來自該數據庫的數據。
發(fā)明內容
在此描述的各實施例涉及實現過渡重做階段以允許先于重做階段的數據訪問,并涉及確定要在過渡重做階段期間處理哪些包含未經處理事務的數據頁。在一個實施例中,計算機系統(tǒng)啟動數據庫恢復的分析階段,該階段掃描數據庫事務日志并構建包括與未經處理的數據事務相對應的頁的臟頁表。計算機系統(tǒng)在最終重做階段之前從臟頁表中確定要在過渡重做階段期間處理哪些頁。計算機系統(tǒng)在到達最終重做階段之前在過渡重做階段期間處理所確定的頁,并在系統(tǒng)過渡重做階段完成后,使以下內容可用在過渡重做階段期間被處理了的那些頁以及未被調度為要在最終重做階段期間進行處理的那些數據庫頁。在另ー個實施例中,計算機系統(tǒng)啟動數據庫恢復的分析階段,該階段掃描數據庫事務日志并構建包括與未經處理的數據事務相對應的頁的臟頁表。計算機系統(tǒng)訪問數據庫事務日志以確定哪些優(yōu)先數據頁已在特定時間段內被訪問了閾值次數。計算機系統(tǒng)還訪問臟頁表以確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁。計算機系統(tǒng)然后在到達最終重做階段之前在過渡重做階段期間處理優(yōu)先數據頁和所確定的包括未經處理的事務的數據頁兩者。提供本發(fā)明內容以便以簡化形式介紹將在以下具體實施方式
中進ー步描述的ー些概念。本發(fā)明內容并非g在標識所要求保護的主題的關鍵特征或必要特征,也不g在用于幫助確定所要求保護的主題的范圍。另外的特征和優(yōu)點將在以下的描述中闡述,并且部分可從該描述中顯而易見,或者可以從此處的教示實踐中習得。本發(fā)明的特征和優(yōu)點可以通過在所附權利要求中特別指出的手段和組合來實現并獲取。本發(fā)明的特征將從以下描述和所附權利要求書中變得完全顯而易見,或者可通過如下所述對本發(fā)明的實踐而獲知。
為了進一步闡明本發(fā)明的各實施例的以上和其他優(yōu)點和特征,將參考附圖來呈現本發(fā)明的各實施例的更具體的描述??梢岳斫猓@些附圖只描繪本發(fā)明的典型實施例,因此將不被認為是對其范圍的限制。本發(fā)明將通過使用附圖用附加特征和細節(jié)來描述和解釋,附圖中圖I示出了在其中本發(fā)明的各實施例可用于包括實現過渡重做階段以允許先于重做階段的數據訪問和確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁的計算機體系結構。圖2示出了用于實現過渡重做階段以允許先于重做階段的數據訪問的示例方法的流程圖。
圖3示出了用于確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁的示例方法的流程圖。圖4示出示例數據庫恢復階段排序的流程圖。
具體實施例方式在此描述的各實施例涉及實現過渡重做階段以允許先于重做階段的數據訪問,并涉及確定要在過渡重做階段處理哪些包含未經處理的事務的數據頁。在一個實施例中,計算機系統(tǒng)啟動數據庫恢復的分析階段,該分析階段掃描數據庫事務日志并構建包括與未經處理的數據事務相對應的頁的臟頁表。計算機系統(tǒng)在最終重做階段之前從臟頁表中確定要在過渡重做階段期間處理哪些頁。計算機系統(tǒng)在到達最終重做階段之前在過渡重做階段期間處理所確定的頁,并在系統(tǒng)過渡重做階段完成后,使以下內容可用在過渡重做階段期間被處理了的那些頁以及未被調度為要在最終重做階段期間進行處理的那些數據庫頁。在另ー個實施例中,計算機系統(tǒng)啟動數據庫恢復的分析階段,該分析階段掃描數據庫事務日志并構建包括與未經處理的數據事務相對應的頁的臟頁表。計算機系統(tǒng)訪問數據庫事務日志以確定哪些優(yōu)先數據頁已在特定時間段內被訪問了閾值次數。可在運行時期間確定關于哪些頁被頻繁訪問的信息,并將該信息記錄在事務日志中。在崩潰以后,數據恢復過程可使用日志中的信息來確定哪些頁被頻繁地訪問。計算機系統(tǒng)還訪問臟頁表以確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁。計算機系統(tǒng)然后在到達最終重做階段之前在過渡重做階段期間處理優(yōu)先數據頁和所確定的包括未經處理的事務的數據頁兩者。由于各用戶工作量可阻塞(block)在對這些頁的重做之后才進行,因此包括優(yōu)先(被頻繁訪問的)頁可能是有好處的。以下討論現涉及可以執(zhí)行的多種方法以及方法動作。應當注意,雖然這些方法動作可能是按一定次序討論的,或者是在流程圖中被描繪為是按照特定順序進行的,然而并非必然需要特定的次序,除非特別聲明,或者是在ー個動作被執(zhí)行之前因為該動作依賴于另ー動作的完成而需要的情況。本發(fā)明的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計算機硬件,如以下更詳細討論的。本發(fā)明范圍內的各實施例還包括用于承載或存儲計算機可執(zhí)行指令和/或數據結構的物理和其他計算機可讀介質。這樣的計算機可讀介質可以是可由通用或專用計算機系統(tǒng)訪問的任何可用介質。存儲計算機可執(zhí)行指令的計算機可讀介質是計算機存儲介質。承載計算機可執(zhí)行指令的計算機可讀介質是傳輸介質。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種顯著不同的計算機可讀介質計算機存儲介質和傳輸介質。計算機存儲介質包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執(zhí)行指令或數據結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的任何其他介質?!熬W絡”被定義為允許在計算機系統(tǒng)和/或模塊和/或其他電子設備之間傳輸電子數據的ー個或多個數據鏈路。當信息通過網絡或另ー個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機吋,該計算機將該連接適當地視為傳輸介質。傳輸介質可包括可用于攜帶計算機可執(zhí)行指令或數據結構形式的數據或所需程序代碼裝置且可由通用或專用計算機訪問的網絡和/或數據鏈路。上述的組合也應被包括在計算機可讀 介質的范圍內。此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數據結構形式的程序代碼裝置可從傳輸介質自動傳輸到計算機存儲介質(或反之亦然)。例如,通過網絡或數據鏈路接收到的計算機可執(zhí)行指令或數據結構可被緩存在網絡接ロ模塊(例如,“NIC”)內的RAM中,然后最終被傳輸到計算機系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機存儲介質。因而,應當理解,計算機存儲介質可被包括在還利用(或甚至主要利用)傳輸介質的計算機系統(tǒng)組件中。計算機可執(zhí)行指令包括,例如使通用計算機、專用計算機、或專用處理設備執(zhí)行某一功能或某組功能的指令和數據。計算機可執(zhí)行指令可以是例如ニ進制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現權利要求的示例形式而公開的。本領域的技術人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網絡計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設備、網絡PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明還可在其中通過網絡鏈接(或者通過硬連線數據鏈路、無線數據鏈路,或者通過硬連線和無線數據鏈路的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務的分布式系統(tǒng)環(huán)境(例如,云計算、云服務等)中實踐。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設備中。圖I示出了可在其中采用本發(fā)明的原理的計算機體系結構100。計算機體系結構100包括數據庫110。數據庫110可以是任何類型的本地或分布式數據庫,包括云數據庫。數據庫可以具有ー個或多個數據存儲145,該數據存儲145可以位于本地計算機系統(tǒng)或者可以分布在多個計算機系統(tǒng)上。數據庫可以被配置為接收來自各個計算機用戶105的數據請求106。數據庫處理該數據請求并用數據107來響應該用戶。在一些情況下,數據庫可需要從故障恢復。該故障可以是硬件相關的或者是軟件相關的。為了確保向用戶提供精確的、最新的數據,數據庫啟動恢復階段以合適并完全地從該故障恢復。數據庫的模塊115可被配置為啟動這個恢復階段。該恢復可以是完全恢復或者可以是從故障轉移或備份節(jié)點146的部分恢復?;謴碗A段可以包括和/或啟動其他階段。例如,如圖4的數據庫恢復階段400所示,分析階段410可作為恢復數據庫時的初始步驟而被啟動。在分析階段期間,數據庫的頁處理確定模塊120可被配置為查看臟頁表140以確定哪些數據頁141還沒有被處理。然后,這些未經處理的頁中的至少ー些可被調度為要在恢復的過渡重做階段415期間進行處理。頁處理確定模塊確定哪些未經處理的頁最重要并將被首先處理。頁處理模塊可使用各種標準來確定哪些頁最重要,如以下將更詳細解釋的。過渡重做階段處理模塊125可隨后處理在分析階段410期間被確定為是最重要的那些頁。過渡重做階段被實現在最終重做階段之前。數據恢復階段隨后包括系統(tǒng)事務重做階段420,該系統(tǒng)事務重做階段420完成過渡重做階段中處理的事務。一旦系統(tǒng)事務重做階段完成以后,就可向用戶開放該數據庫的大部分(階段425、模塊130)。一旦已向數據庫用戶開放了該數據庫以后,僅仍處于臟頁表內的那些頁不可被訪問。隨后可處理未經處理的 頁,并啟動最終重做階段430,接著是用戶事務重做435。在完成了 430和435之后,所有數據頁都可被數據庫用戶使用。下面,分別針對圖2和圖3的方法200和300,更詳細地解釋這些概念。考慮到以上描述的系統(tǒng)和體系結構,參考圖2和圖3的流程圖將更好地理解根據所公開的主題實現的方法。為了解釋簡明起見,這些方法被示出和描述為一系列框。然而,應該理解和了解,所要求保護的主題不受框的次序的限制,因為ー些框可按不同的次序進行和/或與此處所描繪和描述的其他框同時進行。此外,并非全部所示的框都是實現下面所述的方法所必需的。圖2示出了用于實現過渡重做階段以允許先于重做階段的數據訪問的方法200的流程圖。方法200現在將頻繁地參考環(huán)境100的組件和數據以及圖4的元素來進行描述。方法200包括啟動數據庫恢復的分析階段的動作,其中該分析階段掃描數據庫事務日志并構建包括與未經處理的數據事務相對應的一個或多個頁的臟頁表(動作210)。例如,數據庫恢復階段啟動模塊115可啟動分析階段410。該分析階段可掃描數據庫事務曰志135并構建臟頁表140,該臟頁表140包括與未經處理的數據事務相對應的各個頁或條目141。這些頁可包括在數據庫崩潰時正被處理的頁。隨后將這些頁考慮在臟頁表中,并在其他恢復階段過程中處理這些頁。方法200包括在最終重做階段之前從臟頁表中確定要在過渡重做階段期間處理哪些頁的動作(動作220)。例如,頁處理確定模塊120可從臟頁表140中的條目確定要在過渡重做階段415期間處理哪些頁。過渡重做階段可以是在傳統(tǒng)的、最終重作階段430之前發(fā)生的中間重做階段。過渡重做階段可以比最終重做階段短,并且可以被想成是小重做階段??梢詫⑤^短的過渡階段與系統(tǒng)事務重做一起實現,以在整個最終重做階段和用戶事務重做完成之前向用戶425開放數據庫因此,可在最終重做階段完成之前在數據庫處接收并處理用戶請求。在一些情況下,可向表示未經處理的數據事務的頁中的每ー個添加標記。該標記可指示已標記頁要在過渡重做階段被處理。在一些實施例中,事件可被實例化以等待被標記為要在過渡重做階段期間進行處理的已標記頁??蓜?chuàng)建包括要在過渡重做階段期間處理的那些已標記頁的頁鏈表。方法200包括在到達最終重做階段之前在過渡重做階段期間處理所確定的頁的動作(動作230)。例如,過渡重做階段處理模塊125可在過渡重做階段415期間處理所確定的(已標記的)頁。因此,標記要在系統(tǒng)事務重做內處理的頁及優(yōu)先(被頻繁訪問的)頁以供在過渡重作階段期間進行處理。這些已標記頁被處理以允許在系統(tǒng)事務重做完成后開放數據庫的其余部分。在一些情況下,被標記為要在過渡重做階段期間進行處理的頁包括在某一時間段內已被訪問了閾值次數的優(yōu)先數據頁。在運行時期間可確定關于哪些頁被頻繁訪問的信息,并將該信息記錄在事務日志中。在崩潰以后,數據恢復過程可使用日志中的信息來確定哪些頁被頻繁地訪問。因此,可將在給定時間段內被訪問了多次的頻繁使用頁標記為要在過渡重做階段期間進行處理。這些被頻繁訪問的頁可包括系統(tǒng)事務頁、臟頁表中列出的頁、事務日志、分配映射、較高級B樹索引和工作量頻繁訪問的任何其他頁。因此,用于標記頁以供過渡階段處理的標準可包括被頻繁訪問的頁、系統(tǒng)事務重做所需的頁以及過渡階段處理可能需要的其他頁。方法200包括在系統(tǒng)事務重做階段完成以后,使以下內容可用的動作在過渡重做階段期間被處理了的那些頁以及未被調度為要在最終重做階段期間進行處理的那些數據庫頁(動作240)。例如,數據庫可用性模塊130可至少使過渡重做階段期間被處理了的那些頁對用戶105可用。模塊130還可使未被調度為要在最終重做階段期間進行處理的那些數據庫頁對用戶可用。因此,模塊130可在系統(tǒng)事務重做階段420完成以后使數據庫110對用戶可用。一旦使數據庫可用,用戶可訪問未被調度為要在最終重做階段435期間進行處理的任何數據庫頁。可以以每一頁為基礎來跟蹤被調度為要在最終重做階段期間進行處理的各頁。因此,正在最終重做階段中被處理的所請求頁只是被阻塞直到該所請求頁為已重做的為止,并且該所請求頁在最終重做階段完成之前被釋放。被調度為供最終重做階段處理的這些頁是用不同的標記來標記的,各不同的標記專用于標識供最終重作階段處理的頁。在一些情況下,每ー頁可在被訪問之前被鎖存,使得在最終重做階段期間,如果頁 正等待被重新處理或者如果最終重做沒有完成,則用戶請求被阻塞直到最終重做階段完成為止。以這種方式,用戶將被阻止訪問非最新的數據。如果系統(tǒng)確定頁不是在臟頁表中找到的,則系統(tǒng)應用鎖存并允許訪問該頁。在一些情況下,鎖可能是用戶事務重做所必需的,以確保用戶被阻止訪問未提交的數據。用戶事務重做階段435可隨后在最終重做階段完成之后被執(zhí)行。此時,整個數據庫是最新的并且被完全恢復。圖3示出了用于確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁的方法300的流程圖?,F在將頻繁參考環(huán)境100的組件和數據來描述方法300。方法300包括啟動對數據庫恢復的分析階段的動作,其中該分析階段掃描數據庫事務日志并構建包括與未經處理的數據事務相對應的一個或多個頁的臟頁表(動作310)。例如,數據庫恢復階段啟動模塊115可啟動分析階段410。如以上所解釋的,該分析階段可掃描數據庫事務日志135并構建包括與未經處理的數據事務相對應的頁141的臟頁表140。該分析還可確定哪些頁正被修改、這些頁是哪個事務的部分、以及哪些頁是系統(tǒng)事務重做階段所必需的。方法300包括訪問數據庫事務日志以確定哪些優(yōu)先數據頁在特定時間段內已被訪問了閾值次數的動作(動作320)。例如,數據庫可訪問事務日志135以確定哪些頁141已被訪問了某一次數??稍谶\行時期間確定關于哪些頁被頻繁訪問的信息,并將該信息記錄在事務日志中。在崩潰以后,數據恢復過程可使用日志中的信息來確定哪些頁被頻繁地訪問。指示頁被頻繁訪問的閾值數可以是可變的且可動態(tài)調整的。因此,在一些情況下,閾值數可以是較小的,這可能導致較小數目的頁是優(yōu)先數據頁(因為頁將被訪問多于一次的時間較少)。相反也是正確的。當閾值數較大時(即,較長時間段),可導致較大數目的頁是優(yōu)先數據頁(因為頁將被訪問多于一次的時間較多)。方法300包括訪問臟頁表以確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁的動作(動作330)。例如,數據庫110可訪問臟頁表140以確定要在過渡重做階段415期間處理哪些包括未經處理的事務的數據頁。臟頁表中的一個或多個頁可被標記為要在階段415期間進行處理。此外,可創(chuàng)建列出要在過渡重做階段期間處理的已標記頁的鏈表。這些列表可包括系統(tǒng)事務重做所必需的頁,或包括在特定時間段內已被訪問 了閾值次數的頁。方法300包括在到達最終重做階段之前在過渡重做階段期間處理優(yōu)先數據頁和所確定的包括未經處理的事務的數據頁兩者的動作(動作340)。例如,數據庫可在過渡重做階段期間處理被標記為優(yōu)先數據頁的那些頁和未經處理的事務頁兩者。因此這些頁在達到最終重做階段之前被處理??墒乖谶^渡重做階段期間被處理的那些頁可用,并且在系統(tǒng)事務重做階段完成后也可使沒有被調度為要在最終重做階段期間進行處理的那些數據庫頁可用??蓪嵗魇录@些事件被配置為等待被標記為要在最終重做期間處理的那些頁。如果用戶事務嘗試訪問最終重做階段尚未完成處理的頁(即,它不是最新的),則用戶事務在一事件上等待并不被允許訪問該頁。當最終重做完成處理該頁時,發(fā)信號通知這個事件并且允許用戶訪問該頁。每ー頁可在被訪問之前被鎖存,使得在最終重做階段期間,如果頁正在等待被重新處理或者如果最終重做沒有完成,則用戶請求被阻塞直到最終重做階段完成處理所請求的頁為止。因此,提供了實現過渡重做階段以允許先于重做階段的數據訪問的方法、系統(tǒng)和計算機程序產品。此外,提供了確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁的方法、系統(tǒng)和計算機程序產品。本發(fā)明可具體化為其它具體形式而不背離其精神或本質特征。所描述的實施例在所有方面都應被認為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權利要求書而非前述描述指示。落入權利要求書的等效方案的含義和范圍內的所有改變被權利要求書的范圍所涵蓋。
權利要求
1.在包括多個計算系統(tǒng)的計算機聯網環(huán)境中的包括至少一個處理器和存儲器的計算機系統(tǒng)處,一種用于實現過渡重做階段以允許先于重做階段的數據訪問的計算機實現的方法,所述方法包括 啟動數據庫恢復的分析階段(410)的動作,其中所述分析階段掃描數據庫事務日志(135)并構建包括與未經處理的數據事務相對應的一個或多個頁(141)的臟頁表(140); 在所述最終重做階段(430)之前從所述臟頁表中確定要在所述過渡重做階段(415)期間處理哪些頁的動作; 在到達所述最終重做階段之前在所述過渡重做階段期間處理所確定的頁的動作;以及 在系統(tǒng)事務重做階段(420)完成后使以下內容可用的動作在所述過渡重做階段期間被處理了的那些頁以及未被調度為要在所述最終重做階段期間進行處理的那些數據庫頁。
2.如權利要求I所述的方法,其特征在于,在頁級跟蹤重做完成,使得正在所述最終重做階段中進行處理的所請求頁只是被阻塞直到所述所請求頁為已重做的為止,并且所述所請求頁在所述最終重做階段完成之后被釋放。
3.如權利要求2所述的方法,其特征在于,用戶請求是在所述最終重做階段完成之前在所述數據庫處被接收和處理的。
4.如權利要求I所述的方法,其特征在于,還包括向與在所述過渡重做階段期間要處理的各頁相對應的各臟頁表條目添加標記的動作。
5.如權利要求4所述的方法,其特征在于,還包括實例化一事件的動作,該事件被配置為等待被標記為要在所述最終重做階段期間進行處理的各臟頁表頁。
6.如權利要求4所述的方法,其特征在于,還包括使用所添加的標記來創(chuàng)建要在所述過渡重做階段期間處理的頁的鏈表。
7.如權利要求I所述的方法,其特征在于,還包括確定哪些頁是系統(tǒng)事務重做所必需的。
8.如權利要求7所述的方法,其特征在于,還包括標記要在所述系統(tǒng)事務重做期間處理的那些頁,其中所述標記指示這些頁要在所述過渡重做階段中被處理。
9.如權利要求I所述的方法,其特征在于,所確定的要在所述過渡重做階段期間處理的頁包括已被訪問了閾值次數的優(yōu)先數據頁。
10.如權利要求9所述的方法,其特征在于,所述優(yōu)先數據頁包括以下各項中的至少一項系統(tǒng)事務頁、所述臟頁表中列出的頁和事務日志。
11.如權利要求I所述的方法,其特征在于,每一頁在被訪問之前被鎖存,使得在所述最終重做階段期間,如果頁正在等待被重新處理或者如果重做沒有完成,則用戶請求被阻塞直到所述最終重做階段完成處理所請求的頁為止。
12.一種用于實現一種方法的計算機程序產品,所述方法用于確定在過渡重做階段期間要處理哪些包括未經處理的事務的數據頁,所述計算機程序產品包括其上存儲有計算機可執(zhí)行指令的一個或多個計算機可讀存儲介質,所述指令在被計算系統(tǒng)的一個或多個處理器執(zhí)行時使得所述計算系統(tǒng)執(zhí)行所述方法,所述方法包括 啟動數據庫恢復的分析階段(410)的動作,其中所述分析階段掃描數據庫事務日志(135)并構建包括與未經處理的數據事務相對應的一個或多個頁(141)的臟頁(140)表; 訪問所述數據庫事務日志以確定哪些優(yōu)先數據頁已在特定時間段內被訪問了閾值次數的動作; 訪問所述臟頁表以確定在所述過濾重做階段期間要處理哪些包括未經處理的事務的數據頁的動作(415);以及 在到達所述最終重做階段(430)之前在所述過渡重做階段期間處理優(yōu)先數據頁和所確定的包括未經處理的事務的數據頁兩者的動作。
13.如權利要求12所述的計算機程序產品,其特征在于,在系統(tǒng)事務重做階段完成以后,使以下內容可用的動作在所述過渡重做階段期間被處理了的那些頁以及未被調度來在所述最終重做階段期間處理的那些數據庫頁。
14.如權利要求12所述的計算機程序產品,其特征在于,所述頁中的一個或多個被標記以供在所述過渡重做階段期間進行處理,并且其中要在所述過渡重做階段期間處理的經標記頁的鏈表被創(chuàng)建。
15.一種計算機系統(tǒng),包括 一個或多個處理器; 系統(tǒng)存儲器; 其上存儲有計算機可執(zhí)行指令的一個或多個計算機可讀存儲介質,所述計算機可執(zhí)行指令在由所述一個或多個處理器執(zhí)行時使得所述計算系統(tǒng)執(zhí)行一種用于實現過渡重做階段以允許先于重做階段的數據訪問的方法,所述方法包括 啟動數據庫恢復的分析階段(410)的動作,其中所述分析階段掃描數據庫事務日志(135)并構建包括與未經處理的數據事務相對應的一個或多個頁(141)的臟頁表(140); 訪問所述數據庫事務日志以確定哪些優(yōu)先數據頁已在特定時間段內被訪問了閾值次數的動作; 訪問所述臟頁表以確定在所述過濾重做階段期間要處理哪些包括未經處理的事務的數據頁的動作(415); 在到達所述最終重做階段之前在所述過渡重做階段期間處理優(yōu)先數據頁和所確定的未經處理的事務數據頁兩者的動作(430)。
在所述系統(tǒng)事務重做階段(420)完成以后,使以下內容可用的動作在所述過渡重做階段期間處理了的那些頁以及未被調度來在所述最終重做階段期間處理的那些數據庫頁,其中重做完成在頁級被跟蹤,使得正在所述最終重做階段中進行處理的所請求頁只是被阻塞直到該所請求頁為已重做的為止,并且該所請求頁在所述最終重做階段完成之前被釋放。
全文摘要
本發(fā)明涉及在頁級跟蹤重做完成。各實施例涉及實現過渡重做階段以允許先于重做階段的數據訪問,以及涉及確定要在過渡重做階段期間處理哪些包括未經處理的事務的數據頁。在一實施例中,計算機系統(tǒng)啟動數據庫恢復的分析階段,該階段掃描數據庫事務日志并構建包括與未經處理的數據事務相對應的頁的臟頁表。計算機系統(tǒng)在最終重做階段之前從該臟頁表中確定要在過渡重做階段期間處理哪些頁。計算機系統(tǒng)在到達最終重做階段之前在過渡重做階段期間處理所確定的頁,并在系統(tǒng)事務重做階段完成后,使以下內容可用在過渡重做階段期間被處理的那些頁以及未被調度為要在最終重做階段期間進行處理的那些數據庫頁。
文檔編號G06F17/30GK102708143SQ20121007128
公開日2012年10月3日 申請日期2012年3月16日 優(yōu)先權日2011年3月18日
發(fā)明者H·R·科達瓦拉, R·D·達曼卡 申請人:微軟公司