專利名稱:具備文件管理功能的文件系統(tǒng)及文件管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具備包含事務(wù)(transaction)管理的文件管理功能的文件系統(tǒng),尤其是涉及一種具備在暫時(shí)寫入?yún)^(qū)域上執(zhí)行文件更新的文件管理功能的文件系統(tǒng)及文件管理方法。
背景技術(shù):
通常,在文件管理系統(tǒng)的事務(wù)管理中,要求原子性(atomicity)、一貫性(consistency)、分離性(isolation)和持久性(durability)等4個(gè)基本要件的所謂ACID特性。該ACID性中,ACD(原子性、一貫性、持久性)利用提交(commit)/重新運(yùn)行(roll back)和恢復(fù)來(lái)實(shí)現(xiàn)。資源管理器的ACD的實(shí)現(xiàn)方式被分為存入(logging)與邊文件(side file)。
<存入>
存入是在更新數(shù)據(jù)時(shí)、將更新前的狀態(tài)(UNDO)與利用提交確定的狀態(tài)(REDO)保存在日志中的方式。利用存入,在系統(tǒng)異常結(jié)束時(shí),通過(guò)UNDO日志將提交前的已更新的數(shù)據(jù)恢復(fù)到更新前的狀態(tài)。另一方面,通過(guò)REDO日志將提交后的未更新數(shù)據(jù)變?yōu)榇_定狀態(tài)。在存入中,有不寫出(non-steal)提交前的數(shù)據(jù)的方式(technique)、物理采集日志的方式、或邏輯采集日志的方法等各種方式。
<邊文件方式>
在邊文件方式中,如日經(jīng)BP社于2001年10月20日出版、Jim Gray、Andreas Reuter著、喜連川優(yōu)審譯的《事務(wù)處理(概念與技術(shù))》(TransactionProcessingConcepts and Techniques)下卷、第860-870頁(yè)“13.5.1節(jié)邊文件”中所記載的那樣,在“該場(chǎng)所(original location)”不變更數(shù)據(jù)(對(duì)象),將新的值寫出到“另一場(chǎng)所another location(to the side)”。在邊文件方式中,所謂“該場(chǎng)所”與“另一場(chǎng)所”在邏輯空間中屬于相同場(chǎng)所。因此,邊文件方式提供用于管理利用時(shí)間系列來(lái)保持不同圖像的機(jī)制。作為實(shí)現(xiàn)邊文件的代表性方式,已知陰影頁(yè)(shadow page)方式。該陰影頁(yè)方式中,具有如下特征,即,由于提供完全原子的更新,所以在系統(tǒng)故障時(shí)不需要復(fù)原。
在陰影頁(yè)方式中,使用兩組頁(yè)表格與位圖的組。各頁(yè)表格是對(duì)每個(gè)文件塊(頁(yè))具有一個(gè)入口的排列。頁(yè)表格的各個(gè)入口具有保持對(duì)應(yīng)塊的現(xiàn)在圖像的縫序號(hào)。另一方面,位圖中,每個(gè)縫由1位構(gòu)成,表示對(duì)應(yīng)的縫在現(xiàn)在時(shí)刻是否保持塊圖像。目錄表示當(dāng)前的有效現(xiàn)在頁(yè)表格與位圖的組。在陰影頁(yè)方式中,利用該目錄的更新來(lái)保障原子性。
陰影頁(yè)方式的特征在于在另一場(chǎng)所執(zhí)行數(shù)據(jù)更新,使用多個(gè)、例如兩個(gè)(一對(duì))頁(yè)表格。這樣,在陰影頁(yè)方式中,無(wú)論在從數(shù)據(jù)更新到目錄更新之間的哪個(gè)時(shí)間產(chǎn)生故障,都可取消更新,而不必執(zhí)行任何恢復(fù)處理。
若比較存入與陰影頁(yè)方式,則可知存入的性能好。要求高可用性(highavailability)的文件管理系統(tǒng)必需在短時(shí)間內(nèi)對(duì)萬(wàn)一的故障重新開始服務(wù)。因此,通常為了實(shí)現(xiàn)高可靠性與高吞吐量,多適用存入。但是,由于存入在產(chǎn)生故障時(shí)需要通過(guò)向前運(yùn)行(roll forward)來(lái)從日志中恢復(fù)未更新的數(shù)據(jù),所以該恢復(fù)有時(shí)會(huì)需要長(zhǎng)時(shí)間(例如數(shù)分鐘左右的時(shí)間)。
另一方面,就安裝的簡(jiǎn)易或從故障復(fù)原的高速性而言,陰影頁(yè)方式好。即,在陰影頁(yè)方式中,如上所述,由于不需要故障恢復(fù),所以可在短時(shí)間內(nèi)(例如數(shù)秒之內(nèi))恢復(fù)服務(wù)。但是,現(xiàn)有的陰影頁(yè)方式在性能上存在如下問(wèn)題,即·需要大尺寸的頁(yè)表格·容易引起分段·提交時(shí)的成本高,不實(shí)用。尤其是在大規(guī)模的數(shù)據(jù)庫(kù)中,陰影頁(yè)方式隨著盤的存取成本的增加,性能惡化顯著。下面,詳細(xì)描述上述問(wèn)題。
首先,在現(xiàn)有的陰影頁(yè)方式中,若數(shù)據(jù)庫(kù)規(guī)模變大,則不能保證將兩個(gè)頁(yè)表格完全存儲(chǔ)在主存儲(chǔ)中。例如,在頁(yè)尺寸為2千字節(jié)(KB)時(shí),1太拉字節(jié)(TB)的數(shù)據(jù)庫(kù)的頁(yè)數(shù)為500兆(M)頁(yè)。此時(shí),若設(shè)1入口4字節(jié)(B),則兩個(gè)頁(yè)表格所需的尺寸為500M*2*4B=4GB。即,需要大尺寸的頁(yè)表格。若頁(yè)表格的尺寸變得巨大,則頁(yè)表格的緩沖器擊中率例如有可能下降90%。頁(yè)表格與數(shù)據(jù)在盤上間隔開后被配置于區(qū)域中。因此,若不讓頁(yè)表格擊中緩沖器、而需要從盤中讀出數(shù)據(jù)時(shí),跨過(guò)頁(yè)表格與數(shù)據(jù)頁(yè)的隨機(jī)存取急劇增加。此時(shí),存取性能明顯惡化。另外,即便假設(shè)是接近100%的緩沖器擊中率,也由于緩沖器的調(diào)用變多,所以導(dǎo)致存取性能惡化。
另外,數(shù)據(jù)更新的結(jié)果,若再分配塊(頁(yè)),則產(chǎn)生分段。若產(chǎn)生分段,則隨機(jī)的塊輸入輸出增加。因此,盤存取時(shí)的數(shù)據(jù)傳輸速度下降。另外,提交時(shí)需要將數(shù)據(jù)塊與頁(yè)表格同步寫入盤中。尤其是數(shù)據(jù)塊的寫入變得隨機(jī)。因此,提交時(shí)的成本大。另外,為了在系統(tǒng)內(nèi)保持采取數(shù)據(jù)塊(頁(yè))的一貫性的狀態(tài),需要排斥向盤的同步寫入(提交處理)。因此,還存在不能在備份處理中進(jìn)行更新、換言之、不能在更新處理中備份的問(wèn)題。
作為事務(wù)的一個(gè)基本要件,具有事務(wù)的分離性。即,需要不能從其它事務(wù)中讀出更新中的數(shù)據(jù),和即便讀入處理花費(fèi)時(shí)間、也要保證開始時(shí)刻的事務(wù)的一貫性。在多數(shù)事務(wù)處理(processing)系統(tǒng)中,采用通過(guò)基于日志的相互排斥來(lái)分離事務(wù)的方式。此時(shí),還存在需等待讀入(參照)更新中的數(shù)據(jù)的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于可減小相當(dāng)于陰影頁(yè)方式中的頁(yè)表格的映像表格的尺寸,并且,可防止文件數(shù)據(jù)斷片化。本發(fā)明的另一目的在于使執(zhí)行更新處理中的數(shù)據(jù)備份變?yōu)榭赡?。本發(fā)明的再一目的在于不用等待參照更新中的數(shù)據(jù)就可保證數(shù)據(jù)的一貫性。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供一種具有事務(wù)管理功能的文件系統(tǒng)。該文件系統(tǒng)由存儲(chǔ)裝置、一對(duì)映像表格、文件管理部件、更新處理部件、提交部件與實(shí)更新部件構(gòu)成。所述存儲(chǔ)裝置具有確保文件區(qū)域與暫時(shí)寫入?yún)^(qū)域的存儲(chǔ)區(qū)域。所述文件區(qū)域被文件占有。所述暫時(shí)寫入?yún)^(qū)域用于暫時(shí)存儲(chǔ)文件的頁(yè)單位的更新數(shù)據(jù)。所述一對(duì)映像表格用于記錄執(zhí)行了所述暫時(shí)寫入?yún)^(qū)域內(nèi)的更新的有效頁(yè)的列表。將所述一對(duì)映像表格配置在所述存儲(chǔ)區(qū)域中。所述文件管理部件管理存儲(chǔ)在所述文件區(qū)域中的文件。所述更新處理部件更新包含于由所述文件管理部件管理的文件中的頁(yè)。所述更新處理部件通過(guò)向空的頁(yè)中寫入更新數(shù)據(jù)來(lái)執(zhí)行所述頁(yè)的更新。從所述暫時(shí)寫入?yún)^(qū)域中取得所述空的頁(yè)。所述提交部件在每次事務(wù)(多個(gè)事務(wù))各自的提交時(shí),將在該時(shí)刻存儲(chǔ)在所述暫時(shí)寫入?yún)^(qū)域中的所述有效頁(yè)的列表交互地寫入所述一對(duì)映像表格中。所述實(shí)更新部件將存儲(chǔ)在所述暫時(shí)寫入?yún)^(qū)域中的有效頁(yè)的更新數(shù)據(jù)寫入所述文件區(qū)域的最初的頁(yè)位置。所述實(shí)更新部件開放所述最初的頁(yè)位置寫有更新數(shù)據(jù)的所述有效頁(yè)。
圖1是表示本發(fā)明一實(shí)施方式的具備事務(wù)管理功能的文件系統(tǒng)的結(jié)構(gòu)框圖。
圖2是表示圖1所示的文件管理系統(tǒng)10的結(jié)構(gòu)框圖。
圖3是表示涉及保持在圖1所示的文件表格210中的文件#i(Fi)的記錄FTRi的數(shù)據(jù)構(gòu)造例的圖。
圖4是表示文件#i(Fi)與盤區(qū)的關(guān)系的圖。
圖5是說(shuō)明該實(shí)施方式中的頁(yè)內(nèi)數(shù)據(jù)的更新的圖。
圖6是說(shuō)明該實(shí)施方式中的檢查點(diǎn)處理的圖。
圖7是表示由文件表格210內(nèi)的文件表格記錄FTR2表示的、文件#2(F2)的盤區(qū)構(gòu)成的圖。
圖8是說(shuō)明該實(shí)施方式中的數(shù)據(jù)讀入處理的圖。
圖9是說(shuō)明該實(shí)施方式中的盤區(qū)的擴(kuò)展處理的圖。
圖10是說(shuō)明該實(shí)施方式中適用的第1負(fù)荷減輕方式的圖。
圖11是說(shuō)明該實(shí)施方式中適用的第2負(fù)荷減輕方式的圖。
圖12是說(shuō)明該實(shí)施方式中適用的第1在線備份的圖。
圖13是說(shuō)明該實(shí)施方式中適用的第2在線備份的圖。
圖14是表示該實(shí)施方式的變形例中適用的多版本同時(shí)執(zhí)行管制(MVCC)隊(duì)列41中的數(shù)據(jù)構(gòu)造例的圖。
具體實(shí)施例方式
下面,參照附圖來(lái)說(shuō)明本發(fā)明的一實(shí)施方式。圖1是表示本發(fā)明一實(shí)施方式的具備事務(wù)管理功能的文件系統(tǒng)的結(jié)構(gòu)框圖。該文件系統(tǒng)主要由文件管理系統(tǒng)(file management system)10、存儲(chǔ)裝置(storage devise)20、緩沖存儲(chǔ)器(buffer memory)30與局部存儲(chǔ)器(local memory)40構(gòu)成。存儲(chǔ)裝置20是例如使用盤驅(qū)動(dòng)器構(gòu)成的盤存儲(chǔ)裝置。存儲(chǔ)裝置20的存儲(chǔ)區(qū)域(盤區(qū)域)主要分成數(shù)據(jù)段區(qū)域(data segment area)21與陰影段區(qū)域(shadow segment area)22來(lái)進(jìn)行管理。
數(shù)據(jù)段區(qū)域21是被文件占有的文件區(qū)域。所謂文件是分配給每個(gè)存儲(chǔ)在數(shù)據(jù)庫(kù)(DB)中的“邏輯”集中的管理單位。另外,文件在物理上由一個(gè)或多個(gè)盤區(qū)構(gòu)成。所謂盤區(qū)是指以指定的尺寸確保的物理連結(jié)頁(yè)區(qū)域。文件初期按盤區(qū)尺寸制作,隨著數(shù)據(jù)的追加,以盤區(qū)單位擴(kuò)展。圖1中示出在數(shù)據(jù)段區(qū)域21中存儲(chǔ)文件F1(#1)、F2(#2)、F3(#3)的狀態(tài)。
在數(shù)據(jù)段區(qū)域21中還存儲(chǔ)文件表格210。文件表格210被存儲(chǔ)于數(shù)據(jù)段區(qū)域21中。該文件表格210本身是存儲(chǔ)在數(shù)據(jù)段區(qū)域21中的一個(gè)文件(這里為文件#0)。文件表格210保持存儲(chǔ)在數(shù)據(jù)段區(qū)域21中的文件的多個(gè)記錄。即,文件表格210保持關(guān)于文件#0、#1、#2...的記錄(文件表格記錄)FTR0、FTR1、FTR2...。
陰影段區(qū)域22是暫時(shí)存儲(chǔ)文件的更新數(shù)據(jù)(更新頁(yè))的暫時(shí)寫入?yún)^(qū)域。即,陰影段區(qū)域22是在必需對(duì)文件內(nèi)的頁(yè)進(jìn)行更新時(shí)才使用的更新(current)頁(yè)存儲(chǔ)區(qū)域。在以前的陰影頁(yè)方式中,從分配給數(shù)據(jù)庫(kù)的全部頁(yè)中尋找用于更新頁(yè)的空的頁(yè)。而在本實(shí)施方式中,從陰影段區(qū)域22中尋找全部用于更新的空的頁(yè)。因此,相對(duì)于以前的陰影頁(yè)方式,將該方式稱為陰影段方式。
這樣,在本實(shí)施方式中,與以前的陰影頁(yè)方式不同,適用使存儲(chǔ)數(shù)據(jù)的場(chǎng)所(location)與更新數(shù)據(jù)的場(chǎng)所基本上不混合存在于盤區(qū)域上的構(gòu)成。即,在本實(shí)施方式中,文件的更新僅在稱為陰影段區(qū)域22的、與文件區(qū)域(數(shù)據(jù)段區(qū)域21)不同的有限區(qū)域中進(jìn)行。因此,在以下的說(shuō)明中,也將未進(jìn)行文件更新的文件區(qū)域(數(shù)據(jù)段區(qū)域21)稱為“原始區(qū)域”。但是,只有在向文件的盤區(qū)內(nèi)未使用的頁(yè)中追加數(shù)據(jù)時(shí),才直接將數(shù)據(jù)追加到該頁(yè)中。
在存儲(chǔ)裝置20的盤區(qū)域中,配置一對(duì)映像(映像表格)23-0(#0)和23-1(#1)。映像23-0和23-1相當(dāng)于以前的陰影頁(yè)方式中的頁(yè)表格。映像23-0和23-1僅具有等于陰影段區(qū)域22的頁(yè)數(shù)、而非構(gòu)筑于盤區(qū)域中的數(shù)據(jù)庫(kù)的全部頁(yè)數(shù)的入口。在這點(diǎn)上,映像23-0和23-1與陰影頁(yè)方式中的頁(yè)表格不同。映像23-0和23-1保持陰影段區(qū)域22內(nèi)的有效頁(yè)(更新頁(yè))的列表(更新列表)。該列表是包含陰影段區(qū)域22的有效頁(yè)的ID信息(物理ID)、與對(duì)應(yīng)于該頁(yè)的數(shù)據(jù)段區(qū)域21內(nèi)的頁(yè)的ID信息(物理ID)的組的記錄排列。
在存儲(chǔ)裝置20的盤區(qū)域中,還配置目錄24。目錄24表示映像23-0和23-1哪個(gè)是原始的映像(被確定的映像)。非原始一方的映像是更新的映像。
文件管理系統(tǒng)10具有包含事務(wù)管理的文件管理功能。文件管理系統(tǒng)10通過(guò)計(jì)算機(jī)的讀取執(zhí)行來(lái)實(shí)現(xiàn)文件管理用程序。該文件管理用的程序可事先存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)媒體中來(lái)發(fā)布。另外,該程序即便經(jīng)網(wǎng)絡(luò)下載(發(fā)布)也無(wú)妨。
圖2是表示文件管理系統(tǒng)10的結(jié)構(gòu)框圖。文件管理系統(tǒng)10由更新處理單元(update-processing unit)11、讀入處理單元(read-processing unit)12、檢查點(diǎn)處理單元(checkpoint-processing unit)13、文件管理控制單元(filemanagement processing unit)14、和備份單元(backup umit)15構(gòu)成。更新處理單元11管理更新事務(wù)。更新處理單元11由讀入部(read module)111、更新部(update module)112和提交部(commit module)113構(gòu)成。讀入部111包含映像檢索部(map search module)111a、與最新頁(yè)讀入部(current-pagemodule)111b。更新部112包含陰影段更新部(shadow-segment updatemodule)112a。提交部113包含映像更新部(map update module)113a、更新頁(yè)快閃部(updated-page flash module)113b、映像快閃部(map flashmodule)113c和目錄切換部(directory switch module)113d。
讀入處理單元12由讀入部(read module)121構(gòu)成。讀入部121包含映像檢索部(map search module)121a、與最新頁(yè)讀入部(current-pagemodule)121b。讀入處理單元12的讀入部121相當(dāng)于更新處理單元11的讀入部111。因此,通過(guò)由更新處理單元11和讀入處理單元12共用讀入部111和121之一,可省略讀入部111和121的另一個(gè)。
檢查點(diǎn)處理單元13由檢查點(diǎn)部(checkpoint module)131、提交部(commitmodule)132、和映像釋放部(map release module)133構(gòu)成。檢查點(diǎn)部131包含拷貝部(copy module)131a。提交部132包含映像更新部(map updatemodule)132a、更新頁(yè)快閃部(updated-page flash module)132b、映像快閃部(map flash module)132c、與目錄切換部(directory switch module)132d。檢查點(diǎn)處理單元13的提交部132相當(dāng)于更新處理單元11的提交部113。兩者的差異如后所述,在于提交部113的映像更新部113a執(zhí)行將記錄記錄在映像中的更新處理,而提交部132的映像更新部132a執(zhí)行從映像中刪除記錄的更新處理。因此,也可在由更新處理單元11和檢查點(diǎn)處理單元13共用提交部113和132之一的同時(shí),使該一個(gè)映像更新部具有記錄記錄與刪除記錄的兩個(gè)功能。此時(shí),可省略提交部113和132的另一個(gè)。
文件管理控制單元14根據(jù)來(lái)自利用圖1的文件系統(tǒng)的應(yīng)用程序的請(qǐng)求,控制上述更新處理單元11、以及讀入處理單元12。來(lái)自應(yīng)用程序的請(qǐng)求是例如事務(wù)的開始請(qǐng)求、或用于使該事務(wù)中的更新操作確定的提交請(qǐng)求。文件管理控制單元14還產(chǎn)生檢查點(diǎn)處理用的事務(wù),控制檢查點(diǎn)處理單元13。文件管理控制單元14還控制備份單元15的在線備份。備份單元15具有執(zhí)行稱為第1和第2在線備份的兩種備份的功能。后面描述第1和第2在線備份。
再參照?qǐng)D1,緩沖存儲(chǔ)器30被用作暫時(shí)存儲(chǔ)在文件管理系統(tǒng)10與存儲(chǔ)裝置20之間輸入輸出的頁(yè)數(shù)據(jù)用的盤高速緩沖存儲(chǔ)器。局部存儲(chǔ)器40被用于存儲(chǔ)文件管理系統(tǒng)10的文件管理所需的暫時(shí)信息。
這里,說(shuō)明作為圖1的系統(tǒng)中適用的陰影段方式的前提條件的文件與盤區(qū)(extent)的概要。在本實(shí)施方式中,采用盤區(qū)方式,作為將文件內(nèi)的頁(yè)確保(分配)在物理盤中的方式。盤區(qū)方式的基本點(diǎn)在于文件由多個(gè)物理上連結(jié)的區(qū)域(稱之為盤區(qū))構(gòu)成在伴隨數(shù)據(jù)增加、區(qū)域不足的情況下,以盤區(qū)單位來(lái)確保新的連續(xù)區(qū)域。
圖3表示涉及保持在文件表格210中的文件#i(Fi)的記錄(文件表格記錄)FTRi的數(shù)據(jù)構(gòu)造例,圖4表示文件#i(Fi)與盤區(qū)的關(guān)系。圖3和圖4的實(shí)例中假設(shè)為文件#i(Fi)由3個(gè)盤區(qū)Ei1(#i1)、Ei2(#i2)和Ei3(#i3)構(gòu)成的情況。
記錄FTRi包含首標(biāo)、與涉及構(gòu)成對(duì)應(yīng)于該記錄FTRi的文件#i(Fi)的各盤區(qū)的信息(盤區(qū)信息)。首標(biāo)包含稱為內(nèi)部識(shí)別符的文件#i(Fi)的ID(文件ID)、稱為外部識(shí)別符的文件#i(Fi)的名稱(文件名)、和表示構(gòu)成文件#i(Fi)的盤區(qū)數(shù)量的信息。另一方面,盤區(qū)信息包含分別表示對(duì)應(yīng)于該盤區(qū)信息的盤區(qū)在盤(盤區(qū)域)上的開始位置、確保(預(yù)約)的累計(jì)頁(yè)數(shù)、和使用完的頁(yè)位置的信息。使用完的頁(yè)位置表示對(duì)應(yīng)的盤區(qū)中的最后使用完的頁(yè)的、以文件開頭(開頭盤區(qū)的開頭頁(yè))為起點(diǎn)的頁(yè)位置。在圖4的實(shí)例中,盤區(qū)#i1(Ei1)、#i2(Ei2)和#i3(Ei3)的頁(yè)數(shù)分別為5、10和10。另外,僅盤區(qū)#i3(Ei3)的最后頁(yè)未使用。因此,盤區(qū)#i1(Ei1)、#i2(Ei2)和#i3(Ei3)的累計(jì)頁(yè)數(shù)分別為5、15、25,盤區(qū)#i1(Ei1)、#i2(Ei2)和#i3(Ei3)的使用完的頁(yè)位置分別為5、15和24。
在以后說(shuō)明的處理中,以在各文件中確保(預(yù)約)構(gòu)成該文件的盤區(qū)、即連續(xù)區(qū)域?yàn)榍疤?。換言之,本實(shí)施方式以如下各點(diǎn)為特征。首先,在現(xiàn)有的陰影頁(yè)方式中,空的頁(yè)完全(即系統(tǒng)上任何功能)是空的頁(yè),無(wú)論用于何處都無(wú)妨。但在本實(shí)施方式中,以盤區(qū)方式確保(預(yù)約)的區(qū)域內(nèi)的頁(yè)即便在未寫入實(shí)數(shù)據(jù)的含義下是空的頁(yè),也不能在確保時(shí)的用途之外使用。
下面,以進(jìn)行頁(yè)內(nèi)數(shù)據(jù)更新的情況為例,參照?qǐng)D5的動(dòng)作說(shuō)明圖來(lái)說(shuō)明本實(shí)施方式的動(dòng)作。首先,設(shè)從利用圖1的文件系統(tǒng)的應(yīng)用程序?qū)ξ募芾硐到y(tǒng)10的文件管理控制單元14請(qǐng)求事務(wù)TR的開始。這里,設(shè)通過(guò)事務(wù)TR更新的數(shù)據(jù)為文件#2(F2),需要更新的頁(yè)是盤區(qū)#22的第2頁(yè)的頁(yè)P(yáng)D1。另外,設(shè)該頁(yè)的物理ID為1000。
在陰影段方式中,必需殘留原始頁(yè)來(lái)作為陰影。因此,利用必需更新的頁(yè)P(yáng)D1的圖像拷貝,對(duì)陰影段區(qū)域22內(nèi)的頁(yè)執(zhí)行更新。因此,包含于更新處理單元11的讀入部111中的映像檢索部111a從陰影段區(qū)域22內(nèi)取得用于更新的空的頁(yè)。該空的頁(yè)可通過(guò)檢索映像23-0和23-1中的原始映像來(lái)取得。這里,設(shè)上述事務(wù)TR的開始時(shí)的原始(確定)映像為映像23-0(#0),更新的映像是映像23-1(#1)。另外,設(shè)發(fā)現(xiàn)頁(yè)P(yáng)S1為空的頁(yè)。設(shè)該陰影段區(qū)域22內(nèi)的頁(yè)P(yáng)S1的ID為SS1。
讀入部111的最新頁(yè)讀入部111b讀入需要更新的頁(yè)P(yáng)D1的數(shù)據(jù)(步驟S1)。將由最新頁(yè)讀入部111b讀入的頁(yè)P(yáng)D1的圖像拷貝到陰影段區(qū)域22內(nèi)的頁(yè)P(yáng)S1中。但是,在文件管理系統(tǒng)10與存儲(chǔ)裝置20之間設(shè)置緩沖存儲(chǔ)器30的本實(shí)施方式中,該拷貝實(shí)際上對(duì)對(duì)應(yīng)于頁(yè)P(yáng)S1的緩沖存儲(chǔ)器30內(nèi)的頁(yè)(塊)進(jìn)行。
包含于更新處理單元11的更新部112中的陰影段更新部112a執(zhí)行陰影段區(qū)域22內(nèi)的頁(yè)(更新頁(yè))PS1的更新(步驟S2)。但是,這里的更新實(shí)際上也是對(duì)對(duì)應(yīng)于頁(yè)P(yáng)S1的緩沖存儲(chǔ)器30內(nèi)的頁(yè)(塊)進(jìn)行的。此時(shí),陰影段更新部112a用作映像登錄請(qǐng)求記錄部。由此,陰影段更新部112a將表示頁(yè)P(yáng)D1的更新后的頁(yè)圖像(更新頁(yè)的圖像)存在于陰影段區(qū)域22內(nèi)的頁(yè)(更新頁(yè))PS1中的信息存儲(chǔ)(記錄)在暫時(shí)映像中。在局部存儲(chǔ)器40內(nèi),對(duì)應(yīng)于事務(wù)TR來(lái)確保該暫時(shí)映像。存儲(chǔ)在暫時(shí)映像中的信息包含PD1的物理ID=1000與PS1的物理ID=SS1的對(duì)。在使事務(wù)TR結(jié)束時(shí),將該信息追加到該時(shí)刻下的更新映像中。因此,將該信息記錄在局部存儲(chǔ)器40內(nèi)的對(duì)應(yīng)于事務(wù)TR的暫時(shí)映像中表現(xiàn)為映像追加請(qǐng)求記錄。物理ID就數(shù)據(jù)段區(qū)域21內(nèi)的頁(yè)而言,表示該數(shù)據(jù)段區(qū)域21內(nèi)的相對(duì)頁(yè)位置,就陰影段區(qū)域22內(nèi)的頁(yè)而言,表示該陰影段區(qū)域22內(nèi)的相對(duì)頁(yè)位置。
之后,為了使事務(wù)TR結(jié)束,設(shè)從應(yīng)用程序請(qǐng)求確定該事務(wù)TR的更新操作的提交處理。如上所述,該事務(wù)TR開始時(shí)的原始映像為映像23-0(#0)。此時(shí),包含于更新處理單元11的提交部113中的映像更新部113a將映像23-0(#0)拷貝到映像23-1(#1)中。之后,映像更新部113a根據(jù)存儲(chǔ)在暫時(shí)映像中的信息(映像追加請(qǐng)求),將涉及物理ID=1000的記錄追加(記錄)到映像23-0(#0)中(步驟S3)。暫時(shí)映像如上所述,在局部存儲(chǔ)器40內(nèi)對(duì)應(yīng)于事務(wù)TR來(lái)確保。涉及物理ID=1000的記錄包含頁(yè)P(yáng)D1的物理ID=1000與頁(yè)P(yáng)S1的物理ID=SS1的對(duì)。該記錄表示對(duì)應(yīng)于物理ID=1000的頁(yè)P(yáng)D1的最新版本頁(yè)SS1存在于陰影段區(qū)域22內(nèi)。另外,上述記錄追加的映像更新處理實(shí)際上是對(duì)對(duì)應(yīng)于配置映像23-0(#0)和映像23-1(#1)的頁(yè)的緩沖存儲(chǔ)器30內(nèi)的頁(yè)(塊)進(jìn)行的。
接著,若未反映于陰影段區(qū)域22的更新頁(yè)(不正常的更新頁(yè))位于緩沖存儲(chǔ)器30內(nèi),則提交部113的更新頁(yè)快閃部113b將該更新頁(yè)全部反射(flash)到陰影段區(qū)域22內(nèi)的對(duì)應(yīng)頁(yè)中。同樣,若未反映于映像23-1的更新映像的頁(yè)位于緩沖存儲(chǔ)器30內(nèi),則提交部113的提交快閃部113c將該更新映像反射到映像23-1中。在該階段,提交部113的目錄切換部113d操作目錄24,將映像的原始從映像23-0(#0)切換到映像23-1(#1)(步驟S4)。由此,提交處理結(jié)束。
以上處理中構(gòu)成要點(diǎn)的是以下兩點(diǎn)。一點(diǎn)是從陰影段區(qū)域22中準(zhǔn)備更新用的更新頁(yè)。即,更新用的更新頁(yè)中僅利用陰影段。另一個(gè)是向映像23-i(這里i=1)僅追加包含頁(yè)圖像存在于陰影段區(qū)域22內(nèi)的更新頁(yè)(更新頁(yè))的物理ID的記錄。即,由未存儲(chǔ)在映像23-i中的物理ID表示的陰影段區(qū)域22內(nèi)的頁(yè)是空頁(yè)。追加于映像23-I中的記錄與陰影段區(qū)域22內(nèi)的更新頁(yè)的物理ID構(gòu)成對(duì),包含對(duì)應(yīng)于該更新頁(yè)的數(shù)據(jù)段區(qū)域21內(nèi)的老的頁(yè)的物理ID。
通過(guò)事務(wù)的更新操作,在提交該事務(wù)之前,產(chǎn)生構(gòu)成事務(wù)局部的數(shù)據(jù)。為了管理該數(shù)據(jù),上述暫時(shí)映像存儲(chǔ)事務(wù)中更新的文檔頁(yè)的映像信息。映像信息包含數(shù)據(jù)段區(qū)域21內(nèi)的頁(yè)的物理ID與陰影段區(qū)域22內(nèi)的對(duì)應(yīng)頁(yè)的物理ID。暫時(shí)映像在事務(wù)開始時(shí)制作,在事務(wù)結(jié)束(提交/重新運(yùn)行)時(shí)廢棄。
在本實(shí)施方式中,采用陰影段方式來(lái)作為恢復(fù)方式,但其基礎(chǔ)是陰影頁(yè)方式。就陰影頁(yè)方式而言,在更新確定(提交)處理時(shí),需要(1)將數(shù)據(jù)(數(shù)據(jù)頁(yè))寫入盤中(2)拷貝、更新、寫入映像(3)用于空的區(qū)域管理的自由位頁(yè)(FBP)與其陰影處理。
頁(yè)的盤輸入輸出(I/O)處理所需的負(fù)荷比存儲(chǔ)器存取或計(jì)算處理高。擔(dān)心在進(jìn)行提交處理時(shí),響應(yīng)性由于提交處理的串聯(lián)化和上述映像處理而下降。另外,由于映像的更新必需以具有事務(wù)的一貫性的單位執(zhí)行,所以在直接更新映像的方式中不能同時(shí)執(zhí)行多個(gè)更新。
因此,以具有一貫性的單位將各個(gè)事務(wù)的更新信息記錄在上述暫時(shí)映像中,在提交請(qǐng)求的定時(shí)一次更新更新映像。另外,在本實(shí)施方式中,集中處理多個(gè)提交請(qǐng)求。將該集中處理多個(gè)提交請(qǐng)求稱為組提交。雖然各事務(wù)的平均響應(yīng)時(shí)間因提交的延遲而變長(zhǎng),但每次事務(wù)的內(nèi)務(wù)操作(overhead)(I/O準(zhǔn)備與發(fā)行、完成后的后終端等)變得非常短。一般,通過(guò)在低負(fù)荷的情況下不延遲提交、在高負(fù)荷的情況下使提交延遲一定時(shí)間來(lái)得到最佳的吞吐量。在本實(shí)施方式中,將組提交執(zhí)行中的提交請(qǐng)求延遲到提交完成,利用下一次組提交來(lái)集中處理其間的請(qǐng)求,從而實(shí)現(xiàn)最佳化。在延遲時(shí)間控制之前不執(zhí)行。
下面,參照?qǐng)D6的動(dòng)作說(shuō)明圖來(lái)說(shuō)明本實(shí)施方式的檢查點(diǎn)處理。通過(guò)該檢查點(diǎn)處理,會(huì)理解上述兩個(gè)點(diǎn)是非常重要的。檢查點(diǎn)處理的目的在于通過(guò)將在陰影段區(qū)域22中制作的更新后的頁(yè)圖像恢復(fù)到數(shù)據(jù)段區(qū)域21內(nèi)的初始位置(=連續(xù)區(qū)域中),實(shí)現(xiàn)盤I/O的高速化。
設(shè)本實(shí)施方式中的檢查點(diǎn)處理(實(shí)更新處理)是在文件管理系統(tǒng)10的文件管理控制單元14內(nèi)部產(chǎn)生的獨(dú)立的事務(wù)TRc。即,在本實(shí)施方式中,不讓該檢查點(diǎn)處理搭乘其它事務(wù)內(nèi)的一部分。但是,就提交而言,同其它事務(wù)一樣可利用組提交來(lái)統(tǒng)一處理。在本實(shí)施方式中,在陰影段區(qū)域22內(nèi)的空的頁(yè)少的情況下,例如空的頁(yè)與全部頁(yè)數(shù)的比率不足規(guī)定的情況下,產(chǎn)生事務(wù)TRc。另外,即便構(gòu)成為定期產(chǎn)生事務(wù)TRc也無(wú)妨。
首先,設(shè)由目錄24來(lái)表示映像23-1(#1)是原始的。此時(shí),包含于檢查點(diǎn)處理單元13的檢查點(diǎn)部131中的拷貝部131a參照原始的映像23-1(#1)。由此,拷貝部131a取得對(duì)應(yīng)于陰影段區(qū)域22中制作的更新后的頁(yè)圖像(更新頁(yè)的圖像)的、數(shù)據(jù)段區(qū)域21內(nèi)的初始的老的頁(yè)圖像的物理ID。另外,拷貝部131a確認(rèn)由該取得的物理ID表示的、需要數(shù)據(jù)段區(qū)域21內(nèi)的老的頁(yè)圖像的事務(wù)不存在(步驟S11)。這里,設(shè)陰影段區(qū)域22內(nèi)的更新頁(yè)是PS1,對(duì)應(yīng)于PS1的數(shù)據(jù)段區(qū)域21內(nèi)的老的頁(yè)(原始頁(yè))為物理ID=1000的PD1。此時(shí),拷貝部131a將陰影段區(qū)域22內(nèi)的更新頁(yè)P(yáng)S1的圖像拷貝到數(shù)據(jù)段區(qū)域21內(nèi)的初始位置、即頁(yè)P(yáng)D1(步驟S12)。即,拷貝部131a執(zhí)行將陰影段區(qū)域22內(nèi)的更新頁(yè)P(yáng)S1的圖像寫回到數(shù)據(jù)段區(qū)域21內(nèi)的初始位置的實(shí)更新處理。但是,該實(shí)更新處理(拷貝處理)是針對(duì)對(duì)應(yīng)于頁(yè)P(yáng)D1的緩沖存儲(chǔ)器30內(nèi)的頁(yè)來(lái)執(zhí)行的??截惒?31a具有映像刪除請(qǐng)求記錄功能??截惒?31a利用該功能,在執(zhí)行實(shí)更新處理時(shí),將表示將更新頁(yè)P(yáng)S1的圖像反映到初始的數(shù)據(jù)段區(qū)域21內(nèi)的頁(yè)P(yáng)D1的信息存儲(chǔ)(記錄)于確保在局部存儲(chǔ)器40中的、對(duì)應(yīng)于事務(wù)TRc的暫時(shí)映像中。該信息包含PD1的物理ID=1000與PS1的物理ID=SS1的對(duì)。在使用于檢查點(diǎn)處理的事務(wù)TRc結(jié)束時(shí),從該時(shí)刻的更新映像中刪除該信息。因此,將把該信息記錄在局部存儲(chǔ)器40內(nèi)的對(duì)應(yīng)于事務(wù)TRc的暫時(shí)映像中表現(xiàn)為映像刪除請(qǐng)求記錄。
設(shè)對(duì)陰影段區(qū)域22內(nèi)的幾個(gè)更新頁(yè)(例如全部更新頁(yè))重復(fù)上述實(shí)更新處理(拷貝處理)的結(jié)果,使用于檢查點(diǎn)處理的事務(wù)TRc結(jié)束。此時(shí),利用檢查點(diǎn)處理單元13的提交部132來(lái)開始確定該事務(wù)TRc的操作的提交處理。首先,提交部132的映像更新部132a將作為檢查點(diǎn)處理的事務(wù)TRc開始時(shí)的原始映像的映像23-1(#1)拷貝到映像23-0(#0)中。之后,映像更新部132a根據(jù)存儲(chǔ)在暫時(shí)映像中的信息(映像刪除請(qǐng)求),刪除涉及物理ID=1000的記錄(步驟S13)。在局部存儲(chǔ)器40內(nèi),對(duì)應(yīng)于事務(wù)TRc來(lái)確保暫時(shí)映像。涉及物理ID=1000的記錄包含頁(yè)P(yáng)D1的物理ID=1000與頁(yè)P(yáng)S1的物理ID=SS1的對(duì)。該用于記錄刪除的映像更新操作實(shí)際上是針對(duì)對(duì)應(yīng)于配置映像23-0(#0)和映像23-1(#1)的頁(yè)的緩沖存儲(chǔ)器30內(nèi)的頁(yè)(塊)進(jìn)行的。
接著,若緩沖存儲(chǔ)器30內(nèi)有未反映于數(shù)據(jù)段區(qū)域21的更新頁(yè),則提交部132的更新頁(yè)快閃部132b將該更新頁(yè)全部反射到數(shù)據(jù)段區(qū)域21內(nèi)的對(duì)應(yīng)頁(yè)上。同樣,若緩沖存儲(chǔ)器30內(nèi)有未反映于映像23-0的對(duì)應(yīng)更新映像的頁(yè),則提交部132的映像快閃部132c將該更新映像反射到映像23-0上。在該階段,提交部132的目錄切換部132d操作目錄24,將映像的原始從映像23-1(#1)切換到映像23-0(#0)(步驟S14),由此提交處理結(jié)束。
這里,對(duì)上述兩個(gè)點(diǎn),基于上述檢查點(diǎn)處理再次確認(rèn)。第1點(diǎn)是在更新用的更新頁(yè)中僅利用陰影段。如所述的那樣,在已知的陰影頁(yè)方式中,搜索新的空的頁(yè),更新該頁(yè)。因此,容易因更新而產(chǎn)生頁(yè)的分段。而在本實(shí)施方式中適用的陰影段方式中,通過(guò)將更新頁(yè)配置在陰影段區(qū)域22中,及利用檢查點(diǎn)處理將該更新頁(yè)圖像返回到初始的連續(xù)區(qū)域內(nèi),可抑制由于更新而產(chǎn)生的分段。
下面,第2點(diǎn)是映像23-i(i為0或1)具有僅在陰影段區(qū)域22內(nèi)存在更新頁(yè)圖像的頁(yè)的記錄。如所述的那樣,在陰影頁(yè)方式中,為了邏輯ID與物理ID之間的映射,隨著頁(yè)數(shù)的增大而需要巨大的表格(頁(yè)表格)。而在本實(shí)施方式中適用的陰影段方式中,通過(guò)具有僅更新后的頁(yè)的記錄,可絕對(duì)抑制映像尺寸。另外,可利用檢查點(diǎn)處理來(lái)整理映像(映像表格)自身,抑制映像的龐大化。
下面,以讀入文件#2(F2)中的共同頁(yè)序號(hào)10的頁(yè)的情況為例,參照?qǐng)D7和圖8來(lái)說(shuō)明事務(wù)TR中例如伴隨數(shù)據(jù)檢索的數(shù)據(jù)讀入處理(參照處理)。圖7是表示由文件表格210內(nèi)的文件表格記錄FTR2表示的、文件#2(F2)的盤區(qū)構(gòu)成的圖,圖8是數(shù)據(jù)讀入處理的動(dòng)作說(shuō)明圖。圖7中,前提是文件#2(F2)與圖1不同,由3個(gè)盤區(qū)#21、#22和#23構(gòu)成。即,設(shè)文件#2(F2)為圖4所示的文件#i(Fi)(i=2)。
首先,讀入處理單元12的讀入部121讀入文件表格210中的文件表格記錄FTR2。之后,讀入部121根據(jù)該文件表格記錄FTR2中包含的、表示文件#2(F2)的盤區(qū)構(gòu)成的盤區(qū)信息,識(shí)別共同頁(yè)序號(hào)10的頁(yè)是盤區(qū)#22的第5頁(yè)、即物理ID為215的頁(yè)。
讀入部121通過(guò)對(duì)應(yīng)于事務(wù)TR的暫時(shí)映像中存儲(chǔ)的信息(映像追加請(qǐng)求)中是否包含表示物理ID=215的頁(yè)的信息,判定該頁(yè)是否是由該事務(wù)TR更新的頁(yè)。在局部存儲(chǔ)器40內(nèi),對(duì)應(yīng)于事務(wù)TR來(lái)確保暫時(shí)映像。若物理ID=215的頁(yè)是由事務(wù)TR更新的頁(yè),則讀入部121的最新頁(yè)讀入部121b讀入該更新的頁(yè)的數(shù)據(jù)。
相反,若物理ID=215的頁(yè)不是由事務(wù)TR更新的頁(yè),則讀入部121的映像檢索部121a參照目錄24確認(rèn)映像23-0和23-1哪個(gè)是原始的映像(步驟S21)。這里,設(shè)映像23-0是原始的映像。此時(shí),映像檢索部121a檢索原始映像23-0,調(diào)查是否有存儲(chǔ)包含物理ID=215的記錄。這意味著調(diào)查對(duì)應(yīng)于物理ID=215的頁(yè)的更新頁(yè)(已更新頁(yè))是否存在于陰影段區(qū)域22中。若包含物理ID=215的記錄被存儲(chǔ)在原始映像23-0中,則映像檢索部121a從該記錄中取出與物理ID=215構(gòu)成對(duì)的更新頁(yè)的物理ID。之后,映像檢索部121a將取出的物理ID傳遞給讀入部121的最新頁(yè)讀入部121b。
最新頁(yè)讀入部121b讀入從映像檢索部121a傳遞來(lái)的物理ID所示的陰影段區(qū)域22內(nèi)的更新頁(yè)的數(shù)據(jù)。但是,在圖8的實(shí)例中,在映像23-0中未存儲(chǔ)包含物理ID=215的記錄。最新頁(yè)讀入部121b在物理ID=215的頁(yè)不是由事務(wù)TR更新的頁(yè)、并且原始映像23-0中未存儲(chǔ)包含物理ID=215的記錄的情況下,直接讀入物理ID=215的頁(yè)的數(shù)據(jù)。
設(shè)文件#i(Fi)的尺寸緩慢增加,該文件#I(Fi)具有的盤區(qū)區(qū)域全部被利用。此時(shí),需要擴(kuò)展盤區(qū),即,需要確保物理的連續(xù)區(qū)域,并且使該信息反映于文件表格210中的文件表格記錄FTRi上。因此,說(shuō)明盤區(qū)的擴(kuò)展處理。
首先,與上述檢查點(diǎn)處理一樣,設(shè)本實(shí)施方式中的盤區(qū)的擴(kuò)展處理是文件管理系統(tǒng)10在內(nèi)部產(chǎn)生的獨(dú)立的事務(wù)TRe。其理由如下。即便假設(shè)重新運(yùn)行需要擴(kuò)展盤區(qū)的事務(wù),由于附近的其它事務(wù),必需擴(kuò)展盤區(qū)的可能性非常高(局域性的原理)。因此,對(duì)于盤區(qū)的擴(kuò)展,即便先使其完成也沒(méi)問(wèn)題。
另一方面,由于某個(gè)事務(wù),為了擴(kuò)展盤區(qū)而獲得文件表格210的對(duì)應(yīng)頁(yè)的排斥日志的情況下,事務(wù)(多個(gè)事務(wù))的并列性產(chǎn)生問(wèn)題。原因是在獲得排斥日志的事務(wù)結(jié)束之前,要等待其它事務(wù)參照文件表格210的對(duì)應(yīng)頁(yè)。因此,盤區(qū)的擴(kuò)展雖是觸發(fā)執(zhí)行某個(gè)事務(wù)的處理,但不能保證涉及該事務(wù)的盤區(qū)擴(kuò)展的原子性。但是,這在數(shù)據(jù)庫(kù)管理的內(nèi)部產(chǎn)生,盤區(qū)擴(kuò)展不會(huì)對(duì)外部產(chǎn)生影響。
下面,以文件#2(F2)中沒(méi)有用于存儲(chǔ)數(shù)據(jù)的足夠區(qū)域的情況為例,參照?qǐng)D9的動(dòng)作說(shuō)明圖來(lái)說(shuō)明盤區(qū)的擴(kuò)展處理。另外,如上所述,文件表格210也是一個(gè)文件(這里為文件#0),盤區(qū)的擴(kuò)展處理基本上與其它文件一樣進(jìn)行。現(xiàn)在設(shè)存儲(chǔ)在文件表格210中的、涉及文件#2(F2)的記錄(即文件表格記錄FTR2)存在的頁(yè)為物理ID=2的頁(yè)P(yáng)D02。設(shè)包含該頁(yè)P(yáng)D02的盤區(qū)為盤區(qū)E01。
圖2中省略執(zhí)行盤區(qū)擴(kuò)展處理的盤區(qū)擴(kuò)展處理單元(extent-expansion-processing unit)。但是,該盤區(qū)擴(kuò)展處理基本上與更新處理單元11的更新處理一樣執(zhí)行。因此,在本實(shí)施方式中,為了方便,設(shè)盤區(qū)的擴(kuò)展處理由更新處理單元11執(zhí)行加以說(shuō)明。映像檢索部111a從陰影段區(qū)域22內(nèi)搜索用于頁(yè)P(yáng)D02的更新的空的頁(yè)。之后,映像檢索部111a將頁(yè)P(yáng)D02的圖像拷貝到該空的頁(yè)中(步驟S31)。這里,如圖9所示,設(shè)頁(yè)P(yáng)D02的圖像被拷貝到陰影段區(qū)域22內(nèi)的頁(yè)P(yáng)S1中。
更新部112在存儲(chǔ)裝置20的數(shù)據(jù)段區(qū)域21上確保指定為盤區(qū)擴(kuò)展尺寸大小的連續(xù)區(qū)域(步驟S32)。更新部112在頁(yè)P(yáng)S1上,更新文件#2(F2)的文件表格記錄FTR2,以便將步驟S32中確保的區(qū)域處理為文件#3(F2)被擴(kuò)展的盤區(qū)#22(步驟S33)。這里,向文件表格記錄FTR2的第2盤區(qū)欄中追加步驟S32中確保的區(qū)域(盤區(qū)#22)的盤區(qū)信息。
下面,說(shuō)明用于使上述盤區(qū)擴(kuò)展處理的事務(wù)TRe結(jié)束的提交處理。首先,設(shè)該事務(wù)TRe開始時(shí)的原始映像為映像23-0(#0)。此時(shí),提交部113將映像23-0(#0)拷貝到映像23-1(#1),并將涉及物理ID=2的記錄追加到該映像23-1(#1)(步驟S34)。涉及物理ID=2的記錄包含頁(yè)P(yáng)D02的物理ID=2與頁(yè)P(yáng)S1的物理ID的對(duì)。另外,提交部113將映像的原始從映像23-0(#0)切換到映像23-1(#1)(步驟S35)。由此提交處理結(jié)束。
如已述的那樣,本實(shí)施方式中適用的陰影段方式在抑制映像尺寸的同時(shí)、抑制因更新產(chǎn)生的分段方面非常有效。但是,僅由此在執(zhí)行統(tǒng)一登錄等大量登錄的情況下的檢查點(diǎn)處理變?yōu)榉浅8叩呢?fù)荷。例如,在陰影段區(qū)域22的全部頁(yè)為更新頁(yè)的狀態(tài)下的檢查點(diǎn)處理中,需要陰影段區(qū)域22尺寸大小的頁(yè)拷貝。因此,在本實(shí)施方式中,為了減輕檢查點(diǎn)處理的負(fù)荷,適用下述的第1和第2負(fù)荷減輕方式。
首先,參照?qǐng)D10的動(dòng)作說(shuō)明圖來(lái)說(shuō)明第1負(fù)荷減輕方式。第1負(fù)荷減輕方式的特征在于是向盤區(qū)內(nèi)未使用的頁(yè)追加數(shù)據(jù)的方式。即,第1負(fù)荷減輕方式的特征在于不向陰影段區(qū)域22內(nèi)拷貝對(duì)應(yīng)的頁(yè),而在該頁(yè)的位置直接追加數(shù)據(jù)。在該數(shù)據(jù)追加失敗的情況下,不更新文件表格210內(nèi)的對(duì)應(yīng)文件表格記錄中包含的使用的更大有效頁(yè)序號(hào)(已使用頁(yè)位置),由此實(shí)現(xiàn)恢復(fù)。
現(xiàn)在,如圖10所示,設(shè)文件#1(F1)由頁(yè)數(shù)為4的兩個(gè)盤區(qū)#1和#2構(gòu)成。另外,設(shè)盤區(qū)#2的已使用頁(yè)位置為5。即,設(shè)盤區(qū)#2內(nèi)的第2頁(yè)以后沒(méi)有數(shù)據(jù)。該文件#1(F1)的盤區(qū)構(gòu)成由存儲(chǔ)在文件表格210中的文件表格記錄FTR1中的盤區(qū)信息表示。因此,通過(guò)該文件表格記錄FTR1中的盤區(qū)信息來(lái)確定盤區(qū)#2的已使用頁(yè)位置為5。
在這種狀態(tài)下,設(shè)在某個(gè)事務(wù)TR中,產(chǎn)生向文件#1(F1)追加數(shù)據(jù),并需要將已使用頁(yè)位置寫入下一頁(yè)位置“6”、即盤區(qū)#2的第2頁(yè)。由于盤區(qū)#2的開始物理ID為211,所以該盤區(qū)#2的第2頁(yè)的物理ID為212。此時(shí),在盤區(qū)#2的第2頁(yè)、即物理ID=212的頁(yè)中根本不寫入有效數(shù)據(jù)。如上所述,這通過(guò)文件表格記錄FTR1的盤區(qū)信息(涉及盤區(qū)#2的盤區(qū)信息)表示的“已使用頁(yè)位置”為5來(lái)保證。
在這種情況下,更新部112將數(shù)據(jù)直接寫入數(shù)據(jù)段區(qū)域21內(nèi)的物理ID=212的頁(yè)位置,而非陰影段區(qū)域22中(步驟S41)。即,設(shè)為了使事務(wù)TR結(jié)束,從應(yīng)用程序請(qǐng)求提交處理,正常完成寫入。此時(shí),提交部113將文件表格記錄FTR1中包含的、涉及盤區(qū)#2的盤區(qū)信息表示的“已使用頁(yè)位置”從“5”改寫成“6”(步驟S42)。相反,在向物理ID=212寫入失敗的情況下,提交部113不改寫文件表格記錄FTR1的“已使用頁(yè)位置”的信息,保持5不變。由此,恢復(fù)完成。
這樣,在第1負(fù)荷減輕方式中,在需要向盤區(qū)內(nèi)未使用的頁(yè)追加數(shù)據(jù)的情況下,向該頁(yè)的位置直接追加數(shù)據(jù)。即,在第1負(fù)荷減輕方式中,通過(guò)不使用陰影段區(qū)域22,可不需要檢查點(diǎn)處理,另外,還可不需要檢索時(shí)的映像參照。
下面,參照?qǐng)D11的動(dòng)作說(shuō)明圖來(lái)說(shuō)明第2負(fù)荷減輕方式。第2負(fù)荷減輕方式的特征在于在產(chǎn)生根據(jù)檢查點(diǎn)處理向數(shù)據(jù)段區(qū)域21寫回之前,進(jìn)一步更新相同頁(yè)時(shí)的處理中。即,第2負(fù)荷減輕方式的特征在于應(yīng)由檢查點(diǎn)處理寫回的頁(yè)僅為最新(最終)頁(yè)的圖像。在產(chǎn)生檢查點(diǎn)處理之前,由多個(gè)事務(wù)執(zhí)行多次相同頁(yè)的更新的情況下,在陰影段區(qū)域22內(nèi)依次保持同一頁(yè)的過(guò)去版本。
現(xiàn)在,如圖11所示,設(shè)依次執(zhí)行3次文件#1(F1)的開頭盤區(qū)#1中的頁(yè)P(yáng)D12的更新。此時(shí),如圖11所示,首先在陰影段區(qū)域22內(nèi)的例如頁(yè)P(yáng)S1中保持頁(yè)P(yáng)D12的最初的更新圖像。接著,在陰影段區(qū)域22內(nèi)的例如頁(yè)P(yáng)S3中保持頁(yè)P(yáng)D12的下一更新圖像。之后,在陰影段區(qū)域22內(nèi)的例如頁(yè)P(yáng)S4中保持頁(yè)P(yáng)D12的最新更新圖像。
在這種狀態(tài)下,設(shè)產(chǎn)生適用第2負(fù)荷減輕方式的檢查點(diǎn)處理。在該檢查點(diǎn)處理中,在不存在參照老版本的頁(yè)圖像的事務(wù)后,對(duì)數(shù)據(jù)段區(qū)域21內(nèi)的初始盤區(qū)區(qū)域?qū)懟刈钚掳姹镜捻?yè)圖像。在圖11的實(shí)例中,就數(shù)據(jù)段區(qū)域21內(nèi)的頁(yè)P(yáng)D12而言,在陰影段區(qū)域22內(nèi)保存多個(gè)舊版本的頁(yè)圖像。但是,既然已不存在參照舊版本的事務(wù),所需的數(shù)據(jù)僅為保持在陰影段區(qū)域22內(nèi)的頁(yè)P(yáng)S4中的最新頁(yè)圖像。因此,檢查點(diǎn)處理單元13的檢查點(diǎn)部131僅執(zhí)行保持在頁(yè)P(yáng)S4中的最新頁(yè)圖像的寫回(步驟S50)。將保存舊版本的頁(yè)圖像的頁(yè)作為空的頁(yè)來(lái)管理。
從上述說(shuō)明可知,本實(shí)施方式中適用的陰影段方式與已知的陰影頁(yè)方式相比,具有以下的不同點(diǎn)、和陰影頁(yè)方式中得不到的效果。
(1)相當(dāng)于陰影頁(yè)方式中的頁(yè)表格的映像(映像表格)的大小不依賴于數(shù)據(jù)庫(kù)的大小。而陰影頁(yè)方式存在頁(yè)表格的大小隨著數(shù)據(jù)庫(kù)的大小而變大的問(wèn)題。在本實(shí)施方式中適用的陰影段方式中,將更新頁(yè)配置在稱為陰影段方式22的更新數(shù)據(jù)的暫時(shí)存儲(chǔ)區(qū)域中。這里,頁(yè)變換(物理ID的變換)由對(duì)更新頁(yè)集合的聯(lián)想存儲(chǔ)、而非對(duì)數(shù)據(jù)庫(kù)整體的表格進(jìn)行。利用這種陰影段方式,以對(duì)應(yīng)于更新量的尺寸來(lái)實(shí)現(xiàn)映像表格。尤其是在檢查點(diǎn)處理完成的時(shí)刻,由于映像表格內(nèi)的記錄數(shù)變?yōu)?,所以具有沒(méi)有映像檢索中頁(yè)變換的內(nèi)務(wù)操作的優(yōu)點(diǎn)。
(2)可防止文件的斷片化。即,在本實(shí)施方式中,雖在數(shù)據(jù)更新時(shí)會(huì)暫時(shí)產(chǎn)生文件的斷片化,但通過(guò)檢查點(diǎn)處理可復(fù)原原始盤區(qū)的連續(xù)性。即,使基于盤區(qū)方式的文件管理方式與陰影頁(yè)方式組合,利用檢查點(diǎn)處理,執(zhí)行從陰影段區(qū)域22到數(shù)據(jù)段區(qū)域(文件區(qū)域)21的實(shí)更新,由此可防止文件的斷片化。
(3)可縮短提交的響應(yīng)時(shí)間。一般,陰影頁(yè)方式中的提交時(shí)的成本取決于以下兩點(diǎn)。第1是需在提交時(shí)將包含更新的全部頁(yè)從緩沖存儲(chǔ)器寫入盤中的數(shù)據(jù)量。第2是文件斷片化導(dǎo)致盤的隨機(jī)寫入的產(chǎn)生。另一方面,在陰影段方式中,寫入數(shù)據(jù)量這點(diǎn)與陰影頁(yè)方式一樣。但是,在陰影段方式中,通過(guò)相對(duì)于更新量來(lái)充分增大陰影段區(qū)域22,可得到接近存入的順序?qū)懭胄阅堋F湓蛟谟诳蛇呉来五e(cuò)位頁(yè)位置邊循環(huán)執(zhí)行應(yīng)用于陰影段區(qū)域22內(nèi)的更新的空的頁(yè)(新頁(yè))的分配。
(4)可在寫回到原始(檢查點(diǎn)處理)中進(jìn)行更新??烧J(rèn)為陰影段方式是組合陰影頁(yè)方式與邊文件方式的方式。該邊文件方式的缺點(diǎn)在于在向原始文件的寫回中不能更新。但是,在本實(shí)施方式中,通過(guò)將檢查點(diǎn)處理管理為在文件管理系統(tǒng)10內(nèi)產(chǎn)生的獨(dú)立事務(wù)(內(nèi)部事務(wù))TRc,可克服該缺點(diǎn)。即,在本實(shí)施方式中,與通常的事務(wù)一樣,可利用組提交來(lái)統(tǒng)一處理檢查點(diǎn)處理的事務(wù)TRc,使檢查點(diǎn)處理背負(fù)(piggy back)在通常的事務(wù)處理中來(lái)局部執(zhí)行,從而克服上述缺點(diǎn)。
如上所述,在陰影段區(qū)域22的全部頁(yè)為更新頁(yè)的狀態(tài)下的檢查點(diǎn)處理(實(shí)更新處理)中,該檢查點(diǎn)處理的負(fù)荷變大。因此,最好以規(guī)定數(shù)量的頁(yè)為上限、將檢查點(diǎn)處理分成多次來(lái)執(zhí)行。這樣,通過(guò)局部執(zhí)行而非以具有一貫性的單位來(lái)執(zhí)行檢查點(diǎn)處理,可平穩(wěn)化檢查點(diǎn)處理的負(fù)荷。
下面,分成第1和第2在線備份來(lái)順序說(shuō)明本實(shí)施方式中的在線備份動(dòng)作。所謂第1在線備份是指僅在線備份數(shù)據(jù)段區(qū)域21的數(shù)據(jù),所謂第2在線備份是指在線備份包含陰影段區(qū)域22內(nèi)沒(méi)能進(jìn)行實(shí)更新的頁(yè)。
首先,參照?qǐng)D12的動(dòng)作說(shuō)明圖來(lái)說(shuō)明第1在線備份。這里,當(dāng)在線備份時(shí),由檢查點(diǎn)處理單元13執(zhí)行圖6所示的檢查點(diǎn)處理(實(shí)更新處理)。該“檢查點(diǎn)處理”(實(shí)更新處理)可通過(guò)所述內(nèi)部事務(wù)TRc與通常的事務(wù)的更新處理并列執(zhí)行。
現(xiàn)在,設(shè)通過(guò)檢查點(diǎn)處理,已完成將位于陰影段區(qū)域22中的全部更新頁(yè)(更新頁(yè))的數(shù)據(jù)寫回(實(shí)更新)到數(shù)據(jù)段區(qū)域21中。此時(shí),如圖12所示,備份單元15僅執(zhí)行數(shù)據(jù)段區(qū)域(原始區(qū)域)21的數(shù)據(jù)備份(步驟S51)。設(shè)在該備份中產(chǎn)生對(duì)數(shù)據(jù)段區(qū)域21的數(shù)據(jù)更新。此時(shí),利用需要更新的頁(yè)的圖像拷貝,對(duì)陰影段區(qū)域22內(nèi)的空的頁(yè)執(zhí)行針對(duì)數(shù)據(jù)段區(qū)域21的數(shù)據(jù)更新。這里,如圖12所示,設(shè)對(duì)陰影段區(qū)域22內(nèi)的頁(yè)P(yáng)Sy執(zhí)行向存儲(chǔ)在數(shù)據(jù)段區(qū)域21中的文件#2(F2)內(nèi)的頁(yè)P(yáng)Dx的數(shù)據(jù)更新(步驟S52)。這樣,在本實(shí)施方式中,更新數(shù)據(jù)被寫入陰影段區(qū)域22中。由此,得以保證備份中的數(shù)據(jù)段區(qū)域21的數(shù)據(jù)的一貫性。
下面,參照?qǐng)D13的動(dòng)作說(shuō)明圖來(lái)說(shuō)明第2在線備份。首先,設(shè)在線備份時(shí)執(zhí)行的檢查點(diǎn)處理(實(shí)更新處理)中,位于陰影段區(qū)域22中的一部分頁(yè)沒(méi)能實(shí)更新(寫回)。這種頁(yè)有可能在與通常的事務(wù)并列執(zhí)行檢查點(diǎn)處理的內(nèi)部事務(wù)TRc時(shí)產(chǎn)生。即,在存在作為陰影段區(qū)域22內(nèi)的更新頁(yè)的寫回對(duì)象的、需要數(shù)據(jù)段區(qū)域21內(nèi)的頁(yè)的事務(wù)的情況下,沒(méi)能實(shí)更新(寫回)該更新頁(yè)。
在圖13的實(shí)例中,示出4個(gè)頁(yè)P(yáng)S1、PS8、PSt和PSu,作為陰影段區(qū)域22內(nèi)的沒(méi)能實(shí)更新的頁(yè)。在陰影段區(qū)域22內(nèi)存在沒(méi)能實(shí)更新的頁(yè)(即未完成寫回的有效頁(yè))的情況下,備份單元15執(zhí)行下述的備份。即,備份單元15除數(shù)據(jù)段區(qū)域(原始區(qū)域)的數(shù)據(jù)備份外,還執(zhí)行陰影段區(qū)域22內(nèi)的沒(méi)能實(shí)更新的更新頁(yè)的備份。在圖13的實(shí)例中,執(zhí)行頁(yè)P(yáng)S1、PS8、PSt和PSu的備份。另外,備份單元15還執(zhí)行映像23-0和23-1中原始映像(即最近確定的映像)的備份。在圖13的實(shí)例中,由于映像23-0是原始映像,所以備份該映像23-0。很顯然,在映像23-0中僅存儲(chǔ)包含頁(yè)P(yáng)S1、PS8、PSt和PSu的物理ID的記錄。為了寫回頁(yè)P(yáng)S1、PS8、PSt和PSu的圖像,該記錄包含數(shù)據(jù)段區(qū)域21內(nèi)的初始頁(yè)(原始頁(yè))的物理ID。
設(shè)在上述備份中,產(chǎn)生了對(duì)數(shù)據(jù)段區(qū)域21的數(shù)據(jù)更新。此時(shí),對(duì)陰影段區(qū)域22的數(shù)據(jù)更新利用需要該更新的頁(yè)的圖像拷貝,對(duì)該陰影段區(qū)域22的新的頁(yè)執(zhí)行。因此,利用數(shù)據(jù)段區(qū)域21與沒(méi)能實(shí)更新的陰影段區(qū)域22內(nèi)的頁(yè)的組合所實(shí)現(xiàn)的數(shù)據(jù)的一貫性得以保證。即,在本實(shí)施方式中,可進(jìn)行備份處理中的數(shù)據(jù)更新。換言之,可在數(shù)據(jù)更新中進(jìn)行有一貫性的備份。
如上所述,在陰影段區(qū)域22內(nèi)存在沒(méi)能實(shí)更新的頁(yè)的情況下,除數(shù)據(jù)段區(qū)域21的備份外,還備份沒(méi)能實(shí)更新的頁(yè)與原始映像。由此,即便存儲(chǔ)裝置20等產(chǎn)生故障,也可在根據(jù)備份數(shù)據(jù)恢復(fù)到備份時(shí)刻確定的狀態(tài)之后,執(zhí)行沒(méi)能實(shí)更新的頁(yè)的實(shí)更新。這里,根據(jù)存儲(chǔ)在原始映像中的、對(duì)應(yīng)于該頁(yè)的記錄,將沒(méi)能實(shí)更新的頁(yè)正確寫回到數(shù)據(jù)段區(qū)域21內(nèi)的初始頁(yè)位置上。另外,在在線備份時(shí)執(zhí)行的檢查點(diǎn)處理中,在產(chǎn)生沒(méi)能實(shí)更新(寫回)的更新頁(yè)的情況下,也可將涉及該沒(méi)能實(shí)更新的頁(yè)(更新頁(yè))與初始頁(yè)的信息存儲(chǔ)在局部存儲(chǔ)器40中,也備份該信息。此時(shí),可根據(jù)上述存儲(chǔ)信息,直接特定沒(méi)能更新的頁(yè)(更新頁(yè))與初始頁(yè)。因此,在復(fù)原時(shí),可不檢索原始映像地快速執(zhí)行實(shí)更新。
如上所述,上述實(shí)施方式的特征在于適用以陰影頁(yè)方式為基礎(chǔ)的陰影段方式。即,上述實(shí)施方式的特征在于適用對(duì)數(shù)據(jù)段區(qū)域21內(nèi)的初始頁(yè)(原始頁(yè))之外的、陰影段區(qū)域22內(nèi)的頁(yè)(更新頁(yè))執(zhí)行數(shù)據(jù)更新的構(gòu)成。從而,在本實(shí)施方式中,即便是在事務(wù)處理中,也可保持一貫性不變地參照更新前的狀態(tài)。但是,在本實(shí)施方式中,是通過(guò)原子地切換一對(duì)映像(映像表格)23-0和23-1實(shí)現(xiàn)事務(wù)性。因此,在存在參照原始頁(yè)的事務(wù)的情況下,不能開始下一事務(wù)。下面說(shuō)明該問(wèn)題。
現(xiàn)在,設(shè)更新事務(wù)TR1將映像23-0(#0)用作原始映像來(lái)開始處理,并設(shè)映像23-1(#1)為更新。參照事務(wù)TR2參照原始映像#0,執(zhí)行具有一貫性的詢問(wèn)。之后,設(shè)完成更新事務(wù)TR1。另外,在該狀態(tài)下,設(shè)更新事務(wù)TR3將映像#1用作原始映像來(lái)開始處理,將映像#0設(shè)為即將更新。但是,由于參照事務(wù)TR2參照映像#0,所以更新事務(wù)TR3不能開始處理。該問(wèn)題即便在通過(guò)原子地切換一對(duì)頁(yè)表格來(lái)實(shí)現(xiàn)事務(wù)性的現(xiàn)有陰影頁(yè)方式中也一樣。
作為解決這種問(wèn)題的方案,已知多版本同時(shí)執(zhí)行控制(multi-versionconcurrency controlMVCC)。多版本同時(shí)執(zhí)行控制功能具有以下4個(gè)特性(a)在檢索(參照)中不取得日志(b)即便其它事務(wù)在更新中,檢索(參照)請(qǐng)求中也不產(chǎn)生“等待”(c)在其它事務(wù)在更新中發(fā)出檢索請(qǐng)求的情況下,可取得的是截止到檢索開始前一刻提交的數(shù)據(jù)圖像
(d)保持該舊版本的數(shù)據(jù)圖像,直至關(guān)閉基于檢索的結(jié)果設(shè)置(Result Set)為止,即直至不需要將檢索結(jié)果的一部分?jǐn)?shù)據(jù)保持在服務(wù)器上為止。
另一方面,在存入中,利用保持多代前圖像(beefore Image)的方式來(lái)實(shí)現(xiàn)事務(wù)性。但是,在該方式中,由于在原始區(qū)域之外必須具有后圖像與前圖像雙方,所以盤使用量的成本變高。
上述實(shí)施方式的變形例的特征在于可將多版本同時(shí)執(zhí)行控制適用于陰影段方式中。因此,在該變形例中,適用(1)提交時(shí)刻、(2)MVCC隊(duì)列等兩個(gè)概念。下面,說(shuō)明這兩個(gè)概念。
(1)提交時(shí)刻為了實(shí)現(xiàn)相當(dāng)于上述(c)特征的事務(wù)分離等級(jí)(基于MVCC)的READ_COMMITTED,在“執(zhí)行檢索的時(shí)刻”需要上次提交完成的數(shù)據(jù)圖像。所謂“執(zhí)行檢索的時(shí)刻”是指在執(zhí)行檢索之前完成提交的時(shí)刻。作為用于特定該“執(zhí)行檢索的時(shí)刻”的概念,準(zhǔn)備了“提交時(shí)刻”。在本變形例中,在提交時(shí)刻中使用了自系統(tǒng)初次起動(dòng)的時(shí)刻起執(zhí)行的提交的次數(shù)。即,提交時(shí)刻單調(diào)增加。
(2)MVCC隊(duì)列在單純的陰影頁(yè)方式中,在完成提交的時(shí)刻,更新前的原始頁(yè)廢棄也無(wú)妨。但在該變形例中,為了能參照過(guò)去的版本,適用不廢棄(再利用)其它事務(wù)參照的頁(yè)的構(gòu)成。為了適用該構(gòu)成,需要用于構(gòu)成判斷是否為其它事務(wù)參照的頁(yè)的基準(zhǔn)的信息。該信息是對(duì)應(yīng)于映像23-i(i=1、2)的不同代的局部映像,MVCC隊(duì)列被用于積累該局部映像。由于該MVCC隊(duì)列不必永久保存,所以可構(gòu)筑在局部存儲(chǔ)器40上。
圖14表示保持在局部存儲(chǔ)器40中的MVCC隊(duì)列41的一例。在圖14的實(shí)例中,在MVCC隊(duì)列41中積累多代的局部映像410-1、410-2、...。向各局部映像410-j(j=1、2、...)附加作為印時(shí)戳的提交時(shí)刻Tj的信息。提交時(shí)刻Tj表示對(duì)應(yīng)的事務(wù)TRj的提交時(shí)刻,即從系統(tǒng)最初起動(dòng)到提交事務(wù)TRj的提交次數(shù)。這里,T1<T2。
這樣,本變形例中的文件管理系統(tǒng)10通過(guò)導(dǎo)入MVCC隊(duì)列41,在映像23-0和23-1之外,動(dòng)態(tài)具有由執(zhí)行中的事務(wù)利用的不同代的映像(局部映像)410-i。在本變形例中,適用不再利用從這些映像參照的原始頁(yè)的構(gòu)成。該構(gòu)成與上述日志與基于前圖像的事務(wù)性的實(shí)現(xiàn)相比,具有如下優(yōu)點(diǎn)
(1)由于僅由后圖像來(lái)實(shí)現(xiàn),所以數(shù)據(jù)的拷貝次數(shù)少(2)由于不需要前圖像區(qū)域,所以盤使用量少(3)事務(wù)性實(shí)現(xiàn)用的映像參照與MVCC用的映像參照是基本一樣的處理,實(shí)現(xiàn)用的成本少。
下面,以首先執(zhí)行頁(yè)內(nèi)數(shù)據(jù)的更新的情況為例,引用圖5來(lái)說(shuō)明本變形例的動(dòng)作。如上所述,在圖5的實(shí)例中,事務(wù)TR更新的數(shù)據(jù)為文件#2(F2),需要更新的頁(yè)為盤區(qū)#22的第2頁(yè)的頁(yè)P(yáng)D1。下面,為了便于說(shuō)明,設(shè)事務(wù)TR為事務(wù)TRj。頁(yè)P(yáng)D1的物理ID為1000。在陰影段方式中,利用該頁(yè)P(yáng)D1的圖像拷貝,對(duì)陰影段區(qū)域22內(nèi)的空的頁(yè)執(zhí)行針對(duì)該頁(yè)P(yáng)D1的更新。在圖5的實(shí)例中,該空的頁(yè)為頁(yè)P(yáng)S1,其物理ID=SS1。
此時(shí),在事務(wù)TRj的提交處理中,由更新處理單元11的提交部113,將該事務(wù)TR開始時(shí)刻的原始映像23-0拷貝到映像23-1中。接著,向該拷貝后的映像23-1中追加包含物理ID=1000與物理ID=SS1的對(duì)的記錄。另外,將映像的原始從映像23-0(#0)切換到映像23-1(#1)。在本變形例中,此外,由提交部113制作在提交時(shí)刻切換為原始的映像(這里為映像23-1)的拷貝,作為最新的局部映像410-j,積累(追加)到MVCC隊(duì)列41中。將事務(wù)TRj的提交時(shí)刻的提交時(shí)刻Tj作為印時(shí)戳附加于該局部映像410-j上。
下面,與上述實(shí)施方式一樣,以讀入文件#2(F2)中的共同頁(yè)序號(hào)10的頁(yè)的情況為例,引用圖7和圖8來(lái)說(shuō)明伴隨事務(wù)TRk中的數(shù)據(jù)檢索的數(shù)據(jù)讀入處理(參照處理)。首先,讀入處理單元12的讀入部121將事務(wù)TRk的數(shù)據(jù)檢索請(qǐng)求(參照請(qǐng)求)時(shí)刻的提交時(shí)刻設(shè)為事務(wù)開始時(shí)刻。接著,讀入部121讀入文件表格210中的文件表格記錄FTR2。之后,讀入部121根據(jù)該文件表格記錄FTR2所示的文件#2的盤區(qū)構(gòu)成,識(shí)別共同頁(yè)序號(hào)10的頁(yè)為盤區(qū)#22的第5頁(yè)、即物理ID為215的頁(yè)。
讀入部121根據(jù)對(duì)應(yīng)于事務(wù)TRk存儲(chǔ)在局部存儲(chǔ)器40中的信息(映像追加請(qǐng)求),判定物理ID=215的頁(yè)是否是該事務(wù)TRk自身更新的頁(yè)。并且,若物理ID=215的頁(yè)是由事務(wù)TRk更新的頁(yè),則讀入部121的最新頁(yè)讀入部121b讀入該更新頁(yè)的數(shù)據(jù)。
相反,若物理ID=215的頁(yè)不是由事務(wù)TRk更新的頁(yè),則讀入部121的映像檢索部121a參照MVCC隊(duì)列41。之后,映像檢索部121a從MVCC隊(duì)列41中搜索具有與上述事務(wù)開始時(shí)刻Tk一致的提交時(shí)刻的局部映像。這樣,該變形例的一個(gè)關(guān)鍵在于以事務(wù)開始時(shí)刻為密鑰檢索MVCC隊(duì)列41。
這里,設(shè)從MVCC隊(duì)列41中找到局部映像410-2,作為具有與事務(wù)開始時(shí)刻Tk一致的提交時(shí)刻的局部映像。此時(shí),映像檢索部121a檢索該局部映像410-2,調(diào)查是否存儲(chǔ)了包含物理ID=215的記錄。若存儲(chǔ)了包含物理ID=215的記錄,則映像檢索部121a從該記錄中取出與物理ID=215構(gòu)成對(duì)的更新頁(yè)的物理ID。映像檢索部121a將取出的物理ID傳遞給讀入部121的最新頁(yè)讀入部121b。此時(shí),最新頁(yè)讀入部121b讀入由從映像檢索部121a傳遞來(lái)的物理ID所示的陰影段區(qū)域22內(nèi)的更新頁(yè)的數(shù)據(jù)。這樣,在本變形例中,在伴隨事務(wù)TRk中的數(shù)據(jù)檢索的數(shù)據(jù)讀入中,利用附加對(duì)應(yīng)于該事務(wù)TRk的開始時(shí)刻Tk的印時(shí)戳的更新列表。由此,可在數(shù)據(jù)更新中取得事務(wù)TRk的開始時(shí)刻的具有一貫性的數(shù)據(jù)。換言之,可在數(shù)據(jù)更新中不等待數(shù)據(jù)讀入地保證數(shù)據(jù)的一貫性。
相反,若局部映像410-2中未存儲(chǔ)包含物理ID=215的記錄,則映像檢索部121a檢索該時(shí)刻的原始映像23-0,調(diào)查是否存儲(chǔ)了包含物理ID=215的記錄。若包含物理ID=215的記錄存儲(chǔ)在原始映像23-0中,則映像檢索部121a從該記錄中取出與物理ID=215構(gòu)成對(duì)的更新頁(yè)的物理ID。映像檢索部121a將取出的物理ID傳遞給讀入部121的最新頁(yè)讀入部121b。由此,最新頁(yè)讀入部121b讀入由從映像檢索部121a傳遞來(lái)的物理ID所示的陰影段區(qū)域22內(nèi)的更新頁(yè)的數(shù)據(jù)。另一方面,若包含物理ID=215的記錄也未存儲(chǔ)在原始映像23-0中,則最新頁(yè)讀入部121b直接讀入物理ID=215的頁(yè)的數(shù)據(jù)。
下面,說(shuō)明從MVCC隊(duì)列41中釋放局部映像的處理。該處理(映像釋放處理)也與上述實(shí)施方式中的實(shí)更新處理一樣,稱為檢查點(diǎn)處理。局部映像的釋放,例如由檢查點(diǎn)處理單元13的映像釋放部133定期執(zhí)行。映像釋放部133首先從當(dāng)前執(zhí)行中的事務(wù)的開始時(shí)刻(事務(wù)開始時(shí)刻)中,取得最早的事務(wù)開始時(shí)刻T。接著,映像釋放部133將事務(wù)開始時(shí)刻T與積累在MVCC隊(duì)列41中的局部映像410-1、410-2的印時(shí)戳、即提交時(shí)刻T1、T2相比。之后,從MVCC隊(duì)列41中釋放具有比事務(wù)開始時(shí)刻T還早的印時(shí)戳(提交時(shí)刻)的全部局部映像。
并且,伴隨局部映像的釋放,需要陰影段區(qū)域22的空的頁(yè)的管理與原始映像的壓縮。將該處理作為文件管理系統(tǒng)10中的內(nèi)部事務(wù)來(lái)執(zhí)行。當(dāng)系統(tǒng)頻繁執(zhí)行更新時(shí),通過(guò)由組提交來(lái)統(tǒng)一處理,可減輕負(fù)荷。
在由上述陰影段方式來(lái)實(shí)現(xiàn)MVCC功能的情況下,也對(duì)實(shí)更新造成影響??蓛H對(duì)未由積累在MVCC隊(duì)列41中的局部映像參照的頁(yè)執(zhí)行實(shí)更新。換言之,由于積累在MVCC隊(duì)列41中的局部映像所示的頁(yè)有可能被當(dāng)前執(zhí)行中的事務(wù)參照,所以不是再利用的對(duì)象。
權(quán)利要求
1.一種具有事務(wù)管理功能的文件系統(tǒng),包括存儲(chǔ)裝置,具有確保文件區(qū)域與暫時(shí)寫入?yún)^(qū)域的存儲(chǔ)區(qū)域,所述文件區(qū)域被文件(多個(gè)文件)占有,所述暫時(shí)寫入?yún)^(qū)域用于暫時(shí)存儲(chǔ)文件的頁(yè)單位的更新數(shù)據(jù);一對(duì)映像表格,用于記錄執(zhí)行更新的有效頁(yè)的列表,將執(zhí)行所述更新的有效頁(yè)存儲(chǔ)在所述暫時(shí)寫入?yún)^(qū)域中,將所述一對(duì)映像表格配置在所述存儲(chǔ)區(qū)域中;文件管理部件,用于管理存儲(chǔ)在所述文件區(qū)域中的文件;更新處理部件,更新包含于由所述文件管理部件管理的文件中的頁(yè),所述更新處理部件通過(guò)向空的頁(yè)中寫入更新數(shù)據(jù)來(lái)執(zhí)行所述頁(yè)的更新,從所述暫時(shí)寫入?yún)^(qū)域中取得所述空的頁(yè);提交部件,在每次事務(wù)(多個(gè)事務(wù))各自的提交時(shí),將在該時(shí)刻存儲(chǔ)在所述暫時(shí)寫入?yún)^(qū)域中的所述有效頁(yè)的列表交互地寫入所述一對(duì)映像表格中;和實(shí)更新部件,將存儲(chǔ)在所述暫時(shí)寫入?yún)^(qū)域中的有效頁(yè)的更新數(shù)據(jù)寫入所述文件區(qū)域的最初的頁(yè)位置,所述實(shí)更新部件開放所述最初的頁(yè)位置寫有更新數(shù)據(jù)的所述有效頁(yè)。
2.根據(jù)權(quán)利要求1所述的文件系統(tǒng),其特征在于按盤區(qū)單位來(lái)管理存儲(chǔ)在所述文件區(qū)域中的文件;在所述文件區(qū)域中,存儲(chǔ)用于管理存儲(chǔ)在所述文件區(qū)域中的文件(多個(gè)文件)的文件表格,所述文件表格本身是一個(gè)文件,所述文件表格對(duì)各個(gè)存儲(chǔ)在所述文件區(qū)域中的文件(多個(gè)文件)保持表示構(gòu)成該各文件的盤區(qū)的盤區(qū)信息,作為一個(gè)記錄;和所述文件管理部件管理所述文件表格本身,作為一個(gè)文件。
3.根據(jù)權(quán)利要求2所述的文件系統(tǒng),其特征在于所述更新處理部件在所述頁(yè)更新是向由所述文件表格管理的盤區(qū)內(nèi)的未使用頁(yè)追加數(shù)據(jù)的情況下,直接將數(shù)據(jù)寫入該盤區(qū)內(nèi)的所述未使用頁(yè)中。
4.根據(jù)權(quán)利要求1所述的文件系統(tǒng),其特征在于所述實(shí)更新部件利用對(duì)所述一對(duì)映像表格之一的更新處理來(lái)執(zhí)行用于確定所述實(shí)更新處理的操作。
5.根據(jù)權(quán)利要求4所述的文件系統(tǒng),其特征在于所述實(shí)更新部件將所述實(shí)更新處理分成多次來(lái)執(zhí)行。
6.根據(jù)權(quán)利要求4所述的文件系統(tǒng),其特征在于所述實(shí)更新部件在所述實(shí)更新處理之前,產(chǎn)生多次對(duì)所述文件區(qū)域內(nèi)的同一頁(yè)的更新,每次在由所述更新處理部件執(zhí)行向從所述暫時(shí)寫入?yún)^(qū)域中取得的空的頁(yè)中寫入更新數(shù)據(jù)的情況下,僅向在對(duì)所述同一頁(yè)的多次更新中最新的更新中寫入更新數(shù)據(jù)的頁(yè)寫回更新數(shù)據(jù),從在最新的更新中寫入更新數(shù)據(jù)的頁(yè)開始,對(duì)所述文件區(qū)域的最初的頁(yè)位置執(zhí)行該更新數(shù)據(jù)的寫回。
7.根據(jù)權(quán)利要求4所述的文件系統(tǒng),其特征在于進(jìn)一步包括備份部件,用于在線備份所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的數(shù)據(jù),所述備份部件在由所述實(shí)更新部件完成從所述暫時(shí)寫入?yún)^(qū)域內(nèi)的全部有效頁(yè)向所述文件區(qū)域的最初的頁(yè)位置寫回更新數(shù)據(jù)的情況下,僅備份所述文件區(qū)域的數(shù)據(jù)。
8.根據(jù)權(quán)利要求4所述的文件系統(tǒng),其特征在于進(jìn)一步包括備份部件,用于在線備份所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的數(shù)據(jù),所述備份部件在備份開始時(shí),在所述暫時(shí)寫入?yún)^(qū)域內(nèi)存在所述實(shí)更新部件來(lái)完成更新數(shù)據(jù)的寫回的有效頁(yè)的情況下,備份所述文件區(qū)域的數(shù)據(jù)、該未完成寫回的有效頁(yè)的數(shù)據(jù)、和所述一對(duì)映像表格中最近確定的映像表格。
9.根據(jù)權(quán)利要求1所述的文件系統(tǒng),其特征在于進(jìn)一步包括隊(duì)列,在每次事務(wù)(多個(gè)事務(wù))各自的提交時(shí),向反映所述一對(duì)映像表格中、在該提交時(shí)確定的映像表格的局部映像附加表示該提交時(shí)的時(shí)刻的印時(shí)戳后積累;和讀入(read)部件,用于讀入(read)任意事務(wù)中請(qǐng)求的頁(yè)的數(shù)據(jù),所述讀入部件在所述請(qǐng)求的頁(yè)在所述任意事務(wù)中未被更新的情況下,從所述隊(duì)列中檢索附加了對(duì)應(yīng)于該任意事務(wù)開始時(shí)刻的印時(shí)戳的局部映像,根據(jù)該檢索到的印時(shí)戳,讀入所述請(qǐng)求的頁(yè)的數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的文件系統(tǒng),其特征在于所述讀入部件在所述請(qǐng)求的頁(yè)在所述任意事務(wù)中被更新的情況下,讀入該更新的頁(yè)的數(shù)據(jù),在所述檢索到的局部映像未表示存在所述請(qǐng)求的頁(yè)的更新后的有效頁(yè)的情況下,根據(jù)所述一對(duì)映像表格中、在該時(shí)刻確定的映像表格,讀入該有效頁(yè)的數(shù)據(jù)。
11.根據(jù)權(quán)利要求9所述的文件系統(tǒng),其特征在于進(jìn)一步包括局部映像釋放部件,根據(jù)所述每次事務(wù)(多個(gè)事務(wù))各自的提交時(shí)附加于積累在所述隊(duì)列中的局部映像上的印時(shí)戳,從所述隊(duì)列中釋放附加了比當(dāng)前執(zhí)行中的事務(wù)(多個(gè)事務(wù))中最早開始時(shí)刻還早的印時(shí)戳的局部映像。
12.根據(jù)權(quán)利要求1所述的文件系統(tǒng),其特征在于所述更新處理部件邊依次錯(cuò)位頁(yè)位置邊循環(huán)取得所述暫時(shí)寫入?yún)^(qū)域內(nèi)的應(yīng)用于更新的空的頁(yè)。
13.一種適用于具有事務(wù)管理功能的文件系統(tǒng)中的文件管理方法,包括在存儲(chǔ)裝置的存儲(chǔ)區(qū)域內(nèi),確保文件區(qū)域與暫時(shí)寫入?yún)^(qū)域,所述文件區(qū)域被文件(多個(gè)文件)占有,所述暫時(shí)寫入?yún)^(qū)域用于暫時(shí)存儲(chǔ)文件的頁(yè)單位的更新數(shù)據(jù);在請(qǐng)求存儲(chǔ)在所述文件區(qū)域中的文件的頁(yè)更新的情況下,從所述暫時(shí)寫入?yún)^(qū)域中取得空的頁(yè);通過(guò)將更新數(shù)據(jù)寫入從所述暫時(shí)寫入?yún)^(qū)域中取得的空的頁(yè)中,執(zhí)行所述請(qǐng)求的頁(yè)更新;在事務(wù)的提交時(shí),將上次事務(wù)提交時(shí)用于列表記錄的映像表格拷貝到用于記錄執(zhí)行所述暫時(shí)寫入?yún)^(qū)域內(nèi)的更新的有效頁(yè)列表的一對(duì)映像表格中的、在上次事務(wù)提交時(shí)未用于列表記錄的映像表格中;在所述一對(duì)映像表格中的所述拷貝的映像表格中,記錄當(dāng)前的所述暫時(shí)寫入?yún)^(qū)域內(nèi)的有效頁(yè)的列表;和執(zhí)行將所述暫時(shí)寫入?yún)^(qū)域內(nèi)的有效頁(yè)的更新數(shù)據(jù)寫回所述文件區(qū)域的最初頁(yè)位置的實(shí)更新處理,所述實(shí)更新處理包括在將所述有效頁(yè)的更新數(shù)據(jù)寫回所述最初頁(yè)位置之后,開放該有效頁(yè)。
14.根據(jù)權(quán)利要求13所述的文件管理方法,其特征在于進(jìn)一步包括利用對(duì)所述一對(duì)映像表格之一的更新處理來(lái)執(zhí)行用于確定所述實(shí)更新處理的操作。
15.根據(jù)權(quán)利要求14所述的文件管理方法,其特征在于進(jìn)一步包括在線備份所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域數(shù)據(jù),所述備份包含在通過(guò)執(zhí)行所述實(shí)更新處理,完成將更新數(shù)據(jù)從所述暫時(shí)寫入?yún)^(qū)域內(nèi)的全部有效頁(yè)寫回所述文件區(qū)域的最初頁(yè)位置的情況下,僅備份所述文件區(qū)域的數(shù)據(jù)。
16.根據(jù)權(quán)利要求14所述的文件管理方法,其特征在于進(jìn)一步包括在線備份所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域數(shù)據(jù),所述備份包含在備份開始時(shí),在所述暫時(shí)寫入?yún)^(qū)域內(nèi)存在未完成更新數(shù)據(jù)的寫回的有效頁(yè)的情況下,備份所述文件區(qū)域的數(shù)據(jù)、該未完成寫回的有效頁(yè)的數(shù)據(jù)、和所述一對(duì)映像表格中最近確定的映像表格。
17.根據(jù)權(quán)利要求13所述的文件管理方法,其特征在于進(jìn)一步包括在每次事務(wù)(多個(gè)事務(wù))各自的提交時(shí),向反映所述一對(duì)映像表格中、在該提交時(shí)確定的映像表格的局部映像附加表示該提交時(shí)的時(shí)刻的印時(shí)戳后,積累到隊(duì)列中;和讀入(read)任意事務(wù)中請(qǐng)求的頁(yè)的數(shù)據(jù),所述讀入在所述請(qǐng)求的頁(yè)在所述任意事務(wù)中未被更新的情況下,從所述隊(duì)列中檢索附加了對(duì)應(yīng)于該任意事務(wù)開始時(shí)刻的印時(shí)戳的局部映像,根據(jù)該檢索到的印時(shí)戳,讀入所述請(qǐng)求的頁(yè)的數(shù)據(jù)。
全文摘要
在存儲(chǔ)裝置(20)的存儲(chǔ)區(qū)域中,確保文件區(qū)域(21)與暫時(shí)寫入?yún)^(qū)域(22),在上述存儲(chǔ)區(qū)域中配置一對(duì)映像表格(23-0)和(23-1)。更新處理單元(updateprocessing unit)(11)通過(guò)將更新數(shù)據(jù)寫入從暫時(shí)寫入?yún)^(qū)域(22)中取得的空的頁(yè)中,執(zhí)行存儲(chǔ)在文件區(qū)域(21)中的文件的頁(yè)更新。提交部(commit module)(113)在每次事務(wù)(多個(gè)事務(wù))各自的提交時(shí),將該時(shí)刻的暫時(shí)寫入?yún)^(qū)域(22)的有效頁(yè)的列表交互寫入映像表格(23-0)和(23-1)中。檢查點(diǎn)處理單元(checkpoint processing unit)(13)將暫時(shí)寫入?yún)^(qū)域(22)內(nèi)的有效頁(yè)的更新數(shù)據(jù)寫回到文件區(qū)域(21)的最初的頁(yè)位置。
文檔編號(hào)G06F17/30GK1755673SQ20051006460
公開日2006年4月5日 申請(qǐng)日期2005年4月15日 優(yōu)先權(quán)日2004年9月30日
發(fā)明者松井浩二, 谷川均, 近藤雄二 申請(qǐng)人:株式會(huì)社東芝, 東芝解決方案株式會(huì)社