專利名稱:一種數(shù)據(jù)存儲系統(tǒng)事務(wù)的實現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)管理領(lǐng)域,尤其是涉及一種數(shù)據(jù)存儲系統(tǒng)事務(wù)的實現(xiàn)方法和裝置。
背景技術(shù):
事務(wù)(Transaction)是訪問并可能更新數(shù)據(jù)存儲系統(tǒng)中各種數(shù)據(jù)項的一個基本程 序執(zhí)行單元。事務(wù)處理技術(shù)主要包括數(shù)據(jù)恢復(fù)技術(shù)和并發(fā)控制技術(shù),事務(wù)是恢復(fù)和并發(fā) 的基本單位。
一個事務(wù)由應(yīng)用程序中的一組操作序列組成,以事務(wù)開始(TRANSACTION BEGIN)操作開始,以提交(COMMIT)操作或者回退(ROLLBACK)操作結(jié)束。COMMIT 操作表示事務(wù)執(zhí)行成功的結(jié)束(提交),此時該事務(wù)對數(shù)據(jù)存儲系統(tǒng)的所有更改都將交付 實施(寫入存儲器),數(shù)據(jù)存儲系統(tǒng)進入一個新的正確的狀態(tài)。ROLLBACK操作表示 事務(wù)執(zhí)行不成功的結(jié)束(回退),此時數(shù)據(jù)存儲系統(tǒng)可能處在不正確的狀態(tài),該事務(wù)對數(shù) 據(jù)存儲系統(tǒng)所有的更改必須撤銷,數(shù)據(jù)存儲系統(tǒng)應(yīng)該恢復(fù)該事務(wù)到初始狀態(tài)。如果數(shù)據(jù) 存儲系統(tǒng)以TRANSACTION BEGIN操作開始后,發(fā)生了嚴重的異常,不能接收并處理 ROLLBACK操作,那么此時的數(shù)據(jù)存儲系統(tǒng)也處于不正確狀態(tài),系統(tǒng)將在下一次初始化 后檢測出這種不正確的狀態(tài),并完成ROLLBACK操作。
在某些嵌入式環(huán)境下(例如手機、智能卡),系統(tǒng)資源及其有限,并發(fā)訪問難以 實現(xiàn),即同一時間內(nèi)只能處理一個用戶的操作請求,此時數(shù)據(jù)存儲系統(tǒng)的事務(wù)處理機制 稱為單事務(wù)。單事務(wù)也可以認為只包含數(shù)據(jù)恢復(fù)功能。本發(fā)明下述的事務(wù)均是指單事 務(wù)。
單事務(wù)的數(shù)據(jù)恢復(fù)功能涉及兩個關(guān)鍵問題是第一,如何建立備份數(shù)據(jù);第 二,如何利用備份數(shù)據(jù)實施數(shù)據(jù)恢復(fù)。
現(xiàn)有數(shù)據(jù)庫等數(shù)據(jù)存儲系統(tǒng)的事務(wù)功能一般都是基于備份方式實現(xiàn),即將需要 被保護的內(nèi)容從數(shù)據(jù)文件(或者數(shù)據(jù)區(qū))復(fù)制到備份文件(或者備份區(qū))中實現(xiàn)備份, 或者,將要修改的內(nèi)容直接寫到備份文件(或者備份區(qū)),則,在需要的時候?qū)浞菸募?(或者備份區(qū))的內(nèi)容復(fù)制回數(shù)據(jù)文件(或者數(shù)據(jù)區(qū))以實現(xiàn)數(shù)據(jù)恢復(fù)。
現(xiàn)有技術(shù)的缺點是很明顯的,主要包括以下幾個方面首先這一過程需要較多 的存儲器讀寫操作,消耗較多的時間,進而影響數(shù)據(jù)存儲系統(tǒng)的效率;這種現(xiàn)有技術(shù)的 方案是數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)空間和備份空間相隔離,這里的空間是指文件、存儲頁面、 存儲扇區(qū)、其他具有一定存儲功能的存儲層次、或者其他具有一定結(jié)構(gòu)的存儲單元。由 于數(shù)據(jù)空間和備份空間分區(qū)隔離,這種劃分方式必然導(dǎo)致事務(wù)過程中數(shù)據(jù)的反復(fù)復(fù)制, 增加讀寫操作量,降低了效率。其次,由于數(shù)據(jù)存儲系統(tǒng)的存儲空間劃分為數(shù)據(jù)空間與 備份空間,二者是此消彼長的關(guān)系,容量上相互制約,這種制約可能會限制數(shù)據(jù)存儲系 統(tǒng)事務(wù)的能力。發(fā)明內(nèi)容
本發(fā)明提出一種數(shù)據(jù)存儲系統(tǒng)事務(wù)的實現(xiàn)方法和裝置,用以減少存儲器讀寫操 作和提高存儲器空間利用率,從而提高事務(wù)處理的效率。
一種數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的實現(xiàn)方法,包括
在數(shù)據(jù)存儲系統(tǒng)事務(wù)開始時,確定該事務(wù)操作對應(yīng)的數(shù)據(jù)的存儲位置,并執(zhí)行 事務(wù)操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識從正常狀態(tài)修改為臨時狀態(tài);
在所述事務(wù)結(jié)束時,將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識由所述臨時狀態(tài)修改為正 常狀態(tài),其中,所述存儲位置位于存儲空間中并用于存儲數(shù)據(jù),所述狀態(tài)標(biāo)識用于標(biāo)識 該存儲位置的數(shù)據(jù)的狀態(tài)信息。
一種數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的實現(xiàn)裝置,包括
操作模塊,用于在數(shù)據(jù)存儲系統(tǒng)事務(wù)開始時,確定該事務(wù)操作對應(yīng)的數(shù)據(jù)的存 儲位置,并執(zhí)行事務(wù)操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識從正常狀態(tài)修改為臨時 狀態(tài);
處理模塊,用于在所述事務(wù)結(jié)束時,將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識由所述臨 時狀態(tài)修改為正常狀態(tài),其中,所述存儲位置位于存儲空間中并用于存儲數(shù)據(jù),所述狀 態(tài)標(biāo)識用于標(biāo)識該存儲位置的數(shù)據(jù)的狀態(tài)信息。
本發(fā)明提出一種采用數(shù)據(jù)空間和備份空間相融合并且映射管理的方式實現(xiàn)單事 務(wù)功能的方法,用以減少對存儲器的讀寫操作和提高存儲器空間利用率,提高了事務(wù)處理的效率。
圖1為本發(fā)明實施例提供的數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的實現(xiàn)方法流程圖2為本發(fā)明實施例中存儲位置的狀態(tài)標(biāo)識轉(zhuǎn)換圖3為一種基于文件系統(tǒng)的數(shù)據(jù)庫中利用本方案實現(xiàn)事務(wù)功能的文件數(shù)據(jù)結(jié) 構(gòu);
圖4為提交操作結(jié)束后數(shù)據(jù)庫表的狀態(tài)變更圖5為回退操作結(jié)束后數(shù)據(jù)庫表的狀態(tài)變更圖6為一種基于磁盤接口的具有事務(wù)功能的文件系統(tǒng)使用本方案實現(xiàn)事務(wù)的數(shù) 據(jù)存儲結(jié)構(gòu);
圖7為提交操作結(jié)束后扇區(qū)的狀態(tài)變更圖8為回退操作結(jié)束后扇區(qū)的狀態(tài)變更圖9為本發(fā)明實施例提供的數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的實現(xiàn)裝置結(jié)構(gòu)圖。
具體實施方式
本發(fā)明實施例提供一種數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的實現(xiàn)方法和裝置,將有效降低存 儲器讀寫操作,提高空間利用率,提高事務(wù)處理的效率。本發(fā)明實施例提供的實現(xiàn)事務(wù) 的方法,通過對存儲空間的每一個存儲位置設(shè)置狀態(tài)標(biāo)識,用于標(biāo)識該存儲位置的數(shù)據(jù) 的狀態(tài)信息,并且在進行事務(wù)操作的過程中,將進行操作的存儲位置的狀態(tài)標(biāo)識修改為 臨時狀態(tài),在操作結(jié)束后,根據(jù)操作結(jié)束方式,將進行操作的存儲位置的狀態(tài)標(biāo)識修改為對應(yīng)的正常狀態(tài)。因此在數(shù)據(jù)的操作過程中,需要操作的數(shù)據(jù)只寫入一次,沒有額外 的數(shù)據(jù)備份機制和數(shù)據(jù)恢復(fù)機制,僅需要在操作過程中更改狀態(tài)標(biāo)識,不會加重存儲操 作的負擔(dān),減少存儲器讀寫操作和提高存儲器空間利用率,提高了事務(wù)處理的效率。
本發(fā)明所指的數(shù)據(jù)存儲系統(tǒng)包括數(shù)據(jù)庫、文件系統(tǒng)等用于存儲和管理數(shù)據(jù)的軟 硬件系統(tǒng)。事務(wù)是數(shù)據(jù)庫的基本功能,數(shù)據(jù)庫系統(tǒng)均具有事務(wù)處理機制。事務(wù)也可以是 文件系統(tǒng)的擴展功能。
如圖1所示,為本發(fā)明實施例提供的數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的實現(xiàn)方法流程圖, 具體包括
SlOU預(yù)先為數(shù)據(jù)存儲系統(tǒng)的存儲空間的存儲位置設(shè)置狀態(tài)標(biāo)識;
其中,將數(shù)據(jù)存儲系統(tǒng)的存儲空間劃分為兩種結(jié)構(gòu)存儲位置以及存儲位置對 應(yīng)的狀態(tài)標(biāo)識;存儲位置用于存儲數(shù)據(jù),狀態(tài)標(biāo)識用于標(biāo)識該存儲位置的數(shù)據(jù)的狀態(tài)信 肩、ο
在初始化數(shù)據(jù)存儲系統(tǒng)時,需要對存儲系統(tǒng)的存儲空間的每個存儲位置設(shè)置狀 態(tài)標(biāo)識,初始時,存儲位置的狀態(tài)標(biāo)識包括數(shù)據(jù)有效,數(shù)據(jù)無效。數(shù)據(jù)有效表示該存儲 位置的數(shù)據(jù)有用,在事務(wù)操作過程中,不可以在該存儲位置上寫入新的數(shù)據(jù);數(shù)據(jù)無效 表示該存儲位置的數(shù)據(jù)無用或者該存儲位置不存在數(shù)據(jù),在事務(wù)操作過程中,可以在該 存儲位置上重新寫入數(shù)據(jù)。
存儲位置可以是存儲記錄,也可以是按照存儲器的扇區(qū)或者頁面等容量級別劃 分的空間。例如對于數(shù)據(jù)庫的記錄,記錄在存儲空間按照一定結(jié)構(gòu)存儲,記錄可以是 變長格式存儲也可以是定長格式存儲。
具體地,一個存儲位置可以是容量為一條記錄的空間或者多條記錄的集合,也 可以是按照存儲容量劃分的一定的存儲單元,例如扇區(qū)、頁面等。存儲位置同樣可以存 儲其他數(shù)據(jù)結(jié)構(gòu),例如數(shù)據(jù)庫索引結(jié)構(gòu)、文件系統(tǒng)的數(shù)據(jù)塊等。
每個存儲位置都對應(yīng)一個狀態(tài)標(biāo)識,用于標(biāo)識該存儲位置的數(shù)據(jù)的狀態(tài)信息。 一個存儲位置的狀態(tài)標(biāo)識包括數(shù)據(jù)有效、數(shù)據(jù)無效、數(shù)據(jù)正在寫入、數(shù)據(jù)正在刪除。 其中,數(shù)據(jù)有效、數(shù)據(jù)無效為正常狀態(tài),數(shù)據(jù)正在寫入、數(shù)據(jù)正在刪除為臨時狀態(tài)。狀 態(tài)標(biāo)識可以采用至少2個二進制位來表示這四種狀態(tài)標(biāo)識,當(dāng)然也可以采用其他表示方 法,此處不做限制。狀態(tài)標(biāo)識與存儲位置的關(guān)系是一一對應(yīng)的,存儲狀態(tài)標(biāo)識也需要額 外的存儲空間,但是占用的存儲空間很少。存儲狀態(tài)標(biāo)識可以采用集中式存儲,例如 可以將若干個存儲位置的狀態(tài)標(biāo)識都按順序依次布置在文件的頭部;也可以是分布式存 儲,例如將每一個狀態(tài)標(biāo)識放置在對應(yīng)的存儲位置的開始處。
S102、在數(shù)據(jù)存儲系統(tǒng)事務(wù)開始時,確定該事務(wù)操作對應(yīng)的數(shù)據(jù)的存儲位置, 并執(zhí)行事務(wù)操作,同時將該存儲位置對應(yīng)的狀態(tài)標(biāo)識從正常狀態(tài)修改為臨時狀態(tài);
事務(wù)操作包括寫入操作、刪除操作以及更新操作,其中,更新數(shù)據(jù)操作可以 拆分成新數(shù)據(jù)的寫入操作和舊數(shù)據(jù)的刪除操作,因此數(shù)據(jù)存儲系統(tǒng)的所有事務(wù)操作都可 以分為寫入操作、刪除操作。
其中,正常狀態(tài)包括數(shù)據(jù)有效、數(shù)據(jù)無效,臨時狀態(tài)包括數(shù)據(jù)正在寫入, 數(shù)據(jù)正在刪除。數(shù)據(jù)有效,表示該存儲位置的數(shù)據(jù)有用,在事務(wù)操作的過程中,不可以 在該存儲位置上寫入新的數(shù)據(jù);數(shù)據(jù)無效表示該存儲位置的數(shù)據(jù)無用或者該存儲位置不存在數(shù)據(jù),在事務(wù)操作過程中,可以在該存儲位置上重新寫入數(shù)據(jù)。
當(dāng)事務(wù)操作為寫入操作時,確定狀態(tài)標(biāo)識為數(shù)據(jù)無效的存儲位置為本次寫入操 作的存儲位置,并將數(shù)據(jù)寫入該存儲位置,同時將該存儲位置的狀態(tài)標(biāo)識從數(shù)據(jù)無效狀 態(tài)修改為數(shù)據(jù)正在寫入狀態(tài);
當(dāng)事務(wù)操作為刪除操作時,確定需要刪除數(shù)據(jù)的存儲位置,并對該存儲位置的 數(shù)據(jù)不進行處理,將該存儲位置的狀態(tài)標(biāo)識從數(shù)據(jù)有效修改為數(shù)據(jù)正在刪除;
當(dāng)事務(wù)操作為更新操作時,同時執(zhí)行上述寫入操作和刪除操作,對舊數(shù)據(jù)進行 刪除操作,對新數(shù)據(jù)進行寫入操作,同時將更新操作對應(yīng)的存儲位置的狀態(tài)標(biāo)識修改 (更新操作對應(yīng)的存儲位置包括寫入操作對應(yīng)的新數(shù)據(jù)的存儲位置和刪除操作對應(yīng)的 舊數(shù)據(jù)的存儲位置)。
S103、在該事務(wù)結(jié)束時,將該存儲位置對應(yīng)的狀態(tài)標(biāo)識由臨時狀態(tài)修改為正常 狀態(tài)。
事務(wù)結(jié)束方式包括事務(wù)以提交方式結(jié)束、事務(wù)以回退方式結(jié)束。
當(dāng)事務(wù)以提交方式結(jié)束時,若存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在寫入,則將該狀 態(tài)標(biāo)識修改為數(shù)據(jù)有效;若存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在刪除,則將該狀態(tài)標(biāo)識修改 為數(shù)據(jù)無效;
具體地若事務(wù)操作為寫入操作,并且當(dāng)事務(wù)以提交方式結(jié)束時,將存儲位置 對應(yīng)的狀態(tài)標(biāo)識從數(shù)據(jù)正在寫入修改為數(shù)據(jù)有效;若事務(wù)操作為刪除操作,并且當(dāng)事務(wù) 以提交方式結(jié)束時,將存儲位置對應(yīng)的狀態(tài)標(biāo)識從數(shù)據(jù)正在刪除修改為數(shù)據(jù)無效;若事 務(wù)操作為更新操作,并且當(dāng)事務(wù)以提交方式結(jié)束時,則將寫入操作的存儲位置對應(yīng)的狀 態(tài)標(biāo)識修改為數(shù)據(jù)有效,將刪除操作的存儲位置對應(yīng)的狀態(tài)標(biāo)識修改為數(shù)據(jù)無效。當(dāng) 然,存儲位置的狀態(tài)標(biāo)識為其他值的標(biāo)識在本次事務(wù)中沒有對其進行操作,則不修改。
當(dāng)事務(wù)以回退方式結(jié)束時,若存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在寫入,則將該狀 態(tài)標(biāo)識修改為數(shù)據(jù)無效;若存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在刪除,則將該狀態(tài)標(biāo)識修改 為數(shù)據(jù)有效;
具體地若事務(wù)操作為寫入操作,并且當(dāng)事務(wù)以回退方式結(jié)束時,將存儲位置 對應(yīng)的狀態(tài)標(biāo)識從數(shù)據(jù)正在寫入修改為數(shù)據(jù)無效;若事務(wù)操作為刪除操作,并且當(dāng)事務(wù) 以回退方式結(jié)束時,將存儲位置對應(yīng)的狀態(tài)標(biāo)識從數(shù)據(jù)正在刪除修改為數(shù)據(jù)有效;若事 務(wù)操作為更新操作,則將寫入操作的存儲位置對應(yīng)的狀態(tài)標(biāo)識修改為數(shù)據(jù)無效,將刪除 操作的存儲位置對應(yīng)的狀態(tài)標(biāo)識修改為數(shù)據(jù)有效。當(dāng)然,存儲位置的狀態(tài)標(biāo)識為其他值 的標(biāo)識在本次事務(wù)中沒有對其進行操作,則不修改。
當(dāng)事務(wù)異常終止(例如發(fā)生了掉電或者其他故障)時,需要進行回退處理,若存 儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在寫入,則修改為數(shù)據(jù)無效;若存儲位置對應(yīng)的狀態(tài)標(biāo)識為 數(shù)據(jù)正在刪除,則修改為數(shù)據(jù)有效。當(dāng)事務(wù)回退處理完畢后,需要對存儲空間內(nèi)的數(shù)據(jù) 進行一致性處理,都修改為正常狀態(tài)即數(shù)據(jù)有效或者數(shù)據(jù)無效。
如圖2所示,為本發(fā)明實施例中存儲位置的狀態(tài)標(biāo)識轉(zhuǎn)換圖。在上述處理過程 中,存儲位置的狀態(tài)標(biāo)識包括數(shù)據(jù)有效、數(shù)據(jù)無效、數(shù)據(jù)正在寫入、數(shù)據(jù)正在刪除四 種狀態(tài),事務(wù)操作的過程中,將狀態(tài)標(biāo)識置為臨時狀態(tài)(即數(shù)據(jù)正在寫入、數(shù)據(jù)正在刪 除)。事務(wù)操作結(jié)束后,將狀態(tài)標(biāo)識置為正常狀態(tài)。在上述處理過程中,需要操作的數(shù)據(jù)只寫入一次,沒有額外的數(shù)據(jù)備份復(fù)制和數(shù)據(jù)恢復(fù)復(fù)制。僅需要將操作對應(yīng)的存儲位置 的狀態(tài)標(biāo)識寫入存儲器,并且,由于狀態(tài)標(biāo)識本身的數(shù)據(jù)量很小,因此,不會加重存儲 操作的負擔(dān)。并且,當(dāng)一個數(shù)據(jù)被執(zhí)行刪除操作時,并不需要在存儲空間上抹去數(shù)據(jù), 僅需要更改狀態(tài)標(biāo)識即可,對存儲空間的讀寫操作量大為減少,提高事務(wù)處理效率。
并且本發(fā)明沒有將數(shù)據(jù)存儲系統(tǒng)空間進行任何分割,而是利用存儲位置和狀態(tài) 標(biāo)識的映射關(guān)系區(qū)分不同存儲位置的狀態(tài)和用途。因此,系統(tǒng)的所有空間都可以共享使 用,從而避免了強制的空間劃分導(dǎo)致某一種功能空間擠占其他空間的狀況。并且,當(dāng)存 儲位置的狀態(tài)標(biāo)識被設(shè)置為數(shù)據(jù)無效時,該位置可在以后的操作中復(fù)用,不會造成空間 浪費,提高存儲空間的利用率。
下面通過兩個例子詳細介紹一下上述方法中的具體實現(xiàn)細節(jié)。
第一個例子,如圖3所示,是一種基于文件系統(tǒng)的數(shù)據(jù)庫中利用本方案實現(xiàn)事 務(wù)功能的文件數(shù)據(jù)結(jié)構(gòu)。設(shè)定該數(shù)據(jù)庫的記錄為定長格式,并存儲于文件中,一個文 件就是一個數(shù)據(jù)表。文件中的每一行是該表的一條記錄,則存儲位置對應(yīng)該表的一條記 錄。該行的第一個字節(jié)是狀態(tài)標(biāo)識(狀態(tài)標(biāo)識采用分布式存儲),標(biāo)志該行記錄的各種狀 態(tài),可以將狀態(tài)標(biāo)識的字節(jié)內(nèi)容定義為
OxFF:記錄有效;
0x00 記錄無效;
0x01 記錄正在寫入;
0x10 記錄正在刪除;
根據(jù)如上定義,則圖3中的第N條記錄到第N+4條記錄位置對應(yīng)的狀態(tài)標(biāo)識的 含義依次是
不同)
第N條記錄位置記錄有效(記錄位置內(nèi)的數(shù)據(jù)有效); 第N+1條記錄位置記錄無效(記錄位置內(nèi)的數(shù)據(jù)無效) 第N+2條記錄位置記錄正在寫入; 第N+3條記錄位置記錄正在刪除; 第N+4條記錄位置記錄有效,該記錄是不同于N的另- 條記錄(兩者的數(shù)據(jù)根據(jù)前述方案,該數(shù)據(jù)表目前正在進行事務(wù)操作,部分存儲位置處于臨時狀態(tài),需要在后續(xù)的操作中改變成正常狀態(tài)。
若該數(shù)據(jù)庫隨后進行了事務(wù)提交操作結(jié)束,則該數(shù)據(jù)庫表變更為圖4的狀態(tài)
第N條記錄位置記錄有效(記錄位置內(nèi)的數(shù)據(jù)有效);
第N+1條記錄位置記錄無效(記錄位置內(nèi)的數(shù)據(jù)無效);
第N+2條記錄位置記錄有效;
第N+3條記錄位置記錄無效;
第N+4條記錄位置記錄有效。
若該數(shù)據(jù)庫隨后進行了事務(wù)回退操作結(jié)束,則該數(shù)據(jù)庫表變更為圖5的狀態(tài)
第N條記錄位置記錄有效(記錄位置內(nèi)的數(shù)據(jù)有效);
第N+1條記錄位置記錄無效(記錄位置內(nèi)的數(shù)據(jù)無效);
第N+2條記錄位置記錄無效;
第N+3條記錄位置記錄有效;
第N+4條記錄位置記錄有效。
第二個例子,如圖6所示,是一種基于磁盤接口的具有事務(wù)功能的文件系統(tǒng)使 用本發(fā)明的方法實現(xiàn)事務(wù)的數(shù)據(jù)存儲結(jié)構(gòu)。磁盤系統(tǒng)的讀寫單位是扇區(qū),設(shè)定該系統(tǒng)扇 區(qū)的大小是2KB,是最小的讀寫單元。文件系統(tǒng)的所有數(shù)據(jù)都記錄在扇區(qū)中,則存儲位 置對應(yīng)一個扇區(qū)。存儲狀態(tài)標(biāo)識采用集中式存儲,設(shè)定第N號扇區(qū)到第N+3號扇區(qū)的存 儲狀態(tài)標(biāo)識存儲在第M號扇區(qū)內(nèi),并且在第M號扇區(qū)中按順序依次存儲第N號扇區(qū)到第 N+3號扇區(qū)的存儲狀態(tài)標(biāo)識。每連續(xù)2個二進制位標(biāo)志一個扇區(qū)對應(yīng)的狀態(tài),可以將狀 態(tài)標(biāo)識的定義如下
11:數(shù)據(jù)有效;
00 數(shù)據(jù)無效;
01 數(shù)據(jù)正在寫入;
10 數(shù)據(jù)正在刪除。
根據(jù)如上定義,則圖6中的第N號扇區(qū)到第N+3號扇區(qū)內(nèi)存儲的數(shù)據(jù)含義依次 是
第N號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)有效;
第N+1號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)正在刪除;
第N+2號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)正在寫入;
第N+3號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)無效。
圖6中M號扇區(qū)中采用16進制E4 (11100100)代表第N號扇區(qū)到第N+3號扇區(qū) 的狀態(tài)標(biāo)識,每連續(xù)2個二進制位標(biāo)志一個扇區(qū)對應(yīng)的狀態(tài);
該文件系統(tǒng)目前正處于事務(wù)操作過程中,部分扇區(qū)處于臨時狀態(tài),需要在后續(xù) 操作中改變成正常狀態(tài)。
若該文件系統(tǒng)事務(wù)隨后進行了事務(wù)提交操作結(jié)束,則將變更為圖7中的狀態(tài) M號扇區(qū)中的狀態(tài)變?yōu)镃C (11001100),第N號扇區(qū)到第N+3號扇區(qū)的狀態(tài)標(biāo)識依次為 11、 00、 11、 00,即
第N號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)有效;
第N+1號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)無效;
第N+2號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)有效;
第N+3號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)無效。
若該文件系統(tǒng)隨后進行了事務(wù)回退操作結(jié)束,則將變更為圖8中的狀態(tài)M號 扇區(qū)中的狀態(tài)變?yōu)镕O (11110000),第N號扇區(qū)到第N+3號扇區(qū)的狀態(tài)標(biāo)識依次為11、 11、 00、 00,即
第N號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)有效;
第N+1號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)有效;
第N+2號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)無效;
第N+3號扇區(qū)該扇區(qū)內(nèi)數(shù)據(jù)無效。
本發(fā)明實施例還提供一種實現(xiàn)數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的裝置,如圖9所示,包 括
操作模塊91,用于在數(shù)據(jù)存儲系統(tǒng)事務(wù)開始時,確定該事務(wù)操作對應(yīng)的數(shù)據(jù)的 存儲位置,并執(zhí)行事務(wù)操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識從正常狀態(tài)修改為臨 時狀態(tài);
處理模塊92,用于在所述事務(wù)結(jié)束時,將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識由所述 臨時狀態(tài)修改為正常狀態(tài),其中,所述存儲位置位于存儲空間中并用于存儲數(shù)據(jù),所述 狀態(tài)標(biāo)識用于標(biāo)識該存儲位置的數(shù)據(jù)的狀態(tài)信息。
其中,所述事務(wù)操作包括寫入操作、刪除操作;以及
所述正常狀態(tài)包括數(shù)據(jù)有效、數(shù)據(jù)無效;
所述臨時狀態(tài)包括數(shù)據(jù)正在寫入、數(shù)據(jù)正在刪除。
較佳地,操作模塊91具體用于當(dāng)事務(wù)操作為寫入操作時,確定需要寫入的數(shù) 據(jù)對應(yīng)的存儲位置為狀態(tài)標(biāo)識為數(shù)據(jù)無效的存儲位置,將需要寫入的數(shù)據(jù)寫入該存儲位 置,并將該存儲位置對應(yīng)的狀態(tài)標(biāo)識從數(shù)據(jù)無效修改為數(shù)據(jù)正在寫入。
較佳地,操作模塊91具體用于當(dāng)事務(wù)操作為刪除操作時,確定需要刪除的數(shù)據(jù) 對應(yīng)的存儲位置;對該存儲位置的數(shù)據(jù)不進行處理,并將該存儲位置的狀態(tài)標(biāo)識從數(shù)據(jù) 有效修改為數(shù)據(jù)正在刪除。
本發(fā)明實施例提供的所述實現(xiàn)數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的裝置,具體的實現(xiàn)方式詳 見方法的實施例,此處不再贅述。
本發(fā)明實施例提供的實現(xiàn)存儲系統(tǒng)事務(wù)的方法和裝置,通過將存儲空間劃分為 兩種結(jié)構(gòu),存儲位置以及存儲位置對應(yīng)的狀態(tài)標(biāo)識,通過狀態(tài)標(biāo)識能有效標(biāo)注該存儲位 置的數(shù)據(jù)的當(dāng)前狀態(tài)。采用本發(fā)明實施例的方法,在執(zhí)行事務(wù)操作時,將需要較少的存 儲器操作,同時備份數(shù)據(jù)的數(shù)據(jù)量也不受到分區(qū)劃分的限制,提高了空間利用率成和系 統(tǒng)的操作效率。采用本發(fā)明實施例的方法,能夠?qū)F(xiàn)有數(shù)據(jù)存儲系統(tǒng)中的數(shù)據(jù)區(qū)和備份 區(qū)融合,并利用狀態(tài)標(biāo)識管理存儲位置的數(shù)據(jù),能夠?qū)崿F(xiàn)數(shù)據(jù)存儲系統(tǒng)的事務(wù)功能。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機 程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件 方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代 碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施 的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流 程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的 每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@ 些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè) 備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行 的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中 指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括 指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方 框或多個方框中指定的功能。10
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在 計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算 機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方 框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng) 造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為 包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的 精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的 范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)存儲系統(tǒng)事務(wù)的實現(xiàn)方法,其特征在于,包括在數(shù)據(jù)存儲系統(tǒng)事務(wù)開始時,確定該事務(wù)操作對應(yīng)的數(shù)據(jù)的存儲位置,并執(zhí)行事務(wù) 操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識從正常狀態(tài)修改為臨時狀態(tài);在所述事務(wù)結(jié)束時,將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識由所述臨時狀態(tài)修改為正常狀 態(tài),其中,所述存儲位置位于存儲空間中并用于存儲數(shù)據(jù),所述狀態(tài)標(biāo)識用于標(biāo)識該存 儲位置的數(shù)據(jù)的狀態(tài)信息。
2.如權(quán)利要求1所述的方法,其特征在于,所述事務(wù)操作包括寫入操作、刪除操作;所述正常狀態(tài)包括數(shù)據(jù)有效、數(shù)據(jù)無效;所述臨時狀態(tài)包括數(shù)據(jù)正在寫入、數(shù)據(jù)正在刪除。
3.如權(quán)利要求2所述的方法,其特征在于,當(dāng)事務(wù)操作為寫入操作時,所述確定該事 務(wù)操作對應(yīng)的數(shù)據(jù)的存儲位置,并執(zhí)行事務(wù)操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識 從正常狀態(tài)修改為臨時狀態(tài),具體為當(dāng)事務(wù)操作為寫入操作時,確定需要寫入的數(shù)據(jù)對應(yīng)的存儲位置為狀態(tài)標(biāo)識為數(shù)據(jù) 無效的存儲位置;將需要寫入的數(shù)據(jù)寫入該存儲位置,并將該存儲位置對應(yīng)的狀態(tài)標(biāo)識從數(shù)據(jù)無效修 改為數(shù)據(jù)正在寫入。
4.如權(quán)利要求2所述的方法,其特征在于,當(dāng)事務(wù)操作為刪除操作時,所述確定該事 務(wù)操作對應(yīng)的數(shù)據(jù)的存儲位置,并執(zhí)行事務(wù)操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識 從正常狀態(tài)修改為臨時狀態(tài),具體為當(dāng)事務(wù)操作為刪除操作時,確定需要刪除的數(shù)據(jù)對應(yīng)的存儲位置;對該存儲位置的數(shù)據(jù)不進行處理,并將該存儲位置的狀態(tài)標(biāo)識從數(shù)據(jù)有效修改為數(shù) 據(jù)正在刪除。
5.如權(quán)利要求2所述的方法,其特征在于,所述事務(wù)操作還包括更新操作,當(dāng)事 務(wù)操作為更新操作時,將事務(wù)操作拆分成新數(shù)據(jù)的寫入操作和舊數(shù)據(jù)的刪除操作。
6.如權(quán)利要求2至5中任一權(quán)利要求所述的方法,其特征在于,所述事務(wù)結(jié)束包括 事務(wù)提交結(jié)束和事務(wù)回退結(jié)束。
7.如權(quán)利要求6所述的方法,其特征在于,所述在事務(wù)結(jié)束時,將所述存儲位置對應(yīng) 的狀態(tài)標(biāo)識由所述臨時狀態(tài)修改為正常狀態(tài),具體包括當(dāng)事務(wù)提交結(jié)束時,若所述存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在寫入,則修改為數(shù)據(jù)有 效,若所述存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在刪除,則修改為數(shù)據(jù)無效;當(dāng)事務(wù)回退結(jié)束時,若所述存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在寫入,則修改為數(shù)據(jù)無 效,若所述存儲位置的狀態(tài)標(biāo)識為數(shù)據(jù)正在刪除,則修改為數(shù)據(jù)有效。
8.如權(quán)利要求1至5任一權(quán)利要求所述的方法,其特征在于,所述狀態(tài)標(biāo)識采用至少 兩位二進制位表示。
9.如權(quán)利要求1至5任一權(quán)利要求所述的方法,其特征在于,所述狀態(tài)標(biāo)識采用集中 式存儲或者分布式存儲。
10.—種數(shù)據(jù)庫存儲系統(tǒng)事務(wù)的實現(xiàn)裝置,其特征在于,包括操作模塊,用于在數(shù)據(jù)存儲系統(tǒng)事務(wù)開始時,確定該事務(wù)操作對應(yīng)的數(shù)據(jù)的存儲位置,并執(zhí)行事務(wù)操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識從正常狀態(tài)修改為臨時狀 態(tài);處理模塊,用于在所述事務(wù)結(jié)束時,將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識由所述臨時狀 態(tài)修改為正常狀態(tài),其中,所述存儲位置位于存儲空間中并用于存儲數(shù)據(jù),所述狀態(tài)標(biāo) 識用于標(biāo)識該存儲位置的數(shù)據(jù)的狀態(tài)信息。
11.如權(quán)利要求10所述的裝置,其特征在于,所述事務(wù)操作包括寫入操作、刪除 操作;以及所述正常狀態(tài)包括數(shù)據(jù)有效、數(shù)據(jù)無效;所述臨時狀態(tài)包括數(shù)據(jù)正在寫入、數(shù)據(jù)正在刪除。
12.如權(quán)利要求11所述的裝置,其特征在于,所述操作模塊具體用于當(dāng)事務(wù)操作為寫 入操作時,確定需要寫入的數(shù)據(jù)對應(yīng)的存儲位置為狀態(tài)標(biāo)識為數(shù)據(jù)無效的存儲位置,將 需要寫入的數(shù)據(jù)寫入該存儲位置,并將該存儲位置對應(yīng)的狀態(tài)標(biāo)識從數(shù)據(jù)無效修改為數(shù) 據(jù)正在寫入。
13.如權(quán)利要求11所述的裝置,其特征在于,所述操作模塊具體用于當(dāng)事務(wù)操作為刪 除操作時,確定需要刪除的數(shù)據(jù)對應(yīng)的存儲位置;對該存儲位置的數(shù)據(jù)不進行處理,并 將該存儲位置的狀態(tài)標(biāo)識從數(shù)據(jù)有效修改為數(shù)據(jù)正在刪除。
全文摘要
本發(fā)明涉及數(shù)據(jù)管理領(lǐng)域,公開了一種數(shù)據(jù)存儲系統(tǒng)事務(wù)的實現(xiàn)方法和裝置,能夠減少存儲器的讀寫操作,提高存儲器的空間利用率,提高事務(wù)處理效率。本發(fā)明的方法包括在數(shù)據(jù)存儲系統(tǒng)事務(wù)開始時,確定該事務(wù)操作對應(yīng)的數(shù)據(jù)的存儲位置,并執(zhí)行事務(wù)操作,同時將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識從正常狀態(tài)修改為臨時狀態(tài);在所述事務(wù)結(jié)束時,將所述存儲位置對應(yīng)的狀態(tài)標(biāo)識由所述臨時狀態(tài)修改為正常狀態(tài),其中,所述存儲位置位于存儲空間中并用于存儲數(shù)據(jù),所述狀態(tài)標(biāo)識用于標(biāo)識該存儲位置的數(shù)據(jù)的狀態(tài)信息。
文檔編號G06F17/30GK102024052SQ20101059457
公開日2011年4月20日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者郭雁斌 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司