一種文件合并方法和裝置制造方法
【專利摘要】本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,特別是涉及一種文件合并方法和裝置,所述方法包括:當(dāng)有新文件生成時(shí),確定所述新文件的類別,根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略;根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件,如果滿足,選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。本發(fā)明實(shí)施例提供的方法可以對(duì)文件進(jìn)行分類處理,使得不同的文件有不同的合并處理策略,相對(duì)于現(xiàn)有技術(shù)提供的方法,使得文件的合并開(kāi)銷始終保持可控。
【專利說(shuō)明】一種文件合并方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,特別是涉及一種文件合并方法和裝置。
【背景技術(shù)】
[0002]增量數(shù)據(jù)庫(kù)(incremental database)是一種基于增量文件的數(shù)據(jù)庫(kù)技術(shù),其特點(diǎn)是以追加而非修改文件的方式持久化新數(shù)據(jù),從而可以避免對(duì)存儲(chǔ)介質(zhì)的隨機(jī)寫操作。而在增量數(shù)據(jù)庫(kù)中,對(duì)同一條記錄的更新和刪除操作,可能造成該記錄的數(shù)據(jù)分布在多個(gè)文件中。而隨著數(shù)據(jù)庫(kù)更新、刪除操作產(chǎn)生的文件數(shù)量越多,數(shù)據(jù)讀取時(shí)就需要搜索更多的數(shù)據(jù)文件,由此造成磁盤隨機(jī)讀性能下降。
[0003]為了解決隨機(jī)讀操作性能問(wèn)題,增量數(shù)據(jù)庫(kù)引入了文件合并機(jī)制,即將分散在多個(gè)文件中的記錄合并到一個(gè)文件中。文件合并過(guò)程包含讀取舊文件、計(jì)算和寫入新文件等步驟,因此本身也會(huì)造成CPU、內(nèi)存和磁盤讀寫的開(kāi)銷。參與合并的文件容量越大,造成的開(kāi)銷就越大。為了降低文件合并對(duì)增量數(shù)據(jù)庫(kù)性能的影響,必須設(shè)計(jì)合理的文件合并觸發(fā)和開(kāi)銷控制機(jī)制。
[0004]現(xiàn)有技術(shù)中存在的文件合并方法,主要采用基于實(shí)時(shí)數(shù)量的觸發(fā)機(jī)制。在這種方法中,當(dāng)文件數(shù)量達(dá)到一定閾值時(shí)觸發(fā)對(duì)這些文件的合并操作,生成一個(gè)新的文件替代舊文件。然而,現(xiàn)有技術(shù)提供的方法中,始終以將所有歷史數(shù)據(jù)合并到一起為目標(biāo),所有的歷史文件均參與實(shí)時(shí)合并,而文件合并的開(kāi)銷是與合并的文件數(shù)據(jù)容量成正比的,隨著文件數(shù)據(jù)容量的積累,數(shù)據(jù)合并到新文件的開(kāi)銷將越來(lái)越大,直到數(shù)據(jù)容量達(dá)到存儲(chǔ)的上限。現(xiàn)有技術(shù)提供的方法將導(dǎo)致在大容量磁盤上部署的增量數(shù)據(jù)庫(kù),最終無(wú)法承受數(shù)據(jù)量的增長(zhǎng)導(dǎo)致的合并開(kāi)銷的增長(zhǎng),因此存在合并開(kāi)銷不可控的缺陷。
【發(fā)明內(nèi)容】
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種文件合并方法和裝置,可以控制、降低文件合并的開(kāi)銷。
[0006]一方面,本發(fā)明實(shí)施例提供了一種文件合并的方法,所述方法包括:
[0007]當(dāng)有新文件生成時(shí),確定所述新文件的類別,根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略;
[0008]根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件;
[0009]如果滿足,選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。
[0010]優(yōu)選地,所述文件合并策略包括以下任意一種或多種策略:
[0011]第一文件合并策略,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件;
[0012]第二文件合并策略,所述第二文件合并策略以時(shí)間作為觸發(fā)條件。
[0013]優(yōu)選地,所述文件類別包括第一類文件、第二類文件和第三類文件,其中,[0014]所述第一類文件為新生成且未參與文件合并的文件或根據(jù)第一合并策略生成的文件;
[0015]所述第二類文件為根據(jù)第二文件合并策略生成的文件;
[0016]所述第三類文件為數(shù)據(jù)容量大于第二設(shè)定閾值的文件。
[0017]優(yōu)選地,所述根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件包括:
[0018]當(dāng)有新的第一類文件生成時(shí),觸發(fā)合并判斷,根據(jù)第一文件合并策略判斷是否滿足合并觸發(fā)條件;
[0019]在所有第一類文件中文件數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件。
[0020]優(yōu)選地,所述根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件包括:
[0021]根據(jù)第二文件合并策略判斷是否滿足預(yù)設(shè)的時(shí)間觸發(fā)條件;
[0022]所述選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理為:
[0023]在滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),對(duì)第一類文件和第二類文件進(jìn)行合并。
[0024]優(yōu)選地,所述方法還包括:
[0025]當(dāng)對(duì)所述第一類文件和所述第二類文件進(jìn)行合并后,將合并后的文件中數(shù)據(jù)容量大于第二設(shè)定閾值的文件作為第三類文件,對(duì)所述第三類文件進(jìn)行歸檔處理。
[0026]另一方面,本發(fā)明實(shí)施例提供了一種文件合并裝置,所述裝置包括:
[0027]獲取單元,用于當(dāng)有新文件生成時(shí),確定所述新文件的類別,根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略;
[0028]觸發(fā)判斷單元,用于根據(jù)獲取單元發(fā)送的所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件;
[0029]合并執(zhí)行單元,用于在觸發(fā)判斷單元判斷滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件時(shí)選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。
[0030]優(yōu)選地,所述文件合并策略包括以下任意一種或多種策略:
[0031]第一文件合并策略,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件;
[0032]第二文件合并策略,所述第二文件合并策略以時(shí)間作為觸發(fā)條件。
[0033]優(yōu)選地,所述文件類別包括第一類文件、第二類文件和第三類文件,其中,
[0034]所述第一類文件為新生成且未參與文件合并的文件或根據(jù)第一合并策略生成的文件;
[0035]所述第二類文件為根據(jù)第二文件合并策略生成的文件;
[0036]所述第三類文件為數(shù)據(jù)容量大于第二設(shè)定閾值的文件。
[0037]優(yōu)選地,所述觸發(fā)判斷單元為:
[0038]第一觸發(fā)判斷子單元,用于當(dāng)有新的第一類文件生成時(shí),觸發(fā)合并判斷,根據(jù)第一文件合并策略判斷是否滿足合并觸發(fā)條件;在所有第一類文件中文件數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件。
[0039]優(yōu)選地,所述觸發(fā)判斷單元具體為:[0040]第二觸發(fā)判斷子單元,用于根據(jù)第二文件合并策略判斷是否滿足預(yù)設(shè)的時(shí)間觸發(fā)條件;
[0041]則所述合并執(zhí)行單元用于在第二觸發(fā)判斷單元判斷滿足預(yù)設(shè)的觸發(fā)條件時(shí),對(duì)第一類文件和第二類文件進(jìn)行合并。
[0042]優(yōu)選地,所述裝置還包括:
[0043]歸檔處理單元,用于當(dāng)對(duì)所述第一類文件和所述第二類文件進(jìn)行合并后,對(duì)合并后的文件中數(shù)據(jù)容量大于第二設(shè)定閾值的文件作為第三類文件,對(duì)所述第三類文件進(jìn)行歸檔處理。
[0044]本發(fā)明實(shí)施例能夠達(dá)到的有益效果為:在本發(fā)明實(shí)施例中,不同于現(xiàn)有技術(shù)中對(duì)所有文件均進(jìn)行實(shí)時(shí)合并處理的方案,對(duì)增量數(shù)據(jù)庫(kù)中的文件進(jìn)行分類處理,根據(jù)不同的文件類別制定了不同的合并處理策略。當(dāng)有新的文件生成時(shí),首先確定新文件的類別,并根據(jù)文件的類別獲取與其對(duì)應(yīng)的合并策略。其中,第一類文件參與以文件數(shù)量作為觸發(fā)條件的實(shí)時(shí)合并,第一類文件和第二類文件參與以時(shí)間作為觸發(fā)條件的定時(shí)合并,第三類文件進(jìn)行歸檔處理不參與合并,使得文件的合并開(kāi)銷始終保持可控。由于對(duì)文件進(jìn)行分類處理,使得不同的文件有不同的合并處理策略,相對(duì)于現(xiàn)有技術(shù)提供的方法,使得文件的合并開(kāi)銷始終保持可控。
【專利附圖】
【附圖說(shuō)明】
[0045]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0046]圖1為本發(fā)明實(shí)施例提供的文件合并方法第一實(shí)施例流程圖;
[0047]圖2為本發(fā)明實(shí)施例提供的文件合并方法第二實(shí)施例流程圖;
[0048]圖3為本發(fā)明實(shí)施例增量數(shù)據(jù)庫(kù)示意圖;
[0049]圖4為本發(fā)明實(shí)施例提供的文件合并方法第三實(shí)施例流程圖;
[0050]圖5為本發(fā)明一實(shí)施例提供的文件合并裝置示意圖;
[0051]圖6為本發(fā)明又一實(shí)施例提供的文件合并裝置示意圖。
【具體實(shí)施方式】
[0052]本發(fā)明實(shí)施例提供了一種文件合并的方法和裝置,可以根據(jù)文件的類別執(zhí)行不同的文件合并策略,使得文件的合并開(kāi)銷始終保持可控,且進(jìn)一步降低了文件合并的開(kāi)銷。
[0053]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0054]本發(fā)明實(shí)施例提供的方法可以應(yīng)用于所有文件數(shù)據(jù)的合并,包括但不限于磁盤文件、非磁盤文件存儲(chǔ)的數(shù)據(jù)、文件系統(tǒng)的增量數(shù)據(jù)、非典型文件系統(tǒng)的增量數(shù)據(jù)等。[0055]下面以增量數(shù)據(jù)庫(kù)為例,對(duì)本發(fā)明實(shí)施例提供的文件合并方法進(jìn)行說(shuō)明。前面提至IJ,在增量數(shù)據(jù)庫(kù)中,數(shù)據(jù)是以追加而非修改的方式保存在數(shù)據(jù)庫(kù)中的,數(shù)據(jù)的修改、刪除和更新操作,均會(huì)導(dǎo)致新的文件產(chǎn)生。數(shù)據(jù)入庫(kù)和文件的生成是一個(gè)持續(xù)性的過(guò)程,隨著數(shù)據(jù)量的增加,文件合并的開(kāi)銷會(huì)越來(lái)越大。因此亟需一種文件合并方法既能夠在數(shù)據(jù)持續(xù)增長(zhǎng)的過(guò)程中有效減少磁盤隨機(jī)輸入輸出,同時(shí)能夠盡可能地避免影響數(shù)據(jù)庫(kù)讀寫性能。
[0056]參見(jiàn)圖1,為本發(fā)明提供的文件合并方法第一實(shí)施例流程圖,所述方法包括:
[0057]S101,當(dāng)有新文件生成時(shí),確定所述新文件的類別,根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略。
[0058]在本發(fā)明第一實(shí)施例中,新文件為新生成的文件,可以是內(nèi)存數(shù)據(jù)持久化生成的文件(即入數(shù)據(jù)庫(kù)時(shí)直接生成的文件),也可以是文件合并生成的文件。在本發(fā)明第一實(shí)施例中,可以根據(jù)文件生成的方式對(duì)文件進(jìn)行分類。當(dāng)然,還可以根據(jù)文件數(shù)據(jù)容量大小對(duì)文件進(jìn)行分類。本發(fā)明對(duì)具體的文件分類方式不進(jìn)行限定,文件分類的主要目的是對(duì)文件進(jìn)行分流處理,以保證參與某一類合并(例如實(shí)時(shí)合并)的文件數(shù)量較少,不占用系統(tǒng)資源,以使得合并開(kāi)銷可控。
[0059]當(dāng)確定新文件的類別后,即根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略。在本發(fā)明第一實(shí)施例中,不同的文件類別對(duì)應(yīng)不同的文件合并策略。這樣,可以使得某一類別的文件參與對(duì)應(yīng)的文件合并策略,使得參與某一類文件合并策略的文件數(shù)量保持可控,進(jìn)而使得合并開(kāi)銷可控。
[0060]S102,根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足文件合并觸發(fā)條件。
[0061]S103,如果滿足,選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。
[0062]不同的文件合并策略有不同的合并觸發(fā)條件,當(dāng)滿足合并觸發(fā)條件時(shí),選取滿足所述合并觸發(fā)條件的文件,觸發(fā)合并處理流程對(duì)滿足條件的文件進(jìn)行合并。具體地,滿足文件合并觸發(fā)條件的文件與所述新文件屬于同一類別,其包括與所述新文件屬于同一類別的、滿足合并觸發(fā)條件的所有文件。在本發(fā)明第一實(shí)施例中,可以通過(guò)發(fā)送合并操作指令觸發(fā)對(duì)符合條件的文件的合并。其中,合并操作指令可以包括參與合并的文件的范圍以及合并操作的類型,例如定時(shí)合并或?qū)崟r(shí)合并。本發(fā)明對(duì)觸發(fā)合并的方式不進(jìn)行限定,本領(lǐng)域技術(shù)人員在不付出創(chuàng)造性勞動(dòng)下獲取的其他實(shí)施方式均屬于本發(fā)明的保護(hù)范圍。
[0063]在本發(fā)明第一實(shí)施例中,不同于現(xiàn)有技術(shù)中對(duì)所有文件均進(jìn)行實(shí)時(shí)合并處理的方案,對(duì)增量數(shù)據(jù)庫(kù)中的文件進(jìn)行分類處理,根據(jù)不同的文件類別制定了不同的合并處理策略。當(dāng)有新的文件生成時(shí),首先確定新文件的類別,并根據(jù)文件的類別獲取與其對(duì)應(yīng)的合并策略。由于對(duì)文件進(jìn)行分類處理,使得不同的文件有不同的合并處理策略,對(duì)文件進(jìn)行了分流處理,以保證參與某一類合并(例如實(shí)時(shí)合并)的文件數(shù)量較少,不占用系統(tǒng)資源,相對(duì)于現(xiàn)有技術(shù)提供的方法,使得文件的合并開(kāi)銷始終保持可控。
[0064]下面參照附圖2,對(duì)本發(fā)明第二實(shí)施例進(jìn)行詳細(xì)介紹。
[0065]在本發(fā)明第二實(shí)施例中,在現(xiàn)有技術(shù)由文件數(shù)量觸發(fā)的文件合并(又可稱為實(shí)時(shí)合并)的基礎(chǔ)上,引入了由時(shí)間觸發(fā)的文件合并(定時(shí)合并)機(jī)制,即在指定時(shí)刻觸發(fā)文件合并操作。并針對(duì)不同類別的文件制定不同的合并策略,保證文件合并開(kāi)銷可控,提高了數(shù)據(jù)庫(kù)讀寫性能。
[0066]參見(jiàn)圖2,為本發(fā)明實(shí)施例提供的文件合并方法第二實(shí)施例流程圖。[0067]S201,當(dāng)有新的第一類文件生成時(shí)或滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),觸發(fā)合并判斷。
[0068]在本發(fā)明第二實(shí)施例中,仍以增量數(shù)據(jù)庫(kù)為例進(jìn)行說(shuō)明。參見(jiàn)圖3,為增量數(shù)據(jù)庫(kù)的四個(gè)功能模塊:數(shù)據(jù)緩沖模塊301,文件存儲(chǔ)模塊302,數(shù)據(jù)讀取模塊303,文件合并管理模塊304。如圖3所示,當(dāng)執(zhí)行對(duì)數(shù)據(jù)庫(kù)的寫操作時(shí),數(shù)據(jù)緩沖模塊301用于將新寫入的數(shù)據(jù)存儲(chǔ)到內(nèi)存緩沖區(qū)并觸發(fā)內(nèi)存數(shù)據(jù)的全部或部分持久化到非易失存儲(chǔ)介質(zhì),如生成磁盤文件。其中,緩沖區(qū)數(shù)據(jù)持久化的觸發(fā)條件可能是緩沖區(qū)數(shù)據(jù)容量、持續(xù)時(shí)間、操作數(shù)等達(dá)到特定條件。當(dāng)緩沖區(qū)數(shù)據(jù)完成已持久化,則從緩沖區(qū)清除,從而保持?jǐn)?shù)據(jù)緩沖模塊容量的持續(xù)可用性。在本發(fā)明第二實(shí)施例中,將緩沖區(qū)觸發(fā)持久化生成的文件被歸類為第一類文件。文件存儲(chǔ)模塊302用于保存由數(shù)據(jù)緩沖模塊301生成的持久化數(shù)據(jù)文件以及維護(hù)數(shù)據(jù)文件的分類信息。每當(dāng)新的數(shù)據(jù)文件生成,文件存儲(chǔ)模塊302獲取該文件的分類信息,并將其與文件同步持久化。持久化文件分類信息的方法,可以是寫入到文件名、生成伴隨文件,或同步寫入獨(dú)立分類信息文件等;或者為文件添加標(biāo)識(shí)信息,以代表文件不同的分類等。下面對(duì)本發(fā)明實(shí)施例中文件分類的方法進(jìn)行介紹。
[0069]在本發(fā)明第二實(shí)施例中,文件合并策略包括:
[0070]第一文件合并策略,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件,即實(shí)時(shí)合并策略。第一設(shè)定閾值N為當(dāng)進(jìn)行實(shí)時(shí)合并處理時(shí),判斷是否滿足觸發(fā)條件的一個(gè)閾值,當(dāng)文件的數(shù)量大于第一設(shè)定閾值N時(shí),則滿足觸發(fā)條件;當(dāng)文件的數(shù)量小于第一設(shè)定閾值N時(shí),則不滿足觸發(fā)條件。第一設(shè)定閾值N可以保證每次進(jìn)行實(shí)時(shí)合并處理時(shí)至少包含N個(gè)文件,避免參與合并的文件數(shù)量過(guò)少造成合并過(guò)于頻繁,進(jìn)而造成資源的占用。
[0071]第二文件合并策略,所述第二文件合并策略以時(shí)間作為觸發(fā)條件,即定時(shí)合并策略。
[0072]在本發(fā)明第二實(shí)施例中,還包括歸檔策略,即當(dāng)文件數(shù)據(jù)容量大于第二設(shè)定閾值的文件不參與合并,進(jìn)行歸檔處理。第二設(shè)定閾值為歸檔閾值,當(dāng)文件的數(shù)據(jù)容量大于第二設(shè)定閾值A(chǔ)時(shí),則對(duì)文件進(jìn)行歸檔處理,歸檔文件不參與合并。
[0073]與文件合并策略對(duì)應(yīng)的,在本發(fā)明第二實(shí)施例中,根據(jù)文件生成的方式將文件劃分為三類。具體的,可以將文件分為以下三類:
[0074](I)第一類文件為新生成且未參與文件合并的文件或根據(jù)第一文件合并策略生成的文件。也就是說(shuō),第一類文件包括內(nèi)存數(shù)據(jù)持久化生成的文件,即入庫(kù)時(shí)直接生成的文件。第一類文件還包括根據(jù)第一文件合并策略生成的文件,也就是實(shí)時(shí)合并生成的新文件。
[0075](2)第二類文件為根據(jù)第二文件合并策略生成的且文件數(shù)據(jù)容量小于第三設(shè)定閾值的文件。具體的,對(duì)于定時(shí)合并生成的文件,如果文件大小小于第三設(shè)定閾值A(chǔ),標(biāo)記為第二類文件。
[0076](3)第三類文件為根據(jù)第二文件合并策略生成的且文件數(shù)據(jù)容量大于第三設(shè)定閾值的文件,也就是由定時(shí)合并生成的文件容量大于等于第三設(shè)定閾值A(chǔ),標(biāo)記為第三類文件(歸檔類)。文件合并操作的最后,新生成的文件取代參與合并的舊文件,成為數(shù)據(jù)讀取模塊讀取的對(duì)象。
[0077]文件合并管理模塊用于從文件存儲(chǔ)模塊獲取文件的類別以及生成實(shí)時(shí)合并操作指令。下面將具體進(jìn)行說(shuō)明。在本發(fā)明第二實(shí)施例中,包含觸發(fā)判斷步驟,當(dāng)有新的第一類文件生成時(shí)或滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),觸發(fā)合并判斷。其中,文件的類別是在文件生成時(shí)即根據(jù)文件生成的方式確定的。預(yù)設(shè)的時(shí)間觸發(fā)條件可以是到達(dá)預(yù)設(shè)的時(shí)刻或者達(dá)到預(yù)設(shè)的時(shí)間間隔等,本發(fā)明對(duì)此不進(jìn)行限定。
[0078]S202,當(dāng)判斷新文件的類別為第一類文件時(shí),根據(jù)第一文件合并策略判斷是否滿足合并觸發(fā)條件。
[0079]具體的,在本發(fā)明第二實(shí)施例中,第一文件合并策略為以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件,即實(shí)時(shí)合并策略。每當(dāng)有新的第一類文件生成時(shí),觸發(fā)一次實(shí)時(shí)合并判斷,在所有第一類文件中,當(dāng)文件的數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件,則生成“將這些文件合并為第一類文件”的指令,發(fā)送給文件存儲(chǔ)模塊。
[0080]也就是說(shuō),判斷是否滿足合并觸發(fā)條件需要同時(shí)滿足以下兩個(gè)條件:
[0081](I)文件的數(shù)據(jù)容量滿足預(yù)設(shè)容量條件。
[0082](2)滿足條件(I)的文件的數(shù)量大于第一設(shè)定閾值N。
[0083]具體的,在本發(fā)明實(shí)施例中,預(yù)設(shè)容量條件為文件的數(shù)據(jù)容量大于0.5S且小于1.5S。S為一個(gè)設(shè)定的容量值,一般的,S大于50MB。預(yù)設(shè)容量條件可以由系統(tǒng)設(shè)定,也可以是根據(jù)需要設(shè)置其他條件。設(shè)定預(yù)設(shè)容量條件的目的是為了使得相近大小的文件優(yōu)先進(jìn)行合并,有利于減少文件合并的次數(shù),進(jìn)而降低合并開(kāi)銷。在這里,第一設(shè)定閾值N可以通過(guò)系統(tǒng)設(shè)定,以保證每次實(shí)時(shí)合并時(shí)至少包含N個(gè)文件,避免參與合并文件數(shù)量過(guò)少導(dǎo)致合并過(guò)于頻繁。設(shè)置容量值S使得相近大小的文件優(yōu)先進(jìn)行合并,有利于減少文件合并的次數(shù)。
[0084]S203,在所有第一類文件中文件數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件。
[0085]S204,選取滿足合并觸發(fā)條件的第一類文件,執(zhí)行文件合并處理。
[0086]具體地,在本發(fā)明第二實(shí)施例中,合并處理流程具體如下:首先每個(gè)文件中的數(shù)據(jù)是排序的,打開(kāi)待合并文件的讀取文件流以及一個(gè)新文件的寫入文件流。其中,每個(gè)文件流包含一個(gè)游標(biāo),以便于按順序從頭至尾獲取數(shù)據(jù)記錄。合并處理流程從所有打開(kāi)的文件流中,查找主鍵值最小(或主鍵值最大,取決于數(shù)據(jù)排序規(guī)則)的數(shù)據(jù)。若存在多個(gè)主鍵值相等的數(shù)據(jù)(例如同一條記錄在兩個(gè)文件中的更新信息),則對(duì)著多條數(shù)據(jù)合并(非主鍵字段按照時(shí)間戳較大優(yōu)先原則選取),否則直接選取該數(shù)據(jù)。將上一步驟選取的數(shù)據(jù)追加到新的文件中,以實(shí)現(xiàn)文件合并。
[0087]S205,當(dāng)滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),對(duì)第一類文件和第二類文件進(jìn)行合并。
[0088]在本發(fā)明第二實(shí)施例中,在實(shí)時(shí)合并基礎(chǔ)上,引入了定時(shí)合并機(jī)制,當(dāng)滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),則觸發(fā)合并判斷。預(yù)設(shè)的時(shí)間觸發(fā)條件可以是系統(tǒng)預(yù)設(shè)的時(shí)刻Tl到達(dá)時(shí)觸發(fā)定時(shí)合并,也可以是每隔T2個(gè)時(shí)間段則執(zhí)行一次定時(shí)合并,也可以是其他時(shí)間觸發(fā)條件,本發(fā)明對(duì)此不進(jìn)行限定。由于定時(shí)合并需要第一類文件和第二類文件的參與,因此,合并的數(shù)據(jù)量總量較大,因此定時(shí)合并執(zhí)行的開(kāi)銷也較大。具體地,可以選擇數(shù)據(jù)庫(kù)業(yè)務(wù)最空閑的時(shí)刻,例如每天深夜的時(shí)刻執(zhí)行定時(shí)合并。
[0089]S206,判斷由定時(shí)合并產(chǎn)生的合并后的文件的數(shù)據(jù)容量是否大于第二設(shè)定閾值A(chǔ)0如果大于,進(jìn)入步驟S208,如果不大于,進(jìn)入步驟S207。[0090]S207,如果否,將合并后的文件作為第二類文件進(jìn)行存儲(chǔ)。
[0091]當(dāng)預(yù)設(shè)的時(shí)間條件滿足時(shí),則會(huì)觸發(fā)對(duì)新生成的第二類文件的定時(shí)合并。
[0092]S208,如果是,將合并后的文件作為第三類文件進(jìn)行歸檔處理。
[0093]如果經(jīng)過(guò)定時(shí)合并生成的文件數(shù)據(jù)容量大于第二設(shè)定閾值,則將其作為第三類文件,進(jìn)行歸檔處理。第三類文件將不再參與文件的合并。一般的,第二設(shè)定閾值是一個(gè)較大的閾值,例如200G。設(shè)置該參數(shù)的目的在于避免過(guò)大文件參與合并,從而避免了合并造成CPU和磁盤IO開(kāi)銷隨著數(shù)據(jù)庫(kù)容量增長(zhǎng)而無(wú)限增加。
[0094]在本發(fā)明第二實(shí)施例中,在現(xiàn)有技術(shù)由文件數(shù)量觸發(fā)的文件合并(又可稱為實(shí)時(shí)合并)的基礎(chǔ)上,引入了由時(shí)間觸發(fā)的文件合并(定時(shí)合并)機(jī)制,即在指定時(shí)刻觸發(fā)文件合并操作。例如,可以在數(shù)據(jù)庫(kù)業(yè)務(wù)最空閑的時(shí)刻觸發(fā)文件合并,可以有效地緩解數(shù)據(jù)庫(kù)業(yè)務(wù)繁忙時(shí)文件合并造成的硬件資源競(jìng)爭(zhēng)壓力,提高數(shù)據(jù)庫(kù)性能。
[0095]另一方面,在本發(fā)明第二實(shí)施例中,只有新入庫(kù)和參與實(shí)時(shí)合并生成的文件才參與實(shí)時(shí)合并,而由定時(shí)合并產(chǎn)生的大容量文件則不參與實(shí)時(shí)合并,使得參與定時(shí)合并的文件數(shù)量大大縮小,其文件數(shù)據(jù)量保持可控,進(jìn)一步保證了合并開(kāi)銷可控。
[0096]再一方面,由于設(shè)置了第三設(shè)定閾值A(chǔ),即歸檔閾值,對(duì)大于文件數(shù)據(jù)容量歸檔閾值的文件進(jìn)行歸檔處理,不參與文件合并,避免了大文件參與合并,從而避免了合并造成CPU和磁盤IO開(kāi)銷隨著數(shù)據(jù)庫(kù)容量增長(zhǎng)而無(wú)限增加,從而保證合并開(kāi)銷可控。
[0097]現(xiàn)有技術(shù)中,現(xiàn)有技術(shù)提供的方法中,始終以將所有歷史數(shù)據(jù)合并到一起為目標(biāo),所有的歷史文件均參與實(shí)時(shí)合并,這樣處理帶來(lái)的另一個(gè)問(wèn)題則是會(huì)在業(yè)務(wù)繁忙時(shí)加劇硬件資源競(jìng)爭(zhēng)。通常數(shù)據(jù)庫(kù)操作繁忙的時(shí)段,新數(shù)據(jù)文件增長(zhǎng)速度最快,按照現(xiàn)有技術(shù)提供的方法,此時(shí)由數(shù)量閾值觸發(fā)的合并操作將最為頻繁。這一現(xiàn)象導(dǎo)致了現(xiàn)有技術(shù)的合并操作會(huì)在數(shù)據(jù)庫(kù)業(yè)務(wù)高峰時(shí)段與主功能競(jìng)爭(zhēng)硬件資源,例如CPU和磁盤I/O等,嚴(yán)重影響數(shù)據(jù)庫(kù)本身的性能?,F(xiàn)有技術(shù)在數(shù)據(jù)庫(kù)業(yè)務(wù)空閑時(shí)段,合并任務(wù)也相對(duì)空閑,從而浪費(fèi)了閑時(shí)的硬件處理能力。
[0098]為了解決這一問(wèn)題,在本發(fā)明第三實(shí)施例中,與第二實(shí)施例不同的是,只在數(shù)據(jù)庫(kù)相對(duì)空閑的時(shí)刻進(jìn)行定時(shí)合并。當(dāng)由定時(shí)合并產(chǎn)生的文件數(shù)據(jù)容量大于第三設(shè)定閾值A(chǔ)時(shí),對(duì)文件進(jìn)行歸檔處理。與第二實(shí)施例實(shí)時(shí)合并加定時(shí)合并的合并策略不同的是,在本發(fā)明第三實(shí)施例中,只包括定時(shí)合并策略以及歸檔處理策略。
[0099]參見(jiàn)圖4,為本發(fā)明實(shí)施例提供的文件合并方法第三實(shí)施例流程圖。
[0100]S401,當(dāng)有新的文件生成時(shí),確定新文件的類別。
[0101]在本發(fā)明這一實(shí)施例中,將文件劃分為歸檔文件和非歸檔文件。文件數(shù)據(jù)容量大于設(shè)定閾值的被標(biāo)記為歸檔文件,不參與合并處理。文件數(shù)據(jù)容量小于設(shè)定閾值的文件才參與定時(shí)合并。
[0102]S402,當(dāng)滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),對(duì)非歸檔文件進(jìn)行合并。
[0103]在本發(fā)明第三實(shí)施例中,將文件劃分為歸檔文件和非歸檔文件,并為不同類別的文件制定了不同的合并策略。對(duì)于歸檔文件,不參與定時(shí)合并處理。對(duì)于非歸檔文件,參與由時(shí)間閾值觸發(fā)的定時(shí)合并。這里,預(yù)設(shè)的時(shí)間觸發(fā)條件可以是系統(tǒng)預(yù)設(shè)的時(shí)刻Tl到達(dá)時(shí)觸發(fā)定時(shí)合并,也可以是每隔T2個(gè)時(shí)間段則執(zhí)行一次定時(shí)合并,也可以是其他時(shí)間觸發(fā)條件,本發(fā)明對(duì)此不進(jìn)行限定。[0104]S403,判斷由定時(shí)合并產(chǎn)生的合并后的文件的數(shù)據(jù)容量是否大于第二設(shè)定閾值A(chǔ)0如果不大于,進(jìn)入步驟S404,如果大于,進(jìn)入步驟S405。
[0105]S404,如果否,將合并后的文件作為非歸檔文件進(jìn)行存儲(chǔ)。
[0106]當(dāng)預(yù)設(shè)的時(shí)間條件滿足時(shí),則會(huì)觸發(fā)對(duì)新生成的非歸檔文件的定時(shí)合并。
[0107]S405,如果是,將合并后的文件作為歸檔文件進(jìn)行歸檔處理,歸檔文件不參與文件
I=I TT O
[0108]在本發(fā)明第三實(shí)施例中,在數(shù)據(jù)庫(kù)業(yè)務(wù)空閑的時(shí)刻對(duì)文件進(jìn)行合并處理,解決了現(xiàn)有技術(shù)業(yè)務(wù)繁忙時(shí)導(dǎo)致資源競(jìng)爭(zhēng)的缺點(diǎn)。另一方面,將合并后的文件中數(shù)據(jù)容量大于設(shè)定閾值的文件進(jìn)行歸檔處理,使得合并的開(kāi)銷在一個(gè)歸檔周期內(nèi)遞增,而達(dá)到歸檔條件后則會(huì)回落到最低值,使得合并開(kāi)銷可控。
[0109]參見(jiàn)圖5,為本發(fā)明實(shí)施例提供的文件合并的裝置示意圖。
[0110]所述裝置包括:
[0111]獲取單元501,用于當(dāng)有新文件生成時(shí),確定所述新文件的類別;根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略。
[0112]觸發(fā)判斷單元502,用于根據(jù)獲取單元發(fā)送的所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件。
[0113]合并執(zhí)行單元503,用于在觸發(fā)判斷單元502判斷滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件時(shí),選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。
[0114]進(jìn)一步地,所述文件合并策略包括以下任意一種或多種策略:
[0115]第一文件合并策略,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件;
[0116]第二文件合并策略,所述第二文件合并策略以時(shí)間作為觸發(fā)條件。
[0117]進(jìn)一步地,所述文件類別包括第一類文件、第二類文件和第三類文件,其中,
[0118]所述第一類文件為新生成且未參與文件合并的文件或根據(jù)第一合并策略生成的文件,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件;
[0119]所述第二類文件為根據(jù)第二文件合并策略生成的文件,所述第二文件合并策略以時(shí)間作為觸發(fā)條件;
[0120]所述第三類文件為數(shù)據(jù)容量大于第二設(shè)定閾值的文件。
[0121]進(jìn)一步地,所述觸發(fā)判斷單元為:
[0122]第一觸發(fā)判斷子單元,用于當(dāng)有新的第一類文件生成時(shí),觸發(fā)合并判斷,根據(jù)第一文件合并策略判斷是否滿足合并觸發(fā)條件;在所有第一類文件中文件數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件。
[0123]所述合并執(zhí)行單元用于在第一觸發(fā)判斷單元根據(jù)第一文件合并策略判斷滿足合并觸發(fā)條件時(shí),選取滿足條件的第一類文件,觸發(fā)合并處理流程,對(duì)滿足所述合并觸發(fā)條件的文件進(jìn)行合并。
[0124]進(jìn)一步地,所述觸發(fā)判斷單元具體為:
[0125]第二觸發(fā)判斷子單元,用于根據(jù)第二文件合并策略判斷是否滿足預(yù)設(shè)的時(shí)間觸發(fā)條件。
[0126]所述合并執(zhí)行單元用于在第二觸發(fā)判斷單元判斷滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),對(duì)第一類文件和第二類文件進(jìn)行合并。
[0127] 進(jìn)一步地,所述裝置還包括:
[0128]歸檔處理單元,用于當(dāng)對(duì)所述第一類文件和所述第二類文件進(jìn)行合并后,對(duì)合并后的文件中數(shù)據(jù)容量大于第二設(shè)定閾值的文件作為第三類文件,對(duì)所述第三類文件進(jìn)行歸檔處理。
[0129]參見(jiàn)圖6,為本發(fā)明又一實(shí)施例提供的文件合并裝置示意圖。
[0130]所述裝置包括:
[0131]存儲(chǔ)器601,用于存儲(chǔ)文件類別與文件合并策略的對(duì)應(yīng)關(guān)系;
[0132]處理器602,用于當(dāng)有新文件生成時(shí),確定所述新文件的類別,根據(jù)所述存儲(chǔ)器601存儲(chǔ)的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略;根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件;如果滿足,選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。
[0133]進(jìn)一步地,所述文件合并策略包括:
[0134]第一文件合并策略,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件;
[0135]第二文件合并策略,所述第二文件合并策略以時(shí)間作為觸發(fā)條件。
[0136]所述文件類別包括第一類文件、第二類文件和第三類文件,其中,
[0137]所述第一類文件為新生成且未參與文件合并的文件或根據(jù)第一文件合并策略生成的文件;
[0138]所述第二類文件為根據(jù)第二文件合并策略生成的文件;
[0139]所述第三類文件為數(shù)據(jù)容量大于第二設(shè)定閾值的文件。
[0140]進(jìn)一步地,所述處理器602具體用于當(dāng)有新的第一類文件生成時(shí),觸發(fā)合并判斷,根據(jù)第一文件合并策略判斷是否滿足合并觸發(fā)條件;在所有第一類文件中文件數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件;以及選取滿足條件的第一類文件,觸發(fā)合并處理流程,對(duì)滿足所述合并觸發(fā)條件的文件進(jìn)行合并。
[0141]進(jìn)一步地,所述處理器602還用于根據(jù)第二文件合并策略判斷是否滿足預(yù)設(shè)的時(shí)間觸發(fā)條件,當(dāng)判斷滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),對(duì)第一類文件和第二類文件進(jìn)行合并。
[0142]進(jìn)一步地,所述處理器602還用于當(dāng)對(duì)所述第一類文件和所述第二類文件進(jìn)行合并后,對(duì)合并后的文件中數(shù)據(jù)容量大于第二設(shè)定閾值的文件作為第三類文件,對(duì)所述第三類文件進(jìn)行歸檔處理。
[0143]需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0144]本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
[0145]以上所述僅是本發(fā)明的【具體實(shí)施方式】,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種文件合并的方法,其特征在于,所述方法包括: 當(dāng)有新文件生成時(shí),確定所述新文件的類別,根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略; 根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件; 如果滿足,選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述文件合并策略包括以下任意一種或多種策略: 第一文件合并策略,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件; 第二文件合并策略,所述第二文件 合并策略以時(shí)間作為觸發(fā)條件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述文件類別包括第一類文件、第二類文件和第三類文件,其中, 所述第一類文件為新生成且未參與文件合并的文件或根據(jù)第一文件合并策略生成的文件; 所述第二類文件為根據(jù)第二文件合并策略生成的文件; 所述第三類文件為數(shù)據(jù)容量大于第二設(shè)定閾值的文件。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件包括: 當(dāng)有新的第一類文件生成時(shí),觸發(fā)合并判斷,根據(jù)第一文件合并策略判斷是否滿足合并觸發(fā)條件; 在所有第一類文件中文件數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件包括: 根據(jù)第二文件合并策略判斷是否滿足預(yù)設(shè)的時(shí)間觸發(fā)條件; 所述選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理為: 在滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),對(duì)第一類文件和第二類文件進(jìn)行合并。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 當(dāng)對(duì)所述第一類文件和所述第二類文件進(jìn)行合并后,將合并后的文件中數(shù)據(jù)容量大于第二設(shè)定閾值的文件作為第三類文件,對(duì)所述第三類文件進(jìn)行歸檔處理。
7.一種文件合并的裝置,其特征在于,所述裝置包括: 獲取單元,用于當(dāng)有新文件生成時(shí),確定所述新文件的類別,根據(jù)預(yù)存的文件類別與文件合并策略的對(duì)應(yīng)關(guān)系,獲取與所述新文件的類別對(duì)應(yīng)的文件合并策略; 觸發(fā)判斷單元,用于根據(jù)獲取單元發(fā)送的所述文件合并策略,觸發(fā)合并判斷,判斷是否滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件; 合并執(zhí)行單元,用于在觸發(fā)判斷單元判斷滿足與所述文件合并策略對(duì)應(yīng)的文件合并觸發(fā)條件時(shí),選取滿足文件合并觸發(fā)條件的文件,執(zhí)行文件合并處理。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述文件合并策略包括以下任意一種或多種策略: 第一文件合并策略,所述第一文件合并策略以文件數(shù)量達(dá)到第一設(shè)定閾值作為觸發(fā)條件; 第二文件合并策略,所述第二文件合并策略以時(shí)間作為觸發(fā)條件。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述文件類別包括第一類文件、第二類文件和第三類文件,其中, 所述第一類文件為新生成且未參與文件合并的文件或根據(jù)第一合并策略生成的文件; 所述第二類文件為根據(jù)第二文件合并策略生成的文件; 所述第三類文件為數(shù)據(jù)容量大于第二設(shè)定閾值的文件。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述觸發(fā)判斷單元為: 第一觸發(fā)判斷子單元,用于當(dāng)有新的第一類文件生成時(shí),觸發(fā)合并判斷,根據(jù)第一文件合并策略判斷是否滿足合并觸發(fā)條件;在所有第一類文件中文件數(shù)據(jù)容量滿足預(yù)設(shè)容量條件的文件的數(shù)量大于第一設(shè)定閾值時(shí),確定滿足合并觸發(fā)條件。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述觸發(fā)判斷單元具體為: 第二觸發(fā)判斷子單元,用于根據(jù)第二文件合并策略判斷是否滿足預(yù)設(shè)的時(shí)間觸發(fā)條件; 則所述合并執(zhí)行單元用于在第二觸發(fā)判斷單元判斷滿足預(yù)設(shè)的時(shí)間觸發(fā)條件時(shí),對(duì)第一類文件和第二類文件進(jìn)行合并。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 歸檔處理單元,用于當(dāng)對(duì)所述第一類文件和所述第二類文件進(jìn)行合并后,對(duì)合并后的文件中數(shù)據(jù)容量大于第二設(shè)定閾值的文件作為第三類文件,對(duì)所述第三類文件進(jìn)行歸檔處理。
【文檔編號(hào)】G06F17/30GK103577454SQ201210270365
【公開(kāi)日】2014年2月12日 申請(qǐng)日期:2012年8月1日 優(yōu)先權(quán)日:2012年8月1日
【發(fā)明者】程實(shí), 梁曉豪 申請(qǐng)人:華為技術(shù)有限公司