亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種反向索引記錄的存儲(chǔ)方法及裝置的制造方法

文檔序號(hào):8223545閱讀:207來源:國知局
一種反向索引記錄的存儲(chǔ)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種反向索引記錄的存儲(chǔ)方法及裝置。
【背景技術(shù)】
[0002]在分布式文件系統(tǒng)中,目錄和一般文件都是文件系統(tǒng)對(duì)象,統(tǒng)稱為目錄項(xiàng)。每個(gè)目錄項(xiàng)的元數(shù)據(jù)信息稱為inode,inode中保存有包括目錄項(xiàng)的目錄項(xiàng)標(biāo)識(shí)(file identity,簡稱fid)在內(nèi)的屬性信息,fid是文件系統(tǒng)為目錄項(xiàng)分配的唯一標(biāo)識(shí),根據(jù)fid可以區(qū)分不同的目錄項(xiàng)以及定位出目錄項(xiàng)的對(duì)象。另外,每個(gè)目錄項(xiàng)還具有目錄項(xiàng)名,與fid不同,目錄項(xiàng)名由用戶生成,方便用戶訪問目錄項(xiàng)。
[0003]inode的一種存儲(chǔ)方式為內(nèi)嵌式存儲(chǔ),即:一個(gè)目錄項(xiàng)的inode和目錄項(xiàng)名被一起存儲(chǔ)在父目錄的目錄對(duì)象中,換言之,父目錄的目錄對(duì)象中存儲(chǔ)著所有子目錄項(xiàng)(子目錄或者文件)的目錄項(xiàng)名以及各個(gè)目錄項(xiàng)名對(duì)應(yīng)的inode。其中,父目錄的目錄對(duì)象以父目錄的fid命名,因此,只要知道一個(gè)目錄項(xiàng)的目錄項(xiàng)名以及其父目錄的fid,即可在父目錄的目錄對(duì)象中查詢出目錄項(xiàng)的fid,進(jìn)而定位出目錄項(xiàng)。
[0004]例如,在“/usr/bin”這一路徑中,“usr”是目錄名,“bin”是文件名,為了打開bin文件,有兩種途徑,一是從根目錄開始查找,二是從當(dāng)前目錄開始查找。假設(shè)從根目錄查找,從文件系統(tǒng)的超級(jí)塊中可以獲知根目錄的fid,定位出根目錄的目錄對(duì)象,在根目錄的目錄對(duì)象中查詢“usr”這一目錄名,確定出“usr”目錄的fid,然后定位出“usr”目錄的目錄對(duì)象,在“usr”目錄的目錄對(duì)象中查詢“bin”這一文件名,確定出“bin”文件的fid,進(jìn)而定位出“bin”文件的文件對(duì)象。
[0005]上述例子是一個(gè)正向索引的過程,但是,在某些場景中,需要通過目錄項(xiàng)的fid反向確定出目錄項(xiàng)的存儲(chǔ)路徑。例如,在網(wǎng)絡(luò)文件系統(tǒng)中,客戶端攜帶緩存目錄項(xiàng)的目錄項(xiàng)句柄(file_handle)向服務(wù)端發(fā)起對(duì)某個(gè)目錄項(xiàng)的操作,然而由于網(wǎng)絡(luò)文件系統(tǒng)的服務(wù)集群的某個(gè)節(jié)點(diǎn)發(fā)生了切換或者是服務(wù)端的緩存發(fā)生了淘汰,導(dǎo)致服務(wù)端的緩存中沒有file_handle對(duì)應(yīng)目錄項(xiàng)的元數(shù)據(jù)。此時(shí),服務(wù)端要在不被用戶感知的情況下繼續(xù)提供服務(wù),需要根據(jù)file_handle中內(nèi)嵌的目錄項(xiàng)的fid來反向確定出該目錄項(xiàng)的路徑信息。
[0006]為了能夠通過目錄項(xiàng)的fid反向確定出目錄項(xiàng)的存儲(chǔ)路徑,文件系統(tǒng)中保存有反向索引表,參照?qǐng)D1,反向索引表中的一條記錄保存有一個(gè)目錄項(xiàng)的fid和該目錄項(xiàng)的父目錄項(xiàng)的fid。因此,根據(jù)目錄項(xiàng)的fid查詢反向索引表可以確定出父目錄項(xiàng)的fid,而根據(jù)父目錄項(xiàng)的fid可以確定出更上一層目錄項(xiàng)的fid,依次類推,直至根目錄,即可獲得目錄項(xiàng)的完整路徑。
[0007]現(xiàn)有技術(shù)中,反向索引表由N個(gè)子表組成,并通過分布式哈希表技術(shù)將N個(gè)子表散列到各節(jié)點(diǎn)。在新建一個(gè)目錄項(xiàng)時(shí),就需要在反向索引表中增加一條有關(guān)該目錄項(xiàng)地fid的記錄。具體處理流程如下:
[0008](I)對(duì)新建目錄項(xiàng)的fid進(jìn)行哈希(HASH)運(yùn)算,得到一個(gè)HASH值,根據(jù)預(yù)設(shè)的HASH值與子表的對(duì)應(yīng)關(guān)系確定出記錄應(yīng)該存儲(chǔ)在哪個(gè)子表中;
[0009](2)讀取該子表中的所有B+Index對(duì)象,通過B+Index區(qū)間排序確定出記錄應(yīng)當(dāng)存儲(chǔ)在子表的哪個(gè)葉子對(duì)象中,以及應(yīng)當(dāng)存儲(chǔ)在該葉子對(duì)象的哪個(gè)位置;
[0010](3)在確定出的位置寫入記錄,并修改該葉子對(duì)象的位表信息;
[0011](4)如果fid值大于B+Index對(duì)象中記錄的邊界,還要更新B+Index對(duì)象區(qū)間邊界信息。
[0012]現(xiàn)有技術(shù)中上述存儲(chǔ)反向索引記錄的方法中,需要將fid進(jìn)行HASH運(yùn)算,根據(jù)HASH值將目錄項(xiàng)的反向索引記錄映射至N個(gè)子表中的一個(gè),由于HASH值非常離散導(dǎo)致磁盤1高度離散,降低了文件系統(tǒng)的運(yùn)行效率。

