本發(fā)明涉及存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種監(jiān)控?zé)狳c(diǎn)方法及裝置。
背景技術(shù):
現(xiàn)在大多數(shù)的文件系統(tǒng)的文件或目錄在存儲(chǔ)器中的存儲(chǔ)空間的分配都采用的是索引節(jié)點(diǎn)+數(shù)據(jù)塊的方法,在索引節(jié)點(diǎn)中存儲(chǔ)文件或目錄的元數(shù)據(jù)和文件的數(shù)據(jù)塊號(hào),在對(duì)應(yīng)的數(shù)據(jù)塊中存放文件或目錄的具體內(nèi)容,每一個(gè)文件或目錄都有一個(gè)索引節(jié)點(diǎn),根據(jù)文件大小確定需要多少個(gè)數(shù)據(jù)塊。
由于受文件或目錄分布的影響,不同區(qū)域之間會(huì)存在一定的熱點(diǎn)關(guān)聯(lián)。在進(jìn)行文件系統(tǒng)的熱點(diǎn)數(shù)據(jù)識(shí)別時(shí),通常以數(shù)據(jù)塊為粒度統(tǒng)計(jì)每個(gè)數(shù)據(jù)塊的熱度,而無(wú)法判斷文件是否為熱點(diǎn),也無(wú)法識(shí)別出往上一層的目錄是否為熱點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例中提供了一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法及裝置,以解決現(xiàn)有技術(shù)中的文件系統(tǒng)中只能識(shí)別數(shù)據(jù)塊是否為熱點(diǎn)而無(wú)法識(shí)別文件以及目錄是否為熱點(diǎn)的問(wèn)題。
為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例公開(kāi)了如下技術(shù)方案:
第一方面,本發(fā)明實(shí)施例提供了一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法,所述方法應(yīng)用在存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括處理器,所述方法由所述處理器執(zhí)行,包括:首先監(jiān)控多個(gè)對(duì)象的訪問(wèn)熱度,所述多個(gè)對(duì)象同屬于一個(gè)目錄,每個(gè)對(duì)象具有對(duì)應(yīng)的熱點(diǎn)標(biāo)志位,所述熱點(diǎn)標(biāo)志位用于表示對(duì)應(yīng)的對(duì)象的訪問(wèn)熱度,所述對(duì)象包括文件或目錄;然后確定所述多個(gè)對(duì)象中的一個(gè)或多個(gè)熱點(diǎn)對(duì)象,所述熱點(diǎn)對(duì)象是訪問(wèn)熱度超過(guò)預(yù)設(shè)的熱度閾值的對(duì)象;根據(jù)所述熱點(diǎn)對(duì)象的數(shù)量、所述多個(gè)對(duì)象的總數(shù)量以及預(yù)設(shè)的比例閾值確定所述目錄是熱點(diǎn)目錄;確定所述多個(gè)對(duì)象所在的所述目錄;再設(shè)置所述目錄的熱點(diǎn)標(biāo)志位;最后根據(jù)所述目錄的熱點(diǎn)標(biāo)志位監(jiān)控所述目錄的訪問(wèn)熱度。
結(jié)合第一方面,在第一方面第一種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)系統(tǒng)還包括緩存;所述緩存保存有鏈表,所述鏈表包括多個(gè)表項(xiàng),每個(gè)表項(xiàng)對(duì)應(yīng)一個(gè)對(duì)象,所述每個(gè)對(duì)象具有對(duì)象ID;所述確定所述多個(gè)對(duì)象所在的所述目錄包括:首先根據(jù)所述對(duì)象ID以及預(yù)設(shè)算法確定所述對(duì)象對(duì)應(yīng)的表項(xiàng);然后從所述表項(xiàng)中獲取所述對(duì)象對(duì)應(yīng)的對(duì)象信息;最后根據(jù)所述對(duì)象信息確定所述對(duì)象所在的目錄。
結(jié)合第一方面,在第一方面第二種可能的實(shí)現(xiàn)方式中,所述對(duì)象信息包括所述對(duì)象在預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的深度信息、所述對(duì)象在所述預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的寬度信息、屬于所述對(duì)象的子目錄數(shù)量和屬于所述對(duì)象的子對(duì)象數(shù)量。
結(jié)合第一方面,在第一方面第三種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)算法包括對(duì)所述對(duì)象ID進(jìn)行取模運(yùn)算,得到運(yùn)算值,根據(jù)所述運(yùn)算值與偏移量確定所述對(duì)象在所述鏈表中對(duì)應(yīng)的表項(xiàng)。
第二方面,本發(fā)明實(shí)施例提供了一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法,所述方法應(yīng)用在存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括處理器,所述方法由所述處理器執(zhí)行,包括:所述處理器首先監(jiān)控所述存儲(chǔ)系統(tǒng)中保存的對(duì)象的訪問(wèn)熱度,所述對(duì)象包括文件或者目錄,并且所述對(duì)象包括多個(gè)子對(duì)象;然后確定所述對(duì)象的訪問(wèn)熱度未達(dá)到預(yù)設(shè)的熱度閾值時(shí),設(shè)置所述對(duì)象包括的每個(gè)子對(duì)象對(duì)應(yīng)的熱點(diǎn)標(biāo)志位;最后判斷每個(gè)子對(duì)象對(duì)應(yīng)的熱點(diǎn)標(biāo)志位是否達(dá)到所述預(yù)設(shè)的熱度閾值,以確定所述子對(duì)象是否是熱點(diǎn)對(duì)象。
第三方面,本發(fā)明實(shí)施例提供了一種監(jiān)控?zé)狳c(diǎn)對(duì)象的裝置,包括:第一監(jiān)控模塊、對(duì)象確定模塊、第一確定模塊、第二確定模塊、設(shè)置模塊和第二監(jiān)控模塊;其中,第一監(jiān)控模塊,用于監(jiān)控多個(gè)對(duì)象的訪問(wèn)熱度,所述多個(gè)對(duì)象同屬于一個(gè)目錄,每個(gè)對(duì)象具有對(duì)應(yīng)的熱點(diǎn)標(biāo)志位,所述熱點(diǎn)標(biāo)志位用于表示對(duì)應(yīng)的對(duì)象的訪問(wèn)熱度,所述對(duì)象包括文件或目錄;對(duì)象確定模塊,用于確定所述多個(gè)對(duì)象中的一個(gè)或多個(gè)熱點(diǎn)對(duì)象,所述熱點(diǎn)對(duì)象是訪問(wèn)熱度超過(guò)預(yù)設(shè)的熱度閾值的對(duì)象;第一確定模塊,用于根據(jù)所述熱點(diǎn)對(duì)象的數(shù)量、所述多個(gè)對(duì)象的總數(shù)量以及預(yù)設(shè)的比例閾值確定所述目錄是熱點(diǎn)目錄;第二確定模塊,用于確定所述多個(gè)對(duì)象所在的所述目錄;設(shè)置模塊,用于設(shè)置所述目錄的熱點(diǎn)標(biāo)志位;第二監(jiān)控模塊,用于根據(jù)所述目錄的熱點(diǎn)標(biāo)志位監(jiān)控所述目錄的訪問(wèn)熱度。
結(jié)合第三方面,在第三方面第一種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)系統(tǒng)還包括緩存;所述緩存保存有鏈表,所述鏈表包括多個(gè)表項(xiàng),每個(gè)表項(xiàng)對(duì)應(yīng)一個(gè)對(duì)象,所述每個(gè)對(duì)象具有對(duì)象ID;所述第二確定模塊用于:根據(jù)所述對(duì)象ID以及預(yù)設(shè)算法確定所述對(duì)象對(duì)應(yīng)的表項(xiàng);從所述表項(xiàng)中獲取所述對(duì)象對(duì)應(yīng)的對(duì)象信息;根據(jù)所述對(duì)象信息確定所述對(duì)象所在的目錄。
結(jié)合第三方面,在第三方面第二種可能的實(shí)現(xiàn)方式中,所述對(duì)象信息包括所述對(duì)象在預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的深度信息、所述對(duì)象在所述預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的寬度信息、屬于所述對(duì)象的子目錄數(shù)量和屬于所述對(duì)象的子對(duì)象數(shù)量。
結(jié)合第三方面,在第三方面第三種可能的實(shí)現(xiàn)方式中,所述預(yù)設(shè)算法包括對(duì)所述對(duì)象ID進(jìn)行取模運(yùn)算,得到運(yùn)算值,根據(jù)所述運(yùn)算值與偏移量確定所述對(duì)象在所述鏈表中對(duì)應(yīng)的表項(xiàng)。
第四方面,本發(fā)明實(shí)施例提供了一種監(jiān)控?zé)狳c(diǎn)對(duì)象的裝置,所述方法應(yīng)用在存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括處理器,所述處理器包括:熱度監(jiān)控模塊、標(biāo)識(shí)位設(shè)置模塊和判斷模塊;其中,所述熱度監(jiān)控模塊,用于監(jiān)控所述存儲(chǔ)系統(tǒng)中保存的對(duì)象的訪問(wèn)熱度,所述對(duì)象包括文件或者目錄,并且所述對(duì)象包括多個(gè)子對(duì)象;所述標(biāo)識(shí)位設(shè)置模塊,用于確定所述對(duì)象的訪問(wèn)熱度未達(dá)到預(yù)設(shè)的熱度閾值時(shí),設(shè)置所述對(duì)象包括的每個(gè)子對(duì)象對(duì)應(yīng)的熱點(diǎn)標(biāo)志位;所述判斷模塊用于判斷每個(gè)子對(duì)象對(duì)應(yīng)的熱點(diǎn)標(biāo)志位是否達(dá)到所述預(yù)設(shè)的熱度閾值,以確定所述子對(duì)象是否是熱點(diǎn)對(duì)象。
本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:本發(fā)明首先通過(guò)監(jiān)控同屬于一個(gè)目錄的多個(gè)對(duì)象的訪問(wèn)熱度,可以在多個(gè)對(duì)象中確定一個(gè)或多個(gè)熱點(diǎn)對(duì)象,由于對(duì)象可以包括文件或者目錄,因此可以實(shí)現(xiàn)監(jiān)控樹(shù)形結(jié)構(gòu)當(dāng)前深度的文件或者目錄是否為熱點(diǎn),然后根據(jù)所述熱點(diǎn)對(duì)象的數(shù)量、所述多個(gè)對(duì)象的總數(shù)量以及預(yù)設(shè)的比例閾值,可以確定多個(gè)對(duì)象所屬的目錄是熱點(diǎn)目錄;這樣,可以實(shí)現(xiàn)監(jiān)控當(dāng)前深度減一的深度的目錄是否為熱點(diǎn),最后,可以在確定對(duì)象所屬的目錄后,設(shè)置所述目錄的熱點(diǎn)標(biāo)志位;根據(jù)所述目錄的熱點(diǎn)標(biāo)志位監(jiān)控所述目錄的訪問(wèn)熱度,這樣,在監(jiān)控對(duì)象目錄是否為熱點(diǎn)的基礎(chǔ)上,也可根據(jù)文件系統(tǒng)下的樹(shù)形結(jié)構(gòu),根據(jù)系統(tǒng)當(dāng)前深度的目錄或者文件的熱點(diǎn)分布情況,自動(dòng)將監(jiān)控深度由多個(gè)對(duì)象調(diào)整為監(jiān)控對(duì)象所屬的目錄,經(jīng)過(guò)多次循環(huán)執(zhí)行本發(fā)明實(shí)施例提供的該方法,可以實(shí)現(xiàn)識(shí)別整個(gè)文件系統(tǒng)中每一深度的對(duì)象的熱點(diǎn)分布情況。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說(shuō)明
此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本發(fā)明的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本發(fā)明的原理。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有
技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,對(duì)于本領(lǐng)域普通技術(shù)人
員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為發(fā)明實(shí)施例提供的一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為文件系統(tǒng)的樹(shù)形目錄結(jié)構(gòu)及熱點(diǎn)分布示意圖;
圖3為本發(fā)明實(shí)施例提供的一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的一種確定樹(shù)形目錄結(jié)構(gòu)的流程示意圖;
圖5為圖3中步驟S104的流程示意圖;
圖6為本發(fā)明實(shí)施例提供的一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法的示意圖;
圖7為本發(fā)明實(shí)施例提供的另一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法的流程示意圖;
圖8為本發(fā)明實(shí)施例提供的一種監(jiān)控?zé)狳c(diǎn)對(duì)象的裝置的一種結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供的一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法,可以應(yīng)用在存儲(chǔ)系統(tǒng)中,如圖1所示,存儲(chǔ)系統(tǒng)21可以包括當(dāng)前技術(shù)已知的任何計(jì)算設(shè)備,如存儲(chǔ)陣列的控制器、臺(tái)式計(jì)算機(jī)等等。下面介紹存儲(chǔ)系統(tǒng)21的硬件組成結(jié)構(gòu),請(qǐng)參考圖1,圖1是本發(fā)明實(shí)施例存儲(chǔ)系統(tǒng)21的結(jié)構(gòu)示意圖。如圖1所示存儲(chǔ)系統(tǒng)21中包括:控制器30和磁盤31,所述控制器30中包括文件系統(tǒng)210、處理器(processor)118、緩存(cache)120以及存儲(chǔ)器(memory)122、通信總線(簡(jiǎn)稱總線)126以及通信接口(Communication Interface)128,可以用于執(zhí)行文件處理請(qǐng)求的各種操作,例如創(chuàng)建文件操作、打開(kāi)文件操作、讀文件操作、寫(xiě)文件操作等等,處理器118、緩存120、存儲(chǔ)器122以及通信接口128通過(guò)通信總線126完成相互間的通信。通信接口128,用于與磁盤31通信。
文件系統(tǒng)運(yùn)行在控制器30中,是一種存儲(chǔ)和組織存儲(chǔ)設(shè)備中數(shù)據(jù)的方法,它使得對(duì)數(shù)據(jù)的訪問(wèn)和查找變得容易,文件系統(tǒng)使用文件和樹(shù)形目錄的抽象邏輯概念代替了磁盤等物理設(shè)備使用的數(shù)據(jù)塊的概念。存儲(chǔ)設(shè)備在使用文件系統(tǒng)來(lái)保存數(shù)據(jù)后,用戶不必關(guān)心數(shù)據(jù)實(shí)際保存在磁盤的地址為多少的數(shù)據(jù)塊上,只需要記住這個(gè)文件的所屬目錄和文件名。同樣的,在寫(xiě)入新數(shù)據(jù)之前,用戶不必關(guān)心磁盤上的那個(gè)塊地址沒(méi)有被使用,磁盤上的存儲(chǔ)空間管理(分配和釋放)功能由文件系統(tǒng)自動(dòng)完成,用戶只需要記住數(shù)據(jù)被寫(xiě)入到了哪個(gè)文件中。需要說(shuō)明的是,雖然存儲(chǔ)在存儲(chǔ)設(shè)備中的數(shù)據(jù)是以文件的形式呈現(xiàn)給用戶的,然而文件在磁盤中存儲(chǔ)的單位仍然是數(shù)據(jù)塊。因此,一個(gè)文件可以包含多個(gè)數(shù)據(jù)塊。
在文件系統(tǒng)下的目錄和文件,可以用樹(shù)形結(jié)構(gòu)表示,如圖2所示,1級(jí)目錄下,有多個(gè)2級(jí)目錄,每個(gè)2級(jí)目錄下,有多個(gè)3級(jí)目錄,以此類推到最深一層的文件級(jí),樹(shù)形結(jié)構(gòu)越深,對(duì)象的粒度越小,對(duì)象的數(shù)目越多。文件系統(tǒng)的訪問(wèn)方式為,從1級(jí)目錄開(kāi)始,依次打開(kāi)2級(jí)目錄,……最后訪問(wèn)D+1級(jí)的文件。
存儲(chǔ)器122,用于存放程序124,存儲(chǔ)器122可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。可以理解的是,存儲(chǔ)器122可以為隨機(jī)存儲(chǔ)器(Random-Access Memory,RAM)、磁碟、硬盤、光盤、固態(tài)硬盤(Solid State Disk,SSD)或者非易失性存儲(chǔ)器等各種可以存儲(chǔ)程序代碼的非短暫性的(non-transitory)機(jī)器可讀介質(zhì)。
程序124可以包括程序代碼,所述程序代碼包括文件系統(tǒng)210、操作系統(tǒng)以及其他程序代碼。
緩存120(Cache)用于緩存從存儲(chǔ)系統(tǒng)10接收的數(shù)據(jù)或從磁盤31中讀取的數(shù)據(jù)。緩存120可以是RAM、ROM、閃存(Flash memory)或固態(tài)硬盤(Solid State Disk,SSD)等各種可以存儲(chǔ)數(shù)據(jù)的非短暫性的(non-transitory)機(jī)器可讀介質(zhì),在此不做限定。
另外,存儲(chǔ)器122和緩存120可以合設(shè)或者分開(kāi)設(shè)置,本發(fā)明實(shí)施例對(duì)此不做限定。
處理器118可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。在本發(fā)明實(shí)施例中,處理器118可以用于接收來(lái)自存儲(chǔ)系統(tǒng)10的各種文件處理請(qǐng)求,并且通過(guò)文件系統(tǒng)210執(zhí)行所述文件處理請(qǐng)求的各種操作,例如讀文件操作、寫(xiě)文件操作等等。
下面以存儲(chǔ)系統(tǒng)為例,對(duì)本發(fā)明實(shí)施例提供的監(jiān)控?zé)狳c(diǎn)對(duì)象的方法進(jìn)行說(shuō)明。圖3為本發(fā)明實(shí)施例提供的一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法的流程示意圖。圖3所示該監(jiān)控?zé)狳c(diǎn)對(duì)象的方法可以應(yīng)用于存儲(chǔ)系統(tǒng)中,例如:圖2中的存儲(chǔ)系統(tǒng)21,并且該監(jiān)控?zé)狳c(diǎn)對(duì)象的方法由存儲(chǔ)系統(tǒng)21中的處理器118執(zhí)行,如圖3所示,該方法可以包括以下步驟。
在步驟S101中,監(jiān)控多個(gè)對(duì)象的訪問(wèn)熱度。
在本發(fā)明實(shí)施例中,所述多個(gè)對(duì)象同屬于一個(gè)目錄,也就是說(shuō),在本發(fā)明實(shí)施例中,目錄可以為多個(gè)對(duì)象的父節(jié)點(diǎn),每個(gè)對(duì)象具有對(duì)應(yīng)的熱點(diǎn)標(biāo)志位,所述熱點(diǎn)標(biāo)志位用于表示對(duì)應(yīng)的對(duì)象的訪問(wèn)熱度,所述對(duì)象包括文件或目錄,文件可以指文件系統(tǒng)樹(shù)形目錄中的葉子節(jié)點(diǎn)等,目錄可以指文件系統(tǒng)樹(shù)形目錄中除葉子節(jié)點(diǎn)之外的節(jié)點(diǎn)等。
在該步驟中,處理器可以通過(guò)監(jiān)控?zé)狳c(diǎn)標(biāo)志位監(jiān)控文件系統(tǒng)中多個(gè)對(duì)象的訪問(wèn)熱度,例如:當(dāng)某一對(duì)象被用戶訪問(wèn)時(shí),對(duì)該區(qū)域的熱點(diǎn)標(biāo)志位進(jìn)行累加計(jì)數(shù),處理器可以讀取熱點(diǎn)標(biāo)志位計(jì)數(shù)得到該對(duì)象的訪問(wèn)熱度,按照此種方式,可以得到多個(gè)對(duì)象的訪問(wèn)熱度。
在步驟S102中,確定所述多個(gè)對(duì)象中的一個(gè)或多個(gè)熱點(diǎn)對(duì)象。
在本發(fā)明實(shí)施例中,所述熱點(diǎn)對(duì)象是訪問(wèn)熱度超過(guò)預(yù)設(shè)的熱度閾值的對(duì)象。
熱度閾值的確定方式為:可以首先獲取多個(gè)對(duì)象的熱點(diǎn)標(biāo)志位計(jì)數(shù),然后計(jì)算多個(gè)對(duì)象的熱點(diǎn)標(biāo)志位計(jì)數(shù)的均值M,再將均值M*閾值Q得到熱度閾值,閾值Q可以為預(yù)先設(shè)置的數(shù)值。例如:假設(shè)多個(gè)對(duì)象的熱點(diǎn)標(biāo)志位計(jì)數(shù)分別為185、21、97、65、88、177、206、32和199,則計(jì)算得到的均值M為107,假設(shè)閾值Q為1,則熱度閾值為107,然后逐一將多個(gè)對(duì)象的訪問(wèn)熱度與熱度閾值比較,訪問(wèn)熱度大于該熱度閾值的對(duì)象可以確定為熱點(diǎn)對(duì)象,例如:185、177、206和199,閾值Q的大小也可以根據(jù)實(shí)際情況進(jìn)行調(diào)整,例如閾值Q也可以為0.8或者1.2等等。
在該步驟中,處理器可以將監(jiān)控得到的多個(gè)對(duì)象的訪問(wèn)熱度分別與熱度閾值比較,并可以將訪問(wèn)熱度大于熱度閾值的對(duì)象確定為熱點(diǎn)對(duì)象。
在步驟S103中,根據(jù)所述熱點(diǎn)對(duì)象的數(shù)量、所述多個(gè)對(duì)象的總數(shù)量以及預(yù)設(shè)的比例閾值確定所述目錄是熱點(diǎn)目錄。
在該步驟中,處理器可以首先統(tǒng)計(jì)文件系統(tǒng)中確定的多個(gè)熱點(diǎn)對(duì)象的數(shù)量以及監(jiān)控的多個(gè)對(duì)象的總數(shù)量,并獲取預(yù)設(shè)的比例閾值,預(yù)設(shè)的比例閾值可以為根據(jù)實(shí)際需要預(yù)先設(shè)置的數(shù)值,例如50%、80%等等,然后計(jì)算熱點(diǎn)對(duì)象的數(shù)量占多個(gè)對(duì)象的總數(shù)量的百分比,然后將計(jì)算得到的百分比與預(yù)設(shè)的比例閾值進(jìn)行比較,當(dāng)計(jì)算得到的百分比大于預(yù)設(shè)的比例閾值時(shí),可以確定多個(gè)對(duì)象所屬的目錄為熱點(diǎn)目錄。
在步驟S104中,確定所述多個(gè)對(duì)象所在的所述目錄。
在該步驟中,處理器可以在文件系統(tǒng)的樹(shù)形目錄中確定多個(gè)對(duì)象所屬的目錄。
在本發(fā)明實(shí)施例中,所述存儲(chǔ)系統(tǒng)還包括緩存;所述緩存保存有鏈表,在實(shí)際應(yīng)用中,鏈表可以指哈希鏈表等,所述鏈表包括多個(gè)表項(xiàng),每個(gè)表項(xiàng)對(duì)應(yīng)一個(gè)對(duì)象,每個(gè)表項(xiàng)中存儲(chǔ)有一個(gè)對(duì)象的對(duì)象信息,對(duì)象信息可以指每個(gè)對(duì)象在文件系統(tǒng)樹(shù)形目錄中的深度信息、所述對(duì)象在所述文件系統(tǒng)樹(shù)形目錄中的寬度信息、屬于所述對(duì)象的子目錄數(shù)量和屬于所述對(duì)象的子對(duì)象數(shù)量,所述每個(gè)對(duì)象具有對(duì)象ID,例如,文件1、文件2或者目錄1等等。
由于有時(shí)用戶會(huì)通過(guò)一些創(chuàng)建操作或者刪除操作的方式創(chuàng)建目錄或者刪除目錄,因此,在每個(gè)統(tǒng)計(jì)周期到達(dá)時(shí),逐個(gè)根據(jù)目錄ID查找鏈表內(nèi)對(duì)應(yīng)的表項(xiàng)中的對(duì)象信息,或者獲取鏈表內(nèi)所有表項(xiàng)內(nèi)的對(duì)象信息,并根據(jù)鏈表內(nèi)所有對(duì)象信息確定文件系統(tǒng)的樹(shù)形目錄結(jié)構(gòu),這里的統(tǒng)計(jì)周期可以為1.5小時(shí)、2小時(shí)或者3小時(shí)等等。
如圖4所示,例如,假設(shè)首先獲取到目錄1的對(duì)象信息為{2,1,6,20},當(dāng)獲取到的目錄2的對(duì)象信息為{1,1,2,0}、目錄3的對(duì)象信息為{3,3,0,80}時(shí),則由于目錄1的深度信息為2,目錄2的深度信息為1,目錄3的深度信息為3,則可以確定目錄2為目錄1的父節(jié)點(diǎn),目錄3為目錄1的子節(jié)點(diǎn)。
再例如,當(dāng)獲取到目錄4的對(duì)象信息和目錄5的對(duì)象信息,目錄4的對(duì)象信息為{2,2,3,10}和目錄5的對(duì)象信息為{3,1,0,80},由于目錄4的深度信息為2,則可以確定目錄4與目錄1為相同深度,又由于目錄4的寬度信息為2,目錄1的寬度信息為1,假設(shè)每一深度中各個(gè)目錄均按照寬度信息排列,因此目錄1(寬度信息為1)位于目錄4(寬度信息為2)之前;由于目錄3的深度信息也是3,則可以確定目錄5和目錄3相同等級(jí),且目錄5位于目錄3之前,且目錄5和目錄3之間還會(huì)存在其它目錄,這里不再距離說(shuō)明。
再例如,當(dāng)獲取到目錄6的對(duì)象信息為{3,4,0,80},則可以確定目錄6的與目錄5和目錄3的深度相同,且位于目錄3之后,但是由于目錄1的子目錄數(shù)為3,所以目錄6應(yīng)為目錄4的子節(jié)點(diǎn),按照此種方式,可以確定整個(gè)文件系統(tǒng)內(nèi)的樹(shù)形目錄結(jié)構(gòu)。
如圖5所示,所述步驟S104包括以下步驟。
在步驟S201中,根據(jù)所述對(duì)象ID以及預(yù)設(shè)算法確定所述對(duì)象對(duì)應(yīng)的表項(xiàng)。
在該步驟中,所述預(yù)設(shè)算法包括對(duì)所述對(duì)象ID進(jìn)行取模運(yùn)算,得到運(yùn)算值,處理器可以根據(jù)所述運(yùn)算值與偏移量確定所述對(duì)象在所述鏈表中對(duì)應(yīng)的表項(xiàng)。
在本發(fā)明實(shí)施例中,預(yù)設(shè)算法可以用如下表達(dá)式表示:f(key)=key%N+offset。
其中,key可以為對(duì)象ID,f(key)為對(duì)象在鏈表中所在的表項(xiàng),N為鏈表中的N個(gè)表項(xiàng),offset偏移量可以指對(duì)象在鏈表中的偏移值。
在步驟S202中,從所述表項(xiàng)中獲取所述對(duì)象對(duì)應(yīng)的對(duì)象信息。
在本發(fā)明實(shí)施例中,所述對(duì)象信息包括所述對(duì)象在預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的深度信息、所述對(duì)象在所述預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的寬度信息、屬于所述對(duì)象的子目錄數(shù)量和屬于所述對(duì)象的子對(duì)象數(shù)量。
在該步驟中,處理器可以從根據(jù)f(key)確定的表項(xiàng)中獲取對(duì)象對(duì)應(yīng)的深度信息、寬度信息、子目錄數(shù)量和子對(duì)象數(shù)量。
在步驟S203中,根據(jù)所述對(duì)象信息確定所述對(duì)象所在的目錄。
在該步驟中,處理器可以根據(jù)對(duì)象信息確定對(duì)象所在的文件系統(tǒng)內(nèi)樹(shù)形結(jié)構(gòu)中的目錄,例如,假設(shè)對(duì)象信息為{3,1,0,80}則根據(jù)該對(duì)象信息,可以確定對(duì)象所在的目錄為{2,1,3,20},相當(dāng)于在預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中深度減小1級(jí)。
在步驟S105中,設(shè)置所述目錄的熱點(diǎn)標(biāo)志位。
在該步驟中,處理器可以在存儲(chǔ)器或者緩存中為目錄設(shè)置對(duì)應(yīng)的熱點(diǎn)標(biāo)志位。
在步驟S106中,根據(jù)所述目錄的熱點(diǎn)標(biāo)志位監(jiān)控所述目錄的訪問(wèn)熱度。
在該步驟中,處理器可以通過(guò)監(jiān)控目錄的熱點(diǎn)標(biāo)志位,監(jiān)控該目錄的訪問(wèn)熱度。
在實(shí)際應(yīng)用中,當(dāng)通過(guò)監(jiān)控得到目錄的訪問(wèn)熱度后(相當(dāng)于執(zhí)行步驟S101后),可以繼續(xù)執(zhí)行步驟S102確定所述多個(gè)對(duì)象中的一個(gè)或多個(gè)熱點(diǎn)對(duì)象,步驟S103……,循環(huán)執(zhí)行直至任一級(jí)的目錄不是熱點(diǎn)目錄。如圖6所示,假設(shè)熱點(diǎn)對(duì)象為文件1、文件2到文件m,且熱點(diǎn)對(duì)象的數(shù)量與所述多個(gè)對(duì)象的總數(shù)量的比值超過(guò)預(yù)設(shè)的比例閾值,則可以確定文件1、文件2到文件m所屬的目錄5為熱點(diǎn)目錄,假設(shè)與目錄5相同深度的目錄3以及目錄5與目錄3之間的目錄均為熱點(diǎn)目錄,且熱點(diǎn)對(duì)象的數(shù)量與所述多個(gè)對(duì)象的總數(shù)量的比值超過(guò)預(yù)設(shè)的比例閾值,則目錄5至目錄3所屬的目錄1為熱點(diǎn)目錄。
當(dāng)存在任一級(jí)的目錄不是熱點(diǎn)目錄時(shí),如圖7所示,本發(fā)明實(shí)施例還提供一種監(jiān)控?zé)狳c(diǎn)對(duì)象的方法,所述方法應(yīng)用在存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括處理器,所述方法由所述處理器執(zhí)行,所述方法包括以下步驟。
在步驟S301中,監(jiān)控所述存儲(chǔ)系統(tǒng)中保存的對(duì)象的訪問(wèn)熱度。
在本發(fā)明實(shí)施例中,所述對(duì)象包括文件或者目錄,并且所述對(duì)象包括多個(gè)子對(duì)象。
在該步驟中,處理器可以將當(dāng)前正在監(jiān)控的對(duì)象確定為當(dāng)前存儲(chǔ)系統(tǒng)中保存的對(duì)象,并監(jiān)控該對(duì)象的訪問(wèn)熱度。
在步驟S302中,確定所述對(duì)象的訪問(wèn)熱度未達(dá)到預(yù)設(shè)的熱度閾值時(shí),設(shè)置所述對(duì)象包括的每個(gè)子對(duì)象對(duì)應(yīng)的熱點(diǎn)標(biāo)志位。
在該步驟中,如圖6所示,假設(shè)目錄1在某一時(shí)刻變?yōu)榉菬狳c(diǎn)目錄,則處理器此時(shí)需要設(shè)置目錄1的子對(duì)象目錄5、目錄3以及目錄5和目錄3之間的目錄的熱點(diǎn)標(biāo)志位。當(dāng)每次當(dāng)前監(jiān)控的對(duì)象不為熱點(diǎn)對(duì)象時(shí),處理器將當(dāng)前監(jiān)控的對(duì)象確定為所述對(duì)象的子對(duì)象,相當(dāng)于在預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中深度增加1級(jí)。
在步驟S303中,判斷每個(gè)子對(duì)象對(duì)應(yīng)的熱點(diǎn)標(biāo)志位是否達(dá)到所述預(yù)設(shè)的熱度閾值,以確定所述子對(duì)象是否是熱點(diǎn)對(duì)象。
在該步驟中,處理器可以通過(guò)判斷每個(gè)子對(duì)象的熱點(diǎn)標(biāo)志位是否達(dá)到預(yù)設(shè)的熱度閾值,確定該子對(duì)象是否為熱點(diǎn)對(duì)象,例如如圖6所示,可以通過(guò)判斷目錄3、目錄5和目錄3之間的目錄的熱點(diǎn)標(biāo)志位,確定目錄3、目錄5和目錄3是否為熱點(diǎn)對(duì)象。
在本發(fā)明實(shí)施例中,確定子對(duì)象是否為熱點(diǎn)對(duì)象相當(dāng)于執(zhí)行步驟S301,然后執(zhí)行步驟S302,不斷循環(huán)直至任一級(jí)的子對(duì)象為熱點(diǎn)對(duì)象。
如圖8所示,在本發(fā)明的又一實(shí)施例中,提供一種監(jiān)控?zé)狳c(diǎn)對(duì)象的裝置,包括:第一監(jiān)控模塊11、對(duì)象確定模塊12、第一確定模塊13、第二確定模塊14、設(shè)置模塊15和第二監(jiān)控模塊16。
第一監(jiān)控模塊11,用于監(jiān)控多個(gè)對(duì)象的訪問(wèn)熱度,所述多個(gè)對(duì)象同屬于一個(gè)目錄,每個(gè)對(duì)象具有對(duì)應(yīng)的熱點(diǎn)標(biāo)志位,所述熱點(diǎn)標(biāo)志位用于表示對(duì)應(yīng)的對(duì)象的訪問(wèn)熱度,所述對(duì)象包括文件或目錄。
對(duì)象確定模塊12,用于確定所述多個(gè)對(duì)象中的一個(gè)或多個(gè)熱點(diǎn)對(duì)象,所述熱點(diǎn)對(duì)象是訪問(wèn)熱度超過(guò)預(yù)設(shè)的熱度閾值的對(duì)象。
第一確定模塊13,用于根據(jù)所述熱點(diǎn)對(duì)象的數(shù)量、所述多個(gè)對(duì)象的總數(shù)量以及預(yù)設(shè)的比例閾值確定所述目錄是熱點(diǎn)目錄。
第二確定模塊14,用于確定所述多個(gè)對(duì)象所在的所述目錄。
設(shè)置模塊15,用于設(shè)置所述目錄的熱點(diǎn)標(biāo)志位。
第二監(jiān)控模塊16,用于根據(jù)所述目錄的熱點(diǎn)標(biāo)志位監(jiān)控所述目錄的訪問(wèn)熱度。
在本發(fā)明的又一實(shí)施例中,所述存儲(chǔ)系統(tǒng)還包括緩存;所述緩存保存有鏈表,所述鏈表包括多個(gè)表項(xiàng),每個(gè)表項(xiàng)對(duì)應(yīng)一個(gè)對(duì)象,所述每個(gè)對(duì)象具有對(duì)象ID;
所述第二確定模塊14用于:
根據(jù)所述對(duì)象ID以及預(yù)設(shè)算法確定所述對(duì)象對(duì)應(yīng)的表項(xiàng)。
在本發(fā)明實(shí)施例中,所述預(yù)設(shè)算法包括對(duì)所述對(duì)象ID進(jìn)行取模運(yùn)算,得到運(yùn)算值,根據(jù)所述運(yùn)算值與偏移量確定所述對(duì)象在所述鏈表中對(duì)應(yīng)的表項(xiàng)。
從所述表項(xiàng)中獲取所述對(duì)象對(duì)應(yīng)的對(duì)象信息。
在本發(fā)明實(shí)施例中,所述對(duì)象信息包括所述對(duì)象在預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的深度信息、所述對(duì)象在所述預(yù)設(shè)樹(shù)形目錄結(jié)構(gòu)中的寬度信息、屬于所述對(duì)象的子目錄數(shù)量和屬于所述對(duì)象的子對(duì)象數(shù)量。
根據(jù)所述對(duì)象信息確定所述對(duì)象所在的目錄。
圖8中的第一監(jiān)控模塊11、對(duì)象確定模塊12、第一確定模塊13、第二確定模塊14、設(shè)置模塊15和第二監(jiān)控模塊16所要實(shí)現(xiàn)的功能可以由圖1中的處理器118執(zhí)行程序124來(lái)實(shí)現(xiàn)。
本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例中的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
本說(shuō)明書(shū)中各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。尤其,對(duì)于無(wú)線通信設(shè)備實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例中的說(shuō)明即可。
以上所述的本發(fā)明實(shí)施方式并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。