本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體是一種聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法。
背景技術(shù):
經(jīng)典的oltp(聯(lián)機(jī)事務(wù)處理)系統(tǒng)通常會(huì)根據(jù)需要存儲(chǔ)的數(shù)據(jù),設(shè)計(jì)符合范式的關(guān)系模型,并使用rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))進(jìn)行數(shù)據(jù)管理。oltp(聯(lián)機(jī)事務(wù)處理)的一個(gè)基本要求是事務(wù)的acid屬性,即事務(wù)的原子性、一致性、隔離性和持久性,而rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))的事務(wù)機(jī)制保障了這一點(diǎn)。
隨著計(jì)算機(jī)技術(shù)的進(jìn)步和普及,單一的結(jié)構(gòu)化數(shù)據(jù)已經(jīng)不能滿足部分管理系統(tǒng)的需求,非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)統(tǒng)一被管理的需求越來(lái)越普遍,例如政府機(jī)構(gòu)面向企業(yè)的申報(bào)系統(tǒng),一個(gè)申報(bào)事務(wù)數(shù)據(jù)既包含了結(jié)構(gòu)化的表單數(shù)據(jù),也可能包含word文檔、pdf文檔等非結(jié)構(gòu)化數(shù)據(jù)。目前針對(duì)這種需求,現(xiàn)有解決方案有以下四種:第一種,使用rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))中的clob、blob等大文本、大二進(jìn)制字段來(lái)存儲(chǔ)非結(jié)構(gòu)化的文檔數(shù)據(jù),對(duì)clob、blob的讀寫(xiě)操作不包含進(jìn)數(shù)據(jù)庫(kù)事務(wù)。這種方法的優(yōu)點(diǎn)是設(shè)計(jì)簡(jiǎn)單、數(shù)據(jù)庫(kù)事務(wù)持續(xù)時(shí)間短,高并發(fā)環(huán)境下rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))響應(yīng)速度不會(huì)顯著下降;缺點(diǎn)是不能保障事務(wù)的acid屬性,對(duì)一些數(shù)據(jù)質(zhì)量要求嚴(yán)苛的系統(tǒng)來(lái)說(shuō),是不可接受的;第二種,使用rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))中的clob、blob等大文本、大二進(jìn)制字段來(lái)存儲(chǔ)非結(jié)構(gòu)化的文檔數(shù)據(jù),對(duì)clob、blob的讀寫(xiě)操作包含進(jìn)數(shù)據(jù)庫(kù)事務(wù)。這種方法的優(yōu)點(diǎn)是設(shè)計(jì)簡(jiǎn)單,能保障事務(wù)的acid屬性;缺點(diǎn)是當(dāng)事務(wù)中包含大量(數(shù)量和大小)的文檔數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)事務(wù)執(zhí)行時(shí)間將大大增長(zhǎng),高并發(fā)環(huán)境下rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))響應(yīng)速度將成指數(shù)下降;數(shù)據(jù)庫(kù)日志和數(shù)據(jù)將急劇膨脹,導(dǎo)致數(shù)據(jù)庫(kù)管理的難度和rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))對(duì)硬件平臺(tái)的要求顯著增高;第三種,使用文件系統(tǒng)來(lái)存儲(chǔ)非結(jié)構(gòu)化文檔數(shù)據(jù),使用rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))來(lái)存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),建立結(jié)構(gòu)化數(shù)據(jù)和文件的關(guān)聯(lián),對(duì)文件的讀寫(xiě)操作不包含進(jìn)數(shù)據(jù)庫(kù)事務(wù)。這種方法的優(yōu)點(diǎn)是簡(jiǎn)單、高并發(fā)環(huán)境下rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))響應(yīng)速度不會(huì)下降;缺點(diǎn)是不能保障事務(wù)的acid屬性,對(duì)一些數(shù)據(jù)質(zhì)量要求嚴(yán)苛的系統(tǒng)來(lái)說(shuō),是不可接受的;第四種,使用文件系統(tǒng)來(lái)存儲(chǔ)非結(jié)構(gòu)化文檔數(shù)據(jù),使用rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))來(lái)存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),建立結(jié)構(gòu)化數(shù)據(jù)和文件的關(guān)聯(lián),利用兩階段提交協(xié)議保障事務(wù)的acid屬性。這種方法的優(yōu)點(diǎn)是能保障事務(wù)的acid屬性;缺點(diǎn)是當(dāng)事務(wù)中包含大量(數(shù)量和大?。┑奈臋n數(shù)據(jù)時(shí),兩階段提交事務(wù)執(zhí)行時(shí)間將大大增長(zhǎng),高并發(fā)環(huán)境下rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))響應(yīng)速度將成指數(shù)下降;要實(shí)現(xiàn)兩階段提交,需要使用特定的文件系統(tǒng)或文件中間件、事務(wù)協(xié)調(diào)服務(wù)等,并使用兩階段提交api進(jìn)行編程,可能導(dǎo)致項(xiàng)目投資增加,程序員學(xué)習(xí)和編程周期增長(zhǎng)。這些都為人們的使用帶來(lái)了不便。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法,以解決上述背景技術(shù)中提出的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法,具體步驟如下:
步驟一,在rbbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))中為結(jié)構(gòu)化的事務(wù)數(shù)據(jù)建立表,以及映射表和邏輯刪除表;
步驟二,編寫(xiě)新增、刪除和更新事務(wù)數(shù)據(jù)的程序代碼;
步驟三,編寫(xiě)用于事務(wù)數(shù)據(jù)(包含文件部分)讀取和訪問(wèn)的程序代碼;
步驟四,編寫(xiě)后臺(tái)服務(wù)程序代碼,定時(shí)為標(biāo)記為邏輯刪除的文件執(zhí)行物理刪除。
作為本發(fā)明進(jìn)一步的方案:步驟一中,在rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))中建立映射表管理結(jié)構(gòu)化事務(wù)數(shù)據(jù)和文件的對(duì)應(yīng)關(guān)系。
作為本發(fā)明進(jìn)一步的方案:步驟一中,在rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))中建立邏輯刪除表來(lái)記錄已經(jīng)被邏輯刪除文件的文件名和邏輯刪除的時(shí)間。
作為本發(fā)明進(jìn)一步的方案:步驟二中,新增事務(wù)數(shù)據(jù)的操作順序是開(kāi)始數(shù)據(jù)庫(kù)事務(wù),將要新增文件的文件名添加到邏輯刪除表進(jìn)行邏輯刪除,提交數(shù)據(jù)庫(kù)事務(wù),新增文件,開(kāi)始數(shù)據(jù)庫(kù)事務(wù),新增其他結(jié)構(gòu)化數(shù)據(jù),刪除步驟一中插入的所有邏輯刪除記錄,提交數(shù)據(jù)庫(kù)事務(wù)。
作為本發(fā)明進(jìn)一步的方案:步驟二中刪除事務(wù)數(shù)據(jù)操作并不物理刪除事務(wù)對(duì)應(yīng)的文件,而是將事務(wù)對(duì)應(yīng)文件的文件名加入邏輯刪除表。
作為本發(fā)明進(jìn)一步的方案:步驟二中更新事務(wù)數(shù)據(jù)操作如果涉及文件更新,并不是在原文件上修改,而是將原文件邏輯刪除,使用新文件/文件名保存更新后的數(shù)據(jù),并使映射表中相應(yīng)的記錄指向新文件。
作為本發(fā)明進(jìn)一步的方案:步驟二中,更新事務(wù)數(shù)據(jù)的操作順序是開(kāi)始數(shù)據(jù)庫(kù)事務(wù),將要新增文件的文件名添加到邏輯刪除表進(jìn)行邏輯刪除,提交數(shù)據(jù)庫(kù)事務(wù),新增文件,開(kāi)始數(shù)據(jù)庫(kù)事務(wù),將要新增文件的文件名添加到邏輯刪除表進(jìn)行邏輯刪除,更新其他結(jié)構(gòu)化數(shù)據(jù),刪除步驟一中插入的所有邏輯刪除記錄,提交數(shù)據(jù)庫(kù)事務(wù)。
作為本發(fā)明進(jìn)一步的方案:步驟三中,在對(duì)文件的讀取和訪問(wèn)前,應(yīng)該按文件名查找邏輯刪除表或映射表,確保文件沒(méi)有被邏輯刪除;為保障事務(wù)數(shù)據(jù)的隔離特性,文件的讀取訪問(wèn)操作的代碼應(yīng)該在讀取對(duì)應(yīng)數(shù)據(jù)庫(kù)事務(wù)數(shù)據(jù)的數(shù)據(jù)庫(kù)事務(wù)執(zhí)行序列的中間被執(zhí)行。
作為本發(fā)明進(jìn)一步的方案:步驟四中,后臺(tái)服務(wù)程序并非對(duì)邏輯刪除表中記錄的所有文件都執(zhí)行物理刪除,而是只對(duì)特定時(shí)間前被邏輯刪除的文件執(zhí)行物理刪除。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明的方法使得oltp(聯(lián)機(jī)事務(wù)處理)系統(tǒng)可以在保持事務(wù)acid特性,保持rdbms(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))在高并發(fā)環(huán)境下的高響應(yīng)能力的前提下,聯(lián)合使用文件系統(tǒng)和rdbms(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))存儲(chǔ)事務(wù)數(shù)據(jù);本方法無(wú)額外的軟硬件要求,可充分利用現(xiàn)有軟硬件資產(chǎn)和技術(shù)技能。
附圖說(shuō)明
圖1為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法的流程示意圖。
圖2為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的關(guān)系數(shù)據(jù)庫(kù)表設(shè)計(jì)示意圖。
圖3為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的兩份網(wǎng)上職位申請(qǐng)?jiān)紶顟B(tài)的數(shù)據(jù)圖。
圖4為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在無(wú)事務(wù)數(shù)據(jù)狀態(tài)的示意圖。
圖5為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)新增成功后的狀態(tài)示意圖。
圖6為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)新增失敗后的其中一種狀態(tài)示意圖。
圖7為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)新增失敗后的其中一種狀態(tài)示意圖。
圖8為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)新增失敗后的其中一種狀態(tài)示意圖。
圖9為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)更新成功后的狀態(tài)示意圖。
圖10為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)更新失敗后的其中一種狀態(tài)示意圖。
圖11為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)更新失敗后的其中一種狀態(tài)示意圖。
圖12為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中實(shí)施例的數(shù)據(jù)存儲(chǔ)在事務(wù)數(shù)據(jù)刪除后的狀態(tài)示意圖。
圖13為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中步驟二中新增事務(wù)數(shù)據(jù)的程序流程圖。
圖14為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中步驟二中更新事務(wù)數(shù)據(jù)的程序流程圖。
圖15為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中步驟二中刪除事務(wù)數(shù)據(jù)的程序流程圖。
圖16為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中步驟三中讀取已知事務(wù)標(biāo)志的事務(wù)數(shù)據(jù)的程序流程圖。
圖17為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中步驟三中讀取已知文件名的事務(wù)數(shù)據(jù)的程序流程圖。
圖18為聯(lián)合使用文件系統(tǒng)和rdbms存儲(chǔ)事務(wù)數(shù)據(jù)的方法中步驟四中服務(wù)程序執(zhí)行物理刪除的程序流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施方式對(duì)本專利的技術(shù)方案作進(jìn)一步詳細(xì)地說(shuō)明。
實(shí)施例
結(jié)合一個(gè)虛構(gòu)的應(yīng)用系統(tǒng)《網(wǎng)上職位申請(qǐng)系統(tǒng)》,來(lái)說(shuō)明本發(fā)明的具體實(shí)施方式和方法,以及獲得的效果。該虛構(gòu)的應(yīng)用系統(tǒng)《網(wǎng)上職位申請(qǐng)系統(tǒng)》:某大公司需要在多個(gè)城市招聘大量員工,于是在線上發(fā)布《網(wǎng)上職位申請(qǐng)系統(tǒng)》,申請(qǐng)者可以通過(guò)系統(tǒng)在線申請(qǐng)職位,所需提供的數(shù)據(jù)類型如圖3所示。申請(qǐng)者還可以使用修改申請(qǐng)、取消/刪除申請(qǐng)等操作。這個(gè)虛擬應(yīng)用系統(tǒng)將使用本發(fā)明的技術(shù)方案,將身份證圖片、簡(jiǎn)歷文檔等非結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)在文件系統(tǒng);將其他結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。
該系統(tǒng)的使用方法如下:步驟一,使用傳統(tǒng)的關(guān)系模型,為結(jié)構(gòu)化的事務(wù)數(shù)據(jù)建立表,每份事務(wù)數(shù)據(jù)有一個(gè)唯一標(biāo)志id,建立映射表用以建立結(jié)構(gòu)化事務(wù)數(shù)據(jù)和非結(jié)構(gòu)化事務(wù)數(shù)據(jù)(文件)的聯(lián)系,通過(guò)查找映射表,已知事務(wù)唯一標(biāo)志id可以找到對(duì)應(yīng)的文件,且已知文件名可以找到事務(wù)唯一標(biāo)志id(這里的文件名是全局唯一的,如果在不同路徑存儲(chǔ)文件則需要包含路徑信息);建立邏輯刪除表用以邏輯刪除不需要的文件,當(dāng)某個(gè)文件的文件名被寫(xiě)入邏輯刪除表時(shí),則代表這個(gè)文件已經(jīng)被邏輯刪除,并且在之后的某個(gè)時(shí)間會(huì)被物理刪除,邏輯刪除時(shí)還需要記錄邏輯刪除時(shí)間;
步驟二,根據(jù)流程圖邏輯,我們可以推導(dǎo)出:新增事務(wù)數(shù)據(jù)無(wú)論那個(gè)節(jié)點(diǎn)出現(xiàn)意外失敗,事務(wù)數(shù)據(jù)都會(huì)保持新增前的狀態(tài)(排除已經(jīng)邏輯刪除的文件),因此能保證新增事務(wù)的原子性和一致性;流程中兩個(gè)數(shù)據(jù)庫(kù)事務(wù)中都不包含對(duì)文件數(shù)據(jù)的讀寫(xiě),因此能保證事務(wù)執(zhí)行時(shí)間短,提高數(shù)據(jù)庫(kù)的并發(fā)響應(yīng)性能,假如初始存儲(chǔ)狀態(tài)如圖4所示,現(xiàn)在將圖3所示的申請(qǐng)版本1.0數(shù)據(jù)新增進(jìn)系統(tǒng),如果新增操作成功,存儲(chǔ)狀態(tài)必然如圖5所示,如果新增操作失敗,存儲(chǔ)必然是圖4、圖6、圖7、圖8所示的其中一個(gè)狀態(tài)。
更新事務(wù)數(shù)據(jù)時(shí),如果部分文件內(nèi)容需要更新,這里采取的方法并不是在原文件上修改覆蓋,而是建立一個(gè)新文件,將新內(nèi)容寫(xiě)入新文件,后續(xù)操作再邏輯刪除原文件。根據(jù)流程圖邏輯,我們可以推導(dǎo)出:更新事務(wù)數(shù)據(jù)無(wú)論那個(gè)節(jié)點(diǎn)出現(xiàn)意外失敗,事務(wù)數(shù)據(jù)都會(huì)保持更新前的狀態(tài)(排除已經(jīng)邏輯刪除的文件),因此能保證更新事務(wù)的原子性和一致性;流程中兩個(gè)數(shù)據(jù)庫(kù)事務(wù)中都不包含對(duì)文件數(shù)據(jù)的讀寫(xiě),因此能保證事務(wù)執(zhí)行時(shí)間短,提高數(shù)據(jù)庫(kù)的并發(fā)響應(yīng)性能。這里結(jié)合虛構(gòu)的應(yīng)用系統(tǒng)《網(wǎng)上職位申請(qǐng)系統(tǒng)》和例圖,給出一個(gè)直觀的理解:假如初始存儲(chǔ)狀態(tài)如圖5所示,現(xiàn)在將圖3所示的申請(qǐng)版本2.0數(shù)據(jù)更新進(jìn)系統(tǒng),如果更新操作成功,存儲(chǔ)狀態(tài)必然如圖9所示,如果更新操作失敗,存儲(chǔ)必然是圖5、圖10、圖11所示的其中一個(gè)狀態(tài)。
刪除事務(wù)數(shù)據(jù)無(wú)論那個(gè)節(jié)點(diǎn)出現(xiàn)意外失敗,事務(wù)數(shù)據(jù)都會(huì)保持刪除前的狀態(tài),因此能保證刪除事務(wù)的原子性和一致性;流程中數(shù)據(jù)庫(kù)事務(wù)中不包含對(duì)文件數(shù)據(jù)的讀寫(xiě)刪除,因此能保證事務(wù)執(zhí)行時(shí)間短,提高數(shù)據(jù)庫(kù)的并發(fā)響應(yīng)性能。這里結(jié)合虛構(gòu)的應(yīng)用系統(tǒng)《網(wǎng)上職位申請(qǐng)系統(tǒng)》和例圖,給出一個(gè)直觀的理解:假如初始存儲(chǔ)狀態(tài)如圖5所示,現(xiàn)在刪除apply_id=1的申請(qǐng),如果刪除操作成功,存儲(chǔ)狀態(tài)必然如圖12所示,如果刪除操作失敗,存儲(chǔ)必然是圖5所示的狀態(tài)。
步驟三,已知文件名可以找到其對(duì)應(yīng)的唯一事務(wù)標(biāo)志id(如果存在的話),所以事務(wù)數(shù)據(jù)的讀取和訪問(wèn)的需求邏輯上可以歸結(jié)成兩類:第一類是已知事務(wù)的唯一標(biāo)識(shí),讀取關(guān)系數(shù)據(jù)庫(kù)和文件系統(tǒng)中的部分或全部該事務(wù)的數(shù)據(jù);第二類是已知文件名,只想讀取本文件數(shù)據(jù)。圖16是第一類讀取的程序流程圖;圖17是第二類讀取的程序流程圖。文件的讀取包含在數(shù)據(jù)庫(kù)的讀取事務(wù)當(dāng)中,且在成功讀取映射表中相應(yīng)的數(shù)據(jù)記錄之后,從邏輯上可以得出以下結(jié)論:讀取映射表數(shù)據(jù)失敗則讀取文件也失敗,讀取映射表成功之后,讀取文件也會(huì)成功。因?yàn)橛成浔碛涗浿赶虻奈募厝淮嬖冢鶕?jù)第二步驟的描述,文件的保存先于映射表記錄(即使在讀取映射表后,并發(fā)進(jìn)程已經(jīng)將此文件邏輯刪除,但物理刪除會(huì)發(fā)生在足夠長(zhǎng)的時(shí)間之后;讀取到內(nèi)存的映射表記錄數(shù)據(jù)和之后讀取的文件數(shù)據(jù)版本是一致的,因?yàn)楦鶕?jù)第二步驟的描述,文件一旦保存,就不會(huì)有內(nèi)容或名稱上的變化,而映射表記錄的版本一旦變化,就不會(huì)指向當(dāng)前這個(gè)文件。即可得到采用第三步驟定義的事務(wù)數(shù)據(jù)讀取流程,文件數(shù)據(jù)的讀取同映射表數(shù)據(jù)讀取具有相同的事務(wù)隔離性特征,而映射表數(shù)據(jù)讀取的事務(wù)隔離性由數(shù)據(jù)庫(kù)的事務(wù)機(jī)制保障和定義。
步驟四,服務(wù)程序用于定時(shí)運(yùn)行,執(zhí)行邏輯刪除文件的物理刪除以回收磁盤(pán)空間,流程圖如圖18所示。圖18中處理1所指的“滿足刪除時(shí)間要求的文件名”是因?yàn)槲锢韯h除只能在邏輯刪除執(zhí)行之后特定時(shí)間執(zhí)行。之所以這樣要求,是為了保障步驟三中,保障讀取操作能夠讀取到版本一致的映射表數(shù)據(jù)和文件數(shù)據(jù)。出于安全考慮,特定時(shí)間可以定義為單一讀取運(yùn)算操作的最大運(yùn)行時(shí)間,或定義一個(gè)足夠長(zhǎng)的時(shí)間,比如一天。圖18中處理2“刪除filenames[i]指向的文件”,當(dāng)刪除操作前發(fā)現(xiàn)文件不存在時(shí)也算處理成功。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。
此外,應(yīng)當(dāng)理解,雖然本說(shuō)明書(shū)按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說(shuō)明書(shū)的這種敘述方式僅僅是為清楚起見(jiàn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說(shuō)明書(shū)作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。