【發(fā)明內(nèi)容】

[0013]本發(fā)明實(shí)施例提供一種反向索引記錄的存儲(chǔ)方法及裝置,用于解決現(xiàn)有技術(shù)中存儲(chǔ)反向索引記錄時(shí)導(dǎo)致的磁盤1高度離散問題。
[0014]第一方面,本發(fā)明實(shí)施例提供了一種反向索引記錄的存儲(chǔ)方法,包括:
[0015]服務(wù)器在新建目錄項(xiàng)之后,獲取所述目錄項(xiàng)的第一目錄項(xiàng)標(biāo)識(shí)和所述目錄項(xiàng)的父目錄項(xiàng)的第二目錄項(xiàng)標(biāo)識(shí);
[0016]根據(jù)反向索引表中的對(duì)象與目錄項(xiàng)標(biāo)識(shí)的第一對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的對(duì)象為存儲(chǔ)所述目錄項(xiàng)的第一反向索引記錄的第一對(duì)象;
[0017]根據(jù)反向索引記錄在對(duì)象中的存儲(chǔ)位置與目錄項(xiàng)標(biāo)識(shí)的第二對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)位置為在所述第一對(duì)象中記錄所述第一反向索引記錄的第一位置;
[0018]在所述第一對(duì)象中的第一位置處寫入所述第一反向索引記錄,所述第一反向索引記錄中記錄有所述第一目錄項(xiàng)標(biāo)識(shí)和所述第二目錄項(xiàng)標(biāo)識(shí)。
[0019]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,在所述第一對(duì)象中的第一位置處寫入所述第一反向索引記錄之前,還包括:
[0020]獲取針對(duì)所述第一對(duì)象的寫鎖權(quán)限;
[0021]在所述第一對(duì)象中的第一位置處寫入所述第一反向索引記錄之后,還包括:
[0022]釋放獲取到的所述寫鎖權(quán)限。
[0023]結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,在所述第一對(duì)象中的第一位置處寫入所述第一反向索弓I記錄之后,所述方法還包括:
[0024]接收查詢所述第一反向索引記錄的讀請(qǐng)求,所述讀請(qǐng)求中包含所述第一目錄項(xiàng)標(biāo)識(shí);
[0025]根據(jù)所述第一對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的第一對(duì)象;
[0026]根據(jù)所述第二對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的第一位置;
[0027]在所述第一對(duì)象中的第一位置處讀取所述第一反向索引記錄,并返回讀取到的所述第一反向索引記錄中的數(shù)據(jù)。
[0028]結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,在所述第一對(duì)象中的第一位置處寫入所述第一反向索弓I記錄之后,所述方法還包括:
[0029]接收刪除所述第一反向索引記錄的刪除請(qǐng)求,所述刪除請(qǐng)求中包含所述第一目錄項(xiàng)標(biāo)識(shí);
[0030]根據(jù)所述第一對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的第一對(duì)象;
[0031]根據(jù)所述第二對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的第一位置;
[0032]刪除所述第一對(duì)象中的第一位置處的所述第一反向索引記錄。
[0033]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式至第一方面的第三種可能的實(shí)現(xiàn)方式中的任意一種,所述第一對(duì)應(yīng)關(guān)系為:
[0034]Idobject= (fid/S)*M+fid% S% M ;
[0035]其中,反向索引表中對(duì)象的標(biāo)識(shí),fid為目錄項(xiàng)標(biāo)識(shí),M為系統(tǒng)在寫入數(shù)據(jù)時(shí)的下盤時(shí)延內(nèi)的并發(fā)操作數(shù),S = M*K,K為一個(gè)對(duì)象能夠存儲(chǔ)的反向索引記錄個(gè)數(shù),%為取余運(yùn)算;
[0036]所述第二對(duì)應(yīng)關(guān)系為:
[0037]index = (fid% S)/M ;
[0038]其中,index為反向索引記錄在對(duì)象中的存儲(chǔ)位置的偏移量。
[0039]第二方面,本發(fā)明實(shí)施例提供了一種反向索引記錄的存儲(chǔ)裝置,包括:
[0040]第一獲取模塊,用于在服務(wù)器新建目錄項(xiàng)之后,獲取所述目錄項(xiàng)的第一目錄項(xiàng)標(biāo)識(shí)和所述目錄項(xiàng)的父目錄項(xiàng)的第二目錄項(xiàng)標(biāo)識(shí);
[0041]第一確定模塊,用于根據(jù)反向索引表中的對(duì)象與目錄項(xiàng)標(biāo)識(shí)的第一對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的對(duì)象為存儲(chǔ)所述目錄項(xiàng)的第一反向索引記錄的第一對(duì)象;
[0042]第二確定模塊,用于根據(jù)反向索引記錄在對(duì)象中的存儲(chǔ)位置與目錄項(xiàng)標(biāo)識(shí)的第二對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)位置為在所述第一對(duì)象中記錄所述第一反向索引記錄的第一位置;
[0043]寫入模塊,用于在所述第一對(duì)象中的第一位置處寫入所述第一反向索引記錄,所述第一反向索引記錄中記錄有所述第一目錄項(xiàng)標(biāo)識(shí)和所述第二目錄項(xiàng)標(biāo)識(shí)。
[0044]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0045]權(quán)限獲取模塊,用于在所述第一對(duì)象中的第一位置處寫入所述第一反向索引記錄之前,獲取針對(duì)所述第一對(duì)象的寫鎖權(quán)限;
[0046]權(quán)限釋放模塊,用于在所述第一對(duì)象中的第一位置處寫入所述第一反向索引記錄之后,釋放獲取到的所述寫鎖權(quán)限。
[0047]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0048]第一接收模塊,用于接收查詢所述第一反向索引記錄的讀請(qǐng)求,所述讀請(qǐng)求中包含所述第一目錄項(xiàng)標(biāo)識(shí);
[0049]所述第一確定模塊,還用于根據(jù)所述第一對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的第一對(duì)象;
[0050]所述第二確定模塊,還用于根據(jù)所述第二對(duì)應(yīng)關(guān)系,確定與所述第一目錄項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的第一位置;
[0051]所述裝置還包括:
[0052]讀取模塊,用于在所述第一對(duì)象中的第一位置處讀取所述第一反向索引記錄,并返回讀取到的所述第一反向索引記錄中的數(shù)據(jù)。
[0053]結(jié)合第二方面,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0054]第二接收模塊,用于接收刪除所述第一反向索引記錄的刪除請(qǐng)求,所述刪除請(qǐng)求中包含所述第一目錄項(xiàng)標(biāo)識(shí)
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1