專利名稱:一種注冊(cè)表文件整理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種注冊(cè)表文件整理方法及裝置。
背景技術(shù):
注冊(cè)表是Windows操作系統(tǒng)中所有32位硬件/驅(qū)動(dòng)和32位應(yīng)用程序的數(shù)據(jù)文件,是一個(gè)系統(tǒng)信息的數(shù)據(jù)庫(kù),其中容納了應(yīng)用程序和計(jì)算機(jī)系統(tǒng)的全部配置信息、應(yīng)用程序和文檔文件的關(guān)聯(lián)關(guān)系、硬件設(shè)備的說(shuō)明、狀態(tài)和屬性以及各種狀態(tài)信息和數(shù)據(jù)。注冊(cè)表文件也被稱為HIVE文件。它是注冊(cè)表信息的物理存儲(chǔ)形式。我們看到的注冊(cè)表結(jié)構(gòu)是經(jīng)過(guò)注冊(cè)表編輯器讀取之后呈現(xiàn)給我們的,是由一組稱被為HIVE文件組成。HIVE中文名曰 “儲(chǔ)巢”。每個(gè)HIVE文件可以被理解為一棵單獨(dú)注冊(cè)表樹(shù)。注冊(cè)表信息是按照一定格式存儲(chǔ)在硬盤上的若干文件組成。修改某個(gè)注冊(cè)表項(xiàng)目,本質(zhì)上是修改對(duì)應(yīng)的文件。當(dāng)用戶安裝新的硬件,安裝卸載軟件,修改系統(tǒng)設(shè)置,都會(huì)涉及到注冊(cè)表讀,寫,增,刪操作。其中,刪注冊(cè)表信息項(xiàng)時(shí)候,會(huì)將對(duì)應(yīng)的物理存儲(chǔ)空間置上刪除標(biāo)記。注冊(cè)表文件中會(huì)有很多這樣被置為刪除標(biāo)記的空間。隨著寫入、刪除的多次進(jìn)行,會(huì)使得注冊(cè)表文件中產(chǎn)生大量的碎片。這種碎片一般不會(huì)在系統(tǒng)中引起問(wèn)題,但碎片過(guò)多會(huì)使系統(tǒng)在讀寫注冊(cè)表的時(shí)候來(lái)回尋找,引起系統(tǒng)性能下降。另外,過(guò)多的碎片還有可能導(dǎo)致注冊(cè)表信息的丟失。因此,迫切需要本領(lǐng)域技術(shù)人員解決的技術(shù)問(wèn)題就在于,如何對(duì)注冊(cè)表文件進(jìn)行有效地整理,以便減少其中的碎片。
發(fā)明內(nèi)容
本發(fā)明提供一種注冊(cè)表文件整理方法及裝置,能夠減少注冊(cè)表文件中的碎片,從而提高系統(tǒng)性能。本發(fā)明提供了如下方案 一種注冊(cè)表文件整理方法,包括
當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件;
將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中,生成新的注冊(cè)表文件; 通知操作系統(tǒng)將所述新的注冊(cè)表文件作為注冊(cè)表文件。其中所述當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件包括
當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),新建文件,將所述新建的文件作為所述目標(biāo)文件。其中
所述當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),新建文件包括
當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),查找原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE 文件,并為各注冊(cè)表項(xiàng)分別新建一文件;
所述將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中,生成新的注冊(cè)表文件包
括對(duì)于各注冊(cè)表項(xiàng),將原HIVE文件中的有效數(shù)據(jù)存放到對(duì)應(yīng)各注冊(cè)表項(xiàng)新建的文件中, 綜合各注冊(cè)表項(xiàng)對(duì)應(yīng)的新建文件,生成新的注冊(cè)表文件。優(yōu)選地,查找到原注冊(cè)表文件中的注冊(cè) 表項(xiàng)及其對(duì)應(yīng)的HIVE文件之后還包括 根據(jù)每個(gè)注冊(cè)表項(xiàng)的HIVE文件實(shí)際占用的空間以及HIVE文件中的有效數(shù)據(jù)所占用的
空間,確定每個(gè)注冊(cè)表項(xiàng)在整理后所占的空間,以及整理后優(yōu)化的比例;
將每個(gè)注冊(cè)表項(xiàng)在整理前后所占的空間,以及整理后優(yōu)化的比例展現(xiàn)給用戶。優(yōu)選地,還包括
將原注冊(cè)表文件中被分散保存到磁盤不同位置的同一注冊(cè)表信息的數(shù)據(jù)連續(xù)存放。其中,所述當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí)包括
檢測(cè)用戶是否發(fā)出整理注冊(cè)表文件的請(qǐng)求,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理; 或者,
檢測(cè)原注冊(cè)表文件占用的空間是否達(dá)到預(yù)置的閾值,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理。一種注冊(cè)表文件整理裝置,包括
目標(biāo)文件獲取單元,用于當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件; 新注冊(cè)表文件生成單元,用于將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中, 生成新的注冊(cè)表文件;
通知單元,用于通知操作系統(tǒng)將所述新的注冊(cè)表文件作為注冊(cè)表文件。其中,所述目標(biāo)文件獲取單元包括
新建文件單元,用于當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),新建文件,將所述新建的文件作為所述目標(biāo)文件。其中
所述新建文件單元具體用于
當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),查找原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE 文件,并為各注冊(cè)表項(xiàng)分別新建一文件; 所述新注冊(cè)表生成單元具體用于
對(duì)于各注冊(cè)表項(xiàng),將原HIVE文件中的有效數(shù)據(jù)存放到對(duì)應(yīng)各注冊(cè)表項(xiàng)新建的文件中, 綜合各注冊(cè)表項(xiàng)對(duì)應(yīng)的新建文件,生成新的注冊(cè)表文件。優(yōu)選地,還包括
確定單元,用于查找到原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE文件之后,根據(jù)每個(gè)注冊(cè)表項(xiàng)的HIVE文件實(shí)際占用的空間以及HIVE文件中的有效數(shù)據(jù)所占用的空間,確定每個(gè)注冊(cè)表項(xiàng)在整理后所占的空間,以及整理后優(yōu)化的比例;
展現(xiàn)單元,用于將每個(gè)注冊(cè)表項(xiàng)在整理前后所占的空間,以及整理后優(yōu)化的比例展現(xiàn)給用戶。優(yōu)選地,還包括
連續(xù)存放單元,用于將原注冊(cè)表文件中被分散保存到磁盤不同位置的同一注冊(cè)表信息的數(shù)據(jù)連續(xù)存放。其中,所述目標(biāo)文件獲取單元包括
第一檢測(cè)子單元,用于檢測(cè)用戶是否發(fā)出整理注冊(cè)表文件的請(qǐng)求,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理,獲取目標(biāo)文件; 或者,
第二檢測(cè)子單元,用于檢測(cè)原注冊(cè)表文件占用的空間是否達(dá)到預(yù)置的閾值,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理,獲取目標(biāo)文件。根 據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開(kāi)了以下技術(shù)效果
本發(fā)明實(shí)施例中,如果需要對(duì)注冊(cè)表文件進(jìn)行整理,則會(huì)獲取目標(biāo)文件,然后將原注冊(cè)表文件中的有效數(shù)據(jù)保存到該目標(biāo)文件中,這樣,就可以生成新的注冊(cè)表文件,然后將其作為注冊(cè)表文件。在這一過(guò)程中,由于僅將有效數(shù)據(jù)保存到新的文件中,這樣,就可以使得新的注冊(cè)表文件中不再存在無(wú)效數(shù)據(jù),因此,相當(dāng)于對(duì)注冊(cè)表碎片進(jìn)行了整理,有利于提高系統(tǒng)性能。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例提供的方法的流程圖; 圖2是本發(fā)明實(shí)施例中的第一界面示意圖3是本發(fā)明實(shí)施例中的第二界面示意圖; 圖4是本發(fā)明實(shí)施例中的第三界面示意圖; 圖5是本發(fā)明實(shí)施例提供的裝置的示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。參見(jiàn)圖1,本發(fā)明實(shí)施例提供的注冊(cè)表文件整理方法包括以下步驟 SlOl 當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件;
在實(shí)際應(yīng)用中,為了確定是否需要對(duì)注冊(cè)表文件進(jìn)行整理,可以為用戶提供啟動(dòng)入口, 當(dāng)用戶通過(guò)該入口發(fā)出整理注冊(cè)表文件的請(qǐng)求時(shí),就將其作為需要對(duì)注冊(cè)表文件進(jìn)行整理的指令,然后啟動(dòng)注冊(cè)表文件整理的流程。或者,也可以設(shè)置自動(dòng)監(jiān)控的程序,例如,可以對(duì)注冊(cè)表文件占用的空間進(jìn)行監(jiān)控,當(dāng)注冊(cè)表文件所占用的空間達(dá)到預(yù)置的閾值時(shí),就可以啟動(dòng)對(duì)注冊(cè)表文件進(jìn)行整理的流程。當(dāng)然,還可以將兩者相結(jié)合,例如,可以在監(jiān)控到注冊(cè)表文件占用的空間達(dá)到預(yù)置的閾值時(shí),向用戶彈出提示,告知用戶其注冊(cè)表文件占用的空間過(guò)大,并詢問(wèn)用戶是否需要進(jìn)行注冊(cè)表文件整理,如果用戶選擇需要,再啟動(dòng)整理注冊(cè)表文件的流程。一旦確定需要整理注冊(cè)表文件,就可以首先獲取目標(biāo)文件,為后續(xù)的整理做準(zhǔn)備。其中,具體在獲取目標(biāo)文件時(shí),可以是新創(chuàng)建空的文件,將該空的文件作為目標(biāo)文件(當(dāng)然,該空的文件可以是預(yù)先創(chuàng)建好的,也可以是在需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí)創(chuàng)建的)。或者,在實(shí)際應(yīng)用中,目標(biāo)文件還可以是預(yù)先獲取的一保存有基本配置信息的文件,基本配置信息是指針對(duì)用戶計(jì)算機(jī)的一些基本配置,這種基本配置可以是與用戶計(jì)算機(jī)上安裝的操作系統(tǒng)的版本號(hào)(例如Windows XP SP3等等)相對(duì)應(yīng)的,也就是說(shuō),對(duì)于安裝了某版本操作系統(tǒng)的計(jì)算機(jī)而言,注冊(cè)表中的一些基本配置通常是相同的,因此,就可以針對(duì)各個(gè)不同的操作系統(tǒng)版本號(hào)分別預(yù)先設(shè)置標(biāo)準(zhǔn)文件,在需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),就可 以將這種標(biāo)準(zhǔn)文件作為目標(biāo)文件。具體實(shí)現(xiàn)時(shí),該標(biāo)準(zhǔn)文件可以是預(yù)先保存在用戶計(jì)算機(jī)本地的,也可以是在需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),根據(jù)計(jì)算機(jī)的系統(tǒng)版本號(hào),到服務(wù)器側(cè)下載相應(yīng)的標(biāo)準(zhǔn)文件,再將其作為目標(biāo)文件。S102:將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中,生成新的注冊(cè)表文件;
由于獲取到的目標(biāo)文件,因此,具體在對(duì)注冊(cè)表文件進(jìn)行整理時(shí),就可以將原注冊(cè)表文件中的有效數(shù)據(jù)轉(zhuǎn)移到目標(biāo)文件中并保存。值得注意的是,原注冊(cè)表文件中既存在有效數(shù)據(jù),還存在一些無(wú)效數(shù)據(jù)(當(dāng)某應(yīng)用程序被卸載之后,之前被寫入到注冊(cè)表中的關(guān)于該應(yīng)用程序的數(shù)據(jù)可能并沒(méi)有被刪除,此時(shí),由于應(yīng)用程序已經(jīng)被卸載了,因此這種數(shù)據(jù)就成為無(wú)效數(shù)據(jù),也可以稱為碎片),在向目標(biāo)文件中轉(zhuǎn)移數(shù)據(jù)時(shí),僅將有效數(shù)據(jù)轉(zhuǎn)移到目標(biāo)文件中, 因此,新生成的注冊(cè)表文件就將不再包含無(wú)效數(shù)據(jù)。換言之,對(duì)于原注冊(cè)表文件中的數(shù)據(jù), 首先判斷出是有效數(shù)據(jù)還是無(wú)效數(shù)據(jù)(具體的,可以根據(jù)數(shù)據(jù)是否帶有刪除標(biāo)記來(lái)進(jìn)行判斷,或者,由于被置為已刪除的數(shù)據(jù)通常不具有顯示特性,因此,用注冊(cè)表編輯器打開(kāi)對(duì)應(yīng)的HIVE文件,能夠看到的數(shù)據(jù)都是有效的,在這種情況下,由于本發(fā)明的目的也是僅將有效數(shù)據(jù)保存到目標(biāo)文件中,因此也就沒(méi)有必要再去識(shí)別出其中的已經(jīng)無(wú)效的數(shù)據(jù)),如果是有效數(shù)據(jù),則保存到目標(biāo)文件中,因此,相當(dāng)于將碎片進(jìn)行了清除,避免影響到系統(tǒng)性能。需要說(shuō)明的是,如果目標(biāo)文件是新建的空文件,則直接將原注冊(cè)表文件中的所有有效數(shù)據(jù)都轉(zhuǎn)移到目標(biāo)文件中保存即可。而如果目標(biāo)文件是前文所述保存有基本配置信息的文件,則可以僅將基本配置信息以外的其他有效信息轉(zhuǎn)移保存到該基本配置文件中即可,因此,有利于提高文件整理的效率,節(jié)省時(shí)間及系統(tǒng)資源。另外需要說(shuō)明的是,關(guān)于本發(fā)明實(shí)施例所述的有效數(shù)據(jù),還可以是根據(jù)用戶的系統(tǒng)版本號(hào)以及安裝的應(yīng)用程序等特征進(jìn)行分析之后,獲得的關(guān)于當(dāng)前系統(tǒng)的一些優(yōu)化配置的數(shù)據(jù),因此,在對(duì)注冊(cè)表文件進(jìn)行整理的同時(shí),除了可以將原注冊(cè)表文件中的有效數(shù)據(jù)保存到目標(biāo)文件中,還可以將這些優(yōu)化配置數(shù)據(jù)保存到目標(biāo)文件中,使得新的注冊(cè)表文件在得到整理的同時(shí),優(yōu)化了系統(tǒng)配置,進(jìn)一步提高系統(tǒng)性能。S103 通知操作系統(tǒng)將所述新的注冊(cè)表文件作為注冊(cè)表文件。在生成新的注冊(cè)表文件之后,就可以通知操作系統(tǒng)將該文件作為注冊(cè)表文件。具體實(shí)現(xiàn)時(shí),在生成新的注冊(cè)表文件之后,還可以重新啟動(dòng)計(jì)算機(jī)(或者提示用戶重新啟動(dòng)), 重新啟動(dòng)之后,就會(huì)以新的注冊(cè)表文件運(yùn)行。當(dāng)然,對(duì)于原注冊(cè)表文件,由于已經(jīng)不再有存在的價(jià)值,因此可以將其刪除。至于原注冊(cè)表文件的刪除時(shí)機(jī),則可以在生成新的注冊(cè)表文件之后即刪除,也可以等到重啟計(jì)算機(jī)之后,再進(jìn)行刪除。可見(jiàn),在本發(fā)明實(shí)施例提供的注冊(cè)表文件整理方法中,如果需要對(duì)注冊(cè)表文件進(jìn)行整理,則會(huì)獲取目標(biāo)文件,然后將原注冊(cè)表文件中的有效數(shù)據(jù)保存到目標(biāo)文件中,這樣,就可以生成新的注冊(cè)表文件,然后將其作為注冊(cè)表文件。在這一過(guò)程中,由于僅將有效數(shù)據(jù)保存到新的文件中,這樣,就可以使得新的注冊(cè)表文件中不再存在無(wú)效數(shù)據(jù),因此,相當(dāng)于對(duì)注冊(cè)表碎片進(jìn)行了整理,有利于提高系統(tǒng)性能。 在實(shí)際應(yīng)用中,由于注冊(cè)表文件通常是由多個(gè)HIVE文件組成的,其中每個(gè)注冊(cè)表項(xiàng)對(duì)應(yīng)著一個(gè)HIVE文件,一個(gè)注冊(cè)表項(xiàng)通常對(duì)應(yīng)著一個(gè)群組,例如群組名為“\REGISTRY\ MACHINE\SOFTWARE”的HIVE文件,相當(dāng)于應(yīng)用程序?qū)?yīng)的注冊(cè)表項(xiàng),當(dāng)新裝某應(yīng)用程序時(shí), 產(chǎn)生的注冊(cè)表信息就寫入到該HIVE文件中。或者,群組名為“\REGISTRY\MACHINE\SYSTEM” 的HIVE文件,相當(dāng)于系統(tǒng)對(duì)應(yīng)的注冊(cè)表項(xiàng),當(dāng)系統(tǒng)中的硬件等配置發(fā)生變化時(shí),產(chǎn)生的注冊(cè)表信息就寫入到該HIVE文件中。也就是說(shuō),在注冊(cè)表文件中,實(shí)際上對(duì)不同的注冊(cè)表信息是進(jìn)行了分類保存的,同一類的注冊(cè)表信息對(duì)應(yīng)的一個(gè)HIVE文件,并且每個(gè)HIVE文件中包含多個(gè)注冊(cè)表信息,隨著應(yīng)用程序的新裝與卸載、系統(tǒng)配置的更改等操作,會(huì)使得每個(gè) HIVE文件中都可能產(chǎn)生無(wú)效的數(shù)據(jù)。因此,在本發(fā)明實(shí)施例中,如果將新建的文件作為目標(biāo)文件,則在新建文件之前, 還可以首先查找原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE文件,然后針對(duì)各個(gè)注冊(cè)表項(xiàng),分別新建一文件。具體對(duì)注冊(cè)表文件進(jìn)行整理時(shí),就可以分別針對(duì)各個(gè)注冊(cè)表項(xiàng)進(jìn)行。 其中,針對(duì)各個(gè)注冊(cè)表項(xiàng),就可以將原HIVE文件中的有效數(shù)據(jù)存放到對(duì)應(yīng)該注冊(cè)表項(xiàng)新建的文件中。這樣,最終針對(duì)各個(gè)注冊(cè)表項(xiàng)就可以分別得到一個(gè)新建的文件,并且新建的文件中僅保存有效的數(shù)據(jù),此時(shí),再將這些新建的文件綜合到一起,就可以生成新的注冊(cè)表文件。需要說(shuō)明的是,在實(shí)際應(yīng)用中,還可能存在以下現(xiàn)象在寫注冊(cè)表時(shí),計(jì)算機(jī)會(huì)優(yōu)先在HIVE文件中找足夠大的一個(gè)連續(xù)可用空間上存儲(chǔ)該信息。如果不存在足夠大的連續(xù)可用空間,則通常會(huì)從可用存儲(chǔ)空間中選擇若干塊,來(lái)存儲(chǔ)該數(shù)據(jù)。這就會(huì)造成同一注冊(cè)表信息在物理存儲(chǔ)空間上的不連續(xù),而由于這種在物理存儲(chǔ)空間上的不連續(xù),使得注冊(cè)表信息被分散保存到不同地方,這也會(huì)造成系統(tǒng)讀取數(shù)據(jù)變慢??紤]到上述現(xiàn)象,本發(fā)明實(shí)施例在對(duì)注冊(cè)表文件進(jìn)行整理時(shí),除了將無(wú)效數(shù)據(jù)清除掉以外,還可以判斷原注冊(cè)表文件中是否存在同一注冊(cè)表信息在物理空間的上的不連續(xù)存儲(chǔ)的現(xiàn)象,如果存在,在向新建的文件中轉(zhuǎn)移有效數(shù)據(jù)的過(guò)程中,還可以將將原注冊(cè)表文件中被分散保存到磁盤不同位置的同一注冊(cè)表信息的數(shù)據(jù)連續(xù)存放。這樣,可以進(jìn)一步地提高系統(tǒng)的性能。另外,在由用戶手動(dòng)啟動(dòng)注冊(cè)表文件整理的情況下,為了給用戶提供是否進(jìn)行注冊(cè)表文件整理的參考,還可以在進(jìn)行整理之前,首先對(duì)注冊(cè)表文件進(jìn)行分析,根據(jù)每個(gè)注冊(cè)表項(xiàng)的HIVE文件實(shí)際占用的空間以及HIVE文件中的有效數(shù)據(jù)所占用的空間,確定每個(gè)注冊(cè)表項(xiàng)在整理后所占的空間(也即有效數(shù)據(jù)所占用的空間),以及整理后優(yōu)化的比例(相當(dāng)于是無(wú)效數(shù)據(jù)所占的空間與原文件占用的總空間之間的比值),并將每個(gè)注冊(cè)表項(xiàng)在整理前后所占的空間,以及整理后優(yōu)化的比例展現(xiàn)給用戶。也就是說(shuō),用戶根據(jù)這些信息,可以直觀地了解到,如果對(duì)注冊(cè)表文件進(jìn)行整理,則可以得到多大的優(yōu)化,進(jìn)而決定是否要對(duì)注冊(cè)表文件進(jìn)行整理。例如,首先可以從Windows系統(tǒng)中找到所有的HIVE文件,并一一列舉出來(lái),如圖2 所示,其中“群組名”就代表各個(gè)注冊(cè)表項(xiàng)對(duì)應(yīng)的HIVE文件的名稱,“當(dāng)前大小”就代表各個(gè)HIVE文件當(dāng)前占用的空間的大小(其中包含了無(wú)效數(shù)據(jù)占用的空間)。當(dāng)用戶點(diǎn)擊右上角的 “分析注冊(cè)表”之后,就可以對(duì)各個(gè)HIVE文件進(jìn)行分析,計(jì)算出各個(gè)HIVE文件整理后的大小和能夠優(yōu)化的比率,并展現(xiàn)給用戶,如圖3所示。接下來(lái),如果用戶點(diǎn)擊“立即優(yōu)化”按鈕, 可以在界面中給出需要重新啟動(dòng)計(jì)算機(jī)的提示,如圖4所示。如果用戶點(diǎn)擊“是”,則相當(dāng)于用戶發(fā)出了整理注冊(cè)表文件的請(qǐng)求,此時(shí),就可以執(zhí)行步驟SlOl至S103,重新組合其物理存儲(chǔ)結(jié)構(gòu),將無(wú)法利用的小塊存儲(chǔ)區(qū)徹底釋放掉,然后重新啟動(dòng)系統(tǒng),注冊(cè)表碎片整理完成。 與本發(fā)明實(shí)施例提供的注冊(cè)表文件整理方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種注冊(cè)表文件整理裝置,參見(jiàn)圖5,該裝置包括
目標(biāo)文件獲取單元501,用于當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件; 新注冊(cè)表文件生成單元502,用于將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中,生成新的注冊(cè)表文件;
通知單元503,用于通知操作系統(tǒng)將所述新的注冊(cè)表文件作為注冊(cè)表文件。具體實(shí)現(xiàn)時(shí),目標(biāo)文件獲取單元501具體可以包括
新建文件單元,用于當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),新建文件,將所述新建的文件作為所述目標(biāo)文件。由于注冊(cè)表信息通常是進(jìn)行分類保存的,因此,可以分別針對(duì)不同的注冊(cè)表項(xiàng),分別新建一文件,此時(shí),新建文件單元具體可以用于
當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),查找原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE 文件,并為各注冊(cè)表項(xiàng)分別新建一文件;
相應(yīng)的,新注冊(cè)表生成單元502具體可以用于
對(duì)于各注冊(cè)表項(xiàng),將原HIVE文件中的有效數(shù)據(jù)存放到新建的文件中,綜合各注冊(cè)表項(xiàng)對(duì)應(yīng)的新建文件,生成新的注冊(cè)表文件。為了在用戶決定是否需要對(duì)注冊(cè)表文件進(jìn)行整理之前,給用戶提供參考,該裝置還可以包括
確定單元,用于查找到原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE文件之后,根據(jù)每個(gè)注冊(cè)表項(xiàng)的HIVE文件實(shí)際占用的空間以及HIVE文件中的有效數(shù)據(jù)所占用的空間,確定每個(gè)注冊(cè)表項(xiàng)在整理后所占的空間,以及整理后優(yōu)化的比例;
展現(xiàn)單元,用于將每個(gè)注冊(cè)表項(xiàng)在整理前后所占的空間,以及整理后優(yōu)化的比例展現(xiàn)給用戶。為了進(jìn)一步提高系統(tǒng)性能,該裝置還可以包括
連續(xù)存放單元,用于將原注冊(cè)表文件中被分散保存到磁盤不同位置的同一注冊(cè)表信息的數(shù)據(jù)連續(xù)存放。此外,該裝置還可以包括
刪除單元,用于將原注冊(cè)表文件刪除。在實(shí)際應(yīng)用中,可以通過(guò)多種方式來(lái)確定是否需要對(duì)注冊(cè)表文件進(jìn)行整理,具體的,目標(biāo)文件獲取單元501可以包括
第一檢測(cè)子單元,用于檢測(cè)用戶是否發(fā)出整理注冊(cè)表文件的請(qǐng)求,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理,獲取目標(biāo)文件;或者,
第二檢測(cè)子單元,用于檢測(cè)原注冊(cè)表文件占用的空間是否達(dá)到預(yù)置的閾值,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理,獲取目標(biāo)文件??傊?,通過(guò)本發(fā)明實(shí)施例提供的注冊(cè)表文件整理裝置,如果需要對(duì)注冊(cè)表文件進(jìn)行整理,則會(huì)獲取目標(biāo)文件,然后將原注冊(cè)表文件中的有效數(shù)據(jù)保存到目標(biāo)文件中,這樣, 就可以生成新的注冊(cè)表文件,然后將其作為注冊(cè)表文件。在這一過(guò)程中,由于僅將有效數(shù)據(jù)保存到新的文件中,這樣,就可以使得新的注冊(cè)表文件中不再存在無(wú)效數(shù)據(jù),因此,相當(dāng)于對(duì)注冊(cè)表碎片進(jìn)行了整理,有利于提高系統(tǒng)性能。需要說(shuō)明的是,本發(fā)明實(shí)施例所述的裝置是與前述方法實(shí)施例相對(duì)應(yīng)的,因此,裝置實(shí)施例中的未詳述部分可以參見(jiàn)方法實(shí)施例中的介紹,這里不再贅述。以上對(duì)本發(fā)明所提供的 一種注冊(cè)表文件整理方法及裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種注冊(cè)表文件整理方法,其特征在于,包括 當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件;將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中,生成新的注冊(cè)表文件; 通知操作系統(tǒng)將所述新的注冊(cè)表文件作為注冊(cè)表文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件包括當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),新建文件,將所述新建的文件作為所述目標(biāo)文件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),新建文件包括當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),查找原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE 文件,并為各注冊(cè)表項(xiàng)分別新建一文件;所述將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中,生成新的注冊(cè)表文件包括對(duì)于各注冊(cè)表項(xiàng),將原HIVE文件中的有效數(shù)據(jù)存放到對(duì)應(yīng)各注冊(cè)表項(xiàng)新建的文件中, 綜合各注冊(cè)表項(xiàng)對(duì)應(yīng)的新建文件,生成新的注冊(cè)表文件。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,查找到原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE文件之后還包括根據(jù)每個(gè)注冊(cè)表項(xiàng)的HIVE文件實(shí)際占用的空間以及HIVE文件中的有效數(shù)據(jù)所占用的空間,確定每個(gè)注冊(cè)表項(xiàng)在整理后所占的空間,以及整理后優(yōu)化的比例;將每個(gè)注冊(cè)表項(xiàng)在整理前后所占的空間,以及整理后優(yōu)化的比例展現(xiàn)給用戶。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括將原注冊(cè)表文件中被分散保存到磁盤不同位置的同一注冊(cè)表信息的數(shù)據(jù)連續(xù)存放。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí)包括檢測(cè)用戶是否發(fā)出整理注冊(cè)表文件的請(qǐng)求,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理; 或者,檢測(cè)原注冊(cè)表文件占用的空間是否達(dá)到預(yù)置的閾值,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理。
7.—種注冊(cè)表文件整理裝置,其特征在于,包括目標(biāo)文件獲取單元,用于當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件; 新注冊(cè)表文件生成單元,用于將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中, 生成新的注冊(cè)表文件;通知單元,用于通知操作系統(tǒng)將所述新的注冊(cè)表文件作為注冊(cè)表文件。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述目標(biāo)文件獲取單元包括新建文件單元,用于當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),新建文件,將所述新建的文件作為所述目標(biāo)文件。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于 所述新建文件單元具體用于當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),查找原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE文件,并為各注冊(cè)表項(xiàng)分別新建一文件;所述新注冊(cè)表生成單元具體用于對(duì)于各注冊(cè)表項(xiàng),將原HIVE文件中的有效數(shù)據(jù)存放到對(duì)應(yīng)各注冊(cè)表項(xiàng)新建的文件中, 綜合各注冊(cè)表項(xiàng)對(duì)應(yīng)的新建文件,生成新的注冊(cè)表文件。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括確定單元,用于查找到原注冊(cè)表文件中的注冊(cè)表項(xiàng)及其對(duì)應(yīng)的HIVE文件之后,根據(jù)每個(gè)注冊(cè)表項(xiàng)的HIVE文件實(shí)際占用的空間以及HIVE文件中的有效數(shù)據(jù)所占用的空間,確定每個(gè)注冊(cè)表項(xiàng)在整理后所占的空間,以及整理后優(yōu)化的比例;展現(xiàn)單元,用于將每個(gè)注冊(cè)表項(xiàng)在整理前后所占的空間,以及整理后優(yōu)化的比例展現(xiàn)給用戶。
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括連續(xù)存放單元,用于將原注冊(cè)表文件中被分散保存到磁盤不同位置的同一注冊(cè)表信息的數(shù)據(jù)連續(xù)存放。
12.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述目標(biāo)文件獲取單元包括第一檢測(cè)子單元,用于檢測(cè)用戶是否發(fā)出整理注冊(cè)表文件的請(qǐng)求,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理,獲取目標(biāo)文件;或者,第二檢測(cè)子單元,用于檢測(cè)原注冊(cè)表文件占用的空間是否達(dá)到預(yù)置的閾值,如果是,則需要對(duì)注冊(cè)表文件進(jìn)行整理,獲取目標(biāo)文件。
全文摘要
本發(fā)明公開(kāi)了一種注冊(cè)表文件整理方法及裝置,其中,所述方法包括當(dāng)需要對(duì)注冊(cè)表文件進(jìn)行整理時(shí),獲取目標(biāo)文件;將原注冊(cè)表文件中的有效數(shù)據(jù)保存到所述目標(biāo)文件中,生成新的注冊(cè)表文件;通知操作系統(tǒng)將所述新的注冊(cè)表文件作為注冊(cè)表文件。通過(guò)本發(fā)明,能夠減少注冊(cè)表文件中的碎片,從而提高系統(tǒng)性能。
文檔編號(hào)G06F17/30GK102346769SQ20111028018
公開(kāi)日2012年2月8日 申請(qǐng)日期2011年9月20日 優(yōu)先權(quán)日2011年9月20日
發(fā)明者于天佐, 劉科, 唐智, 陸坡, 陳佃曉, 陳耀攀 申請(qǐng)人:奇智軟件(北京)有限公司