一種實現(xiàn)文件鎖的方法及元數(shù)據(jù)服務(wù)器的制造方法【專利摘要】本申請公開了一種實現(xiàn)文件鎖的方法及元數(shù)據(jù)服務(wù)器,所述方法包括:元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的請求消息,所述請求消息包括申請鎖消息,其中攜帶有請求鎖定的文件的編號和請求方的標(biāo)識信息;所述元數(shù)據(jù)服務(wù)器根據(jù)所述編號獲取所述文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性判斷所述文件是否已加文件鎖,如果已加文件鎖,并且文件鎖持有方不是所述請求方,則根據(jù)所述文件鎖更新時間屬性判斷文件所加文件鎖是否超時,如果超時,則將所述文件鎖持有屬性的屬性值更新為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間?!緦@f明】一種實現(xiàn)文件鎖的方法及元數(shù)據(jù)服務(wù)器【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及分布式文件系統(tǒng)領(lǐng)域,尤其涉及一種實現(xiàn)文件鎖的方法及元數(shù)據(jù)服務(wù)器?!?br>背景技術(shù):
】[0002]分布式文件系統(tǒng)一般采用客戶端/服務(wù)器架構(gòu)(參考圖1),數(shù)據(jù)保存在服務(wù)器上,而客戶端的應(yīng)用程序能夠像訪問本地文件系統(tǒng)一樣訪問位于遠(yuǎn)程服務(wù)器上的文件。以時間為線索,可以將分布式文件系統(tǒng)的發(fā)展歷程分為三個階段:1)網(wǎng)絡(luò)文件系統(tǒng)(1980s),2)共享存儲(SAN)集群文件系統(tǒng)(1990s),3)面向?qū)ο蟮牟⑿形募到y(tǒng)(2000s)。目前較有影響的分布式文件系統(tǒng)有GoogleFileSystem(GFS)、Lustre和HDFS等。[0003]分布式文件系統(tǒng)在云計算時代的重要作用日益凸顯。在一個云計算環(huán)境中,分布式文件系統(tǒng)至少可以應(yīng)用在四個方向:1)作為海量存儲后端支撐,向上通過各種協(xié)議(FTP、iSCSI或私有協(xié)議等)提供存儲服務(wù),用于存儲/備份用戶數(shù)據(jù)、虛擬機鏡像文件等;2)融合計算和存儲功能,用于大數(shù)據(jù)的存儲與分析,支撐MapReduce作業(yè);3)提供開放接口,使得第三方網(wǎng)站可以通過分布式文件系統(tǒng)提供的存儲服務(wù)為基礎(chǔ)構(gòu)建新的服務(wù);4)作為用戶傳送文件或者服務(wù)商發(fā)布內(nèi)容時的緩沖。[0004]分布式文件系統(tǒng)可以看作是對分布式存儲資源的虛擬化,它將分散、異構(gòu)的存儲資源整合在一個命名空間之下,對上提供P0SIX(PortableOperatingSystemInterface,可移植操作系統(tǒng)接口),屏蔽分布式文件系統(tǒng)內(nèi)在的復(fù)雜機制。POSIX文件鎖機制對于云計算和云存儲具有重要的意義,很多傳統(tǒng)應(yīng)用依賴于POSIX文件鎖才能正常運行,因此一個支持POSIX文件鎖的分布式文件系統(tǒng)可以更好的支撐上層應(yīng)用的運行。同時分布式鎖為虛擬機的健康運行提供了底層保障,可以有效避免虛擬機多實例的出現(xiàn)。[0005]然而在分布式環(huán)境下,文件鎖的管理要比單機文件系統(tǒng)復(fù)雜的多,其困難之處不在于文件鎖的創(chuàng)建,而在于文件鎖的合理正常釋放。分布式文件系統(tǒng)面對的是跨節(jié)點的多個進(jìn)程,每個進(jìn)程或者節(jié)點都有可能突然崩潰而無法完成文件鎖的正常釋放,導(dǎo)致對應(yīng)的數(shù)據(jù)/文件無法被其他進(jìn)程/節(jié)點訪問而繼續(xù)提供服務(wù)?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明要解決的技術(shù)問題是提供一種實現(xiàn)文件鎖的方法及元數(shù)據(jù)服務(wù)器,能夠在加文件鎖的進(jìn)程或節(jié)點崩潰后,正常釋放文件鎖。[0007]為解決上述技術(shù)問題,本發(fā)明的一種實現(xiàn)文件鎖的方法,應(yīng)用于分布式文件系統(tǒng)中,包括:[0008]元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的請求消息,所述請求消息包括申請鎖消息,其中攜帶有請求鎖定的文件的編號和請求方的標(biāo)識信息;[0009]所述元數(shù)據(jù)服務(wù)器根據(jù)所述編號獲取所述文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0010]所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性判斷所述文件是否已加文件鎖,如果已加文件鎖,并且文件鎖持有方不是所述請求方,則根據(jù)所述文件鎖更新時間屬性判斷文件所加文件鎖是否超時,如果超時,則將所述文件鎖持有屬性的屬性值更新為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。[0011]進(jìn)一步地,所述方法還包括:[0012]所述元數(shù)據(jù)服務(wù)器如果判斷所述文件未加文件鎖,則將所述文件鎖持有屬性的屬性值修改為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間。[0013]進(jìn)一步地,所述方法還包括:[0014]所述元數(shù)據(jù)服務(wù)器如果判斷所述文件已加文件鎖,并且文件鎖持有方是所述請求方,則將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間。[0015]進(jìn)一步地,所述方法還包括:[0016]所述請求消息還包括更新鎖消息,其中攜帶有要更新文件鎖的文件的編號和請求方的標(biāo)識信息;[0017]所述元數(shù)據(jù)服務(wù)器根據(jù)所述更新鎖消息中攜帶的編號獲取所述更新文件鎖的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0018]所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性如果判斷所述要更新文件鎖的文件已加文件鎖,并且文件鎖持有方是所述請求方,則將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。[0019]進(jìn)一步地,所述方法還包括:[0020]所述請求消息還包括釋放鎖消息,其中攜帶有要釋放文件鎖的文件的編號和請求方的標(biāo)識信息;[0021]所述元數(shù)據(jù)服務(wù)器根據(jù)所述釋放鎖消息中攜帶的編號獲取所述要釋放文件鎖的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0022]所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性判斷所述要釋放文件鎖的文件是否已加文件鎖,如果已加文件鎖,則判斷文件鎖持有方是否是所述請求方,如果是,則將所述文件鎖持有屬性的屬性值修改為表示未加鎖;如果不是,則返回禁止釋放信息。[0023]進(jìn)一步地,所述方法還包括:[0024]所述元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的文件寫請求,所述文件寫請求中攜帶有要修改的文件的編號和請求方的標(biāo)識信息;[0025]所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件寫請求中攜帶的編號獲取所述要修改的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0026]所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性判斷所述要修改的文件是否已加文件鎖,如果已加文件鎖,則判斷文件鎖持有方是否是所述請求方,如果是,則將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間;如果不是,則返回禁止修改操作信息。[0027]進(jìn)一步地,所述方法還包括:[0028]所述元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的文件讀取請求,所述文件讀取請求中攜帶有要讀取的文件的編號和請求方的標(biāo)識信息;[0029]所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件讀取請求中攜帶的編號獲取所述要讀取的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0030]所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性如果判斷所述要讀取的文件已加文件鎖,并且文件鎖持有方是所述請求方,則將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。[0031]進(jìn)一步地,一種元數(shù)據(jù)服務(wù)器,應(yīng)用于分布式文件系統(tǒng)中,包括:接收單元、信息定位單元、判斷單元和屬性修改單元,其中:[0032]所述接收單元,用于接收請求方發(fā)送的請求消息,所述請求消息包括申請鎖消息,其中攜帶有請求鎖定的文件的編號和請求方的標(biāo)識信息;[0033]所述信息定位單元,用于根據(jù)所述編號獲取所述文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0034]所述判斷單元,用于根據(jù)所述文件鎖持有屬性判斷所述文件是否已加文件鎖,如果已加文件鎖,并且文件鎖持有方不是所述請求方,則根據(jù)所述文件鎖更新時間屬性判斷文件所加文件鎖是否超時;[0035]所述屬性修改單元,用于在所述判斷單元判斷超時后,將所述文件鎖持有屬性的屬性值更新為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。[0036]進(jìn)一步地,所述屬性修改單元,還用于在所述判斷單元判斷所述文件未加文件鎖后,將所述文件鎖持有屬性的屬性值修改為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間;在所述判斷單元判斷所述文件已加文件鎖,并且文件鎖持有方是所述請求方后,將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間。[0037]進(jìn)一步地,所述接收單元,還用于接收請求方發(fā)送的文件寫請求,所述文件寫請求中攜帶有要修改的文件的編號和請求方的標(biāo)識信息;[0038]所述信息定位單元,還用于根據(jù)所述文件寫請求中攜帶的編號獲取所述要修改的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0039]所述判斷單元,還用于根據(jù)所述文件鎖持有屬性判斷所述要修改的文件是否已加文件鎖,如果已加文件鎖,則判斷文件鎖持有方是否是所述請求方;[0040]所述屬性修改單元,還用于在所述判斷單元判斷判斷文件鎖持有方是所述請求方后,將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間;在判斷文件鎖持有方不是所述請求方后,返回禁止修改操作信息。[0041]綜上所述,本發(fā)明在分布式文件系統(tǒng)中實現(xiàn)文件鎖,能夠在文件鎖的持有方未正常釋放文件鎖即發(fā)生崩潰的情況下,實現(xiàn)文件鎖的釋放,使其他進(jìn)程或節(jié)點能夠?qū)ξ募游募i,對文件進(jìn)行修改等操作?!緦@綀D】【附圖說明】[0042]圖1是現(xiàn)有技術(shù)中的分布式文件系統(tǒng)的架構(gòu)圖;[0043]圖2是本發(fā)明實施方式的實現(xiàn)文件鎖的方法中申請鎖的流程圖;[0044]圖3是本發(fā)明實施方式的實現(xiàn)文件鎖的方法中釋放鎖的流程圖;[0045]圖4是本發(fā)明實施方式的實現(xiàn)文件鎖的方法中更新鎖的流程圖;[0046]圖5是本發(fā)明實施方式的元數(shù)據(jù)服務(wù)器的架構(gòu)圖?!揪唧w實施方式】[0047]本申請在分布式文件系統(tǒng)中實現(xiàn)文件鎖,解決分布式文件系統(tǒng)中文件鎖無法正常釋放帶來的問題,本申請中為文件描述信息擴展文件鎖持有屬性和文件鎖更新時間屬性,客戶端與元數(shù)據(jù)服務(wù)器通過心跳更新文件鎖更新時間屬性,如果某個文件鎖超時,則完成釋放操作。[0048]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,申請中的實施例及實施例中的特征可以相互任意組合。[0049]I)數(shù)據(jù)結(jié)構(gòu)支持。[0050]在元數(shù)據(jù)服務(wù)器的數(shù)據(jù)結(jié)構(gòu)上,為每個文件描述信息(以fsnode標(biāo)識)擴展兩個屬性,文件鎖持有屬性(1ckowner)和文件鎖更新時間屬性(1cklastupdate),分別代表文件鎖的持有方和最后更新時間戳。屬性1ckowner是由文件鎖持有方生成的64位隨機正整數(shù),屬性1cklastupdate是64位的時間。[0051]2)文件鎖的處理邏輯。[0052]以增加的屬性為基礎(chǔ),可以在客戶端和元數(shù)據(jù)服務(wù)器中增加三種操作,即AcquireLK(申請鎖)、ReleaseLK(釋放鎖)和UpdateLK(更新鎖)。文件鎖的主要邏輯控制均在元數(shù)據(jù)服務(wù)器一端,下面重點說明元數(shù)據(jù)服務(wù)器的處理邏輯。[0053]如圖2所示,本申請的實現(xiàn)文件鎖的方法中申請鎖的過程,包括:[0054]步驟201:元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的請求消息,請求消息包括申請鎖消息,申請鎖消息中攜帶有請求鎖定的文件的編號和請求方的標(biāo)識信息;[0055]步驟202:元數(shù)據(jù)服務(wù)器根據(jù)申請鎖消息中攜帶的編號獲取請求鎖定的文件的文件描述信息,文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0056]步驟203:元數(shù)據(jù)服務(wù)器根據(jù)文件鎖持有屬性判斷請求鎖定的文件是否已加文件鎖,如果已加文件鎖,則執(zhí)行步驟204;如果未加文件鎖,則執(zhí)行步驟207;[0057]步驟204:元數(shù)據(jù)服務(wù)器判斷文件鎖持有方是不是發(fā)送申請鎖消息的請求方,如果不是,則執(zhí)行步驟205;如果是,執(zhí)行步驟208;[0058]步驟205:元數(shù)據(jù)服務(wù)器根據(jù)文件鎖更新時間屬性判斷文件所加文件鎖是否超時,如果超時,則執(zhí)行步驟206;如果未超時,則執(zhí)行步驟209;[0059]元數(shù)據(jù)服務(wù)器通過將當(dāng)前時間減去文件鎖更新時間屬性的屬性值的差值結(jié)果與鎖允許的最大超時時間(LOCKJIMEOUT)進(jìn)行比較判斷文件所加文件鎖是否超時,如果差值結(jié)果大于LOCKJIMEOUT,則超時;如果差值結(jié)果小于L0CK_HME0UT,則不超時。[0060]步驟206:元數(shù)據(jù)服務(wù)器將文件鎖持有屬性的屬性值更新為請求方的標(biāo)識信息,并將文件鎖更新時間屬性的屬性值更新為當(dāng)前時間,結(jié)束;[0061]步驟207:元數(shù)據(jù)服務(wù)器將文件鎖持有屬性的屬性值修改為請求方的標(biāo)識信息,并將文件鎖更新時間屬性的屬性值修改為當(dāng)前時間,結(jié)束;[0062]步驟208:元數(shù)據(jù)服務(wù)器將文件鎖更新時間屬性的屬性值修改為當(dāng)前時間,結(jié)束;[0063]步驟209:元數(shù)據(jù)服務(wù)器拒絕請求方的請求,返回錯誤信息。[0064]以下為申請鎖的過程的偽代碼,請參考。[0065]AcquireLk(inode,owner){[0066]//從inode定位到文件描述信息[0067]fsnode=locate(inode);[0068]if(fsnode->lockowner<=0){[0069]//當(dāng)前文件未被加鎖,因此可以允許對鎖的申請[0070]fsnode->lockowner=owner;[0071]//設(shè)置最后更新時間為當(dāng)前時間[0072]fsnode->lastupdate=now();[0073]}else{[0074]if(fsnode->lockowner==owner){[0075]Il允許文件鎖持有方重復(fù)加鎖[0076]fsnode->lastupdate=now();[0077]}else{[0078]//L0CK_TIMEOUT是系統(tǒng)常數(shù),即鎖允許的最大超時時間[0079]if(now()-(fsnode->lastupdate)>L0CK_TIME0UT){[0080]//如果鎖超時,則視為無效[0081]fsnode->lockowner=owner;[0082]fsnode->lastupdate=now();[0083]}else{[0084]//拒絕加鎖[0085]returnERR0R_L0CKED;[0086]}[0087]}[0088]}[0089]returnSTATUS_0K;[0090]}[0091]如圖3所示,本申請的實現(xiàn)文件鎖的方法中釋放鎖的過程,包括:[0092]步驟301:元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的請求消息,請求消息包括釋放鎖消息,釋放鎖消息中攜帶有要釋放文件鎖的文件的編號和請求方的標(biāo)識信息;[0093]步驟302:元數(shù)據(jù)服務(wù)器根據(jù)釋放鎖消息中攜帶的編號獲取要釋放文件鎖的文件的文件描述信息,文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;[0094]步驟303:元數(shù)據(jù)服務(wù)器根據(jù)文件鎖持有屬性判斷要釋放文件鎖的文件是否已加文件鎖,如果已加文件鎖,則執(zhí)行步驟304;如果未加文件鎖,則執(zhí)行步驟307;[0095]步驟304:元數(shù)據(jù)服務(wù)器判斷文件鎖持有方是否是請求方,如果是,則執(zhí)行步驟305;否則,執(zhí)行步驟306;[0096]步驟305:元數(shù)據(jù)服務(wù)器將文件鎖持有屬性的屬性值修改為表示未加鎖,結(jié)束;[0097]步驟306:元數(shù)據(jù)服務(wù)器返回禁止釋放信息,結(jié)束;[0098]步驟307:元數(shù)據(jù)服務(wù)器返回狀態(tài)正常信息,結(jié)束。[0099]以下為釋放鎖的過程的偽代碼,請參考?!緳?quán)利要求】1.一種實現(xiàn)文件鎖的方法,應(yīng)用于分布式文件系統(tǒng)中,包括:元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的請求消息,所述請求消息包括申請鎖消息,其中攜帶有請求鎖定的文件的編號和請求方的標(biāo)識信息;所述元數(shù)據(jù)服務(wù)器根據(jù)所述編號獲取所述文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性判斷所述文件是否已加文件鎖,如果已加文件鎖,并且文件鎖持有方不是所述請求方,則根據(jù)所述文件鎖更新時間屬性判斷文件所加文件鎖是否超時,如果超時,則將所述文件鎖持有屬性的屬性值更新為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:所述元數(shù)據(jù)服務(wù)器如果判斷所述文件未加文件鎖,則將所述文件鎖持有屬性的屬性值修改為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間。3.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:所述元數(shù)據(jù)服務(wù)器如果判斷所述文件已加文件鎖,并且文件鎖持有方是所述請求方,則將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間。4.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:所述請求消息還包括更新鎖消息,其中攜帶有要更新文件鎖的文件的編號和請求方的標(biāo)識信息;所述元數(shù)據(jù)服務(wù)器根據(jù)所述更新鎖消息中攜帶的編號獲取所述更新文件鎖的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性如果判斷所述要更新文件鎖的文件已加文件鎖,并且文件鎖持有方是所述請求方,則將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。5.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:所述請求消息還包括釋放鎖消息,其中攜帶有要釋放文件鎖的文件的編號和請求方的標(biāo)識信息;所述元數(shù)據(jù)服務(wù)器根據(jù)所述釋放鎖消息中攜帶的編號獲取所述要釋放文件鎖的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性判斷所述要釋放文件鎖的文件是否已加文件鎖,如果已加文件鎖,則判斷文件鎖持有方是否是所述請求方,如果是,則將所述文件鎖持有屬性的屬性值修改為表示未加鎖;如果不是,則返回禁止釋放信息。6.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:所述元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的文件寫請求,所述文件寫請求中攜帶有要修改的文件的編號和請求方的標(biāo)識信息;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件寫請求中攜帶的編號獲取所述要修改的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性判斷所述要修改的文件是否已加文件鎖,如果已加文件鎖,則判斷文件鎖持有方是否是所述請求方,如果是,則將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間;如果不是,則返回禁止修改操作信息。7.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:所述元數(shù)據(jù)服務(wù)器接收請求方發(fā)送的文件讀取請求,所述文件讀取請求中攜帶有要讀取的文件的編號和請求方的標(biāo)識信息;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件讀取請求中攜帶的編號獲取所述要讀取的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述元數(shù)據(jù)服務(wù)器根據(jù)所述文件鎖持有屬性如果判斷所述要讀取的文件已加文件鎖,并且文件鎖持有方是所述請求方,則將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。8.—種元數(shù)據(jù)服務(wù)器,應(yīng)用于分布式文件系統(tǒng)中,包括:接收單元、信息定位單元、判斷單元和屬性修改單元,其中:所述接收單元,用于接收請求方發(fā)送的請求消息,所述請求消息包括申請鎖消息,其中攜帶有請求鎖定的文件的編號和請求方的標(biāo)識信息;所述信息定位單元,用于根據(jù)所述編號獲取所述文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述判斷單元,用于根據(jù)所述文件鎖持有屬性判斷所述文件是否已加文件鎖,如果已加文件鎖,并且文件鎖持有方不是所述請求方,則根據(jù)所述文件鎖更新時間屬性判斷文件所加文件鎖是否超時;所述屬性修改單元,用于在所述判斷單元判斷超時后,將所述文件鎖持有屬性的屬性值更新為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間。9.如權(quán)利要求8所`述的元數(shù)據(jù)服務(wù)器,其特征在于:所述屬性修改單元,還用于在所述判斷單元判斷所述文件未加文件鎖后,將所述文件鎖持有屬性的屬性值修改為所述請求方的標(biāo)識信息,并將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間;在所述判斷單元判斷所述文件已加文件鎖,并且文件鎖持有方是所述請求方后,將所述文件鎖更新時間屬性的屬性值修改為當(dāng)前時間。10.如權(quán)利要求8所述的元數(shù)據(jù)服務(wù)器,其特征在于:所述接收單元,還用于接收請求方發(fā)送的文件寫請求,所述文件寫請求中攜帶有要修改的文件的編號和請求方的標(biāo)識信息;所述信息定位單元,還用于根據(jù)所述文件寫請求中攜帶的編號獲取所述要修改的文件的文件描述信息,所述文件描述信息中擴展有文件鎖持有屬性和文件鎖更新時間屬性;所述判斷單元,還用于根據(jù)所述文件鎖持有屬性判斷所述要修改的文件是否已加文件鎖,如果已加文件鎖,則判斷文件鎖持有方是否是所述請求方;所述屬性修改單元,還用于在所述判斷單元判斷判斷文件鎖持有方是所述請求方后,將所述文件鎖更新時間屬性的屬性值更新為當(dāng)前時間;在判斷文件鎖持有方不是所述請求方后,返回禁止修改操作信息?!疚臋n編號】G06F17/30GK103514298SQ201310484339【公開日】2014年1月15日申請日期:2013年10月16日優(yōu)先權(quán)日:2013年10月16日【發(fā)明者】顏秉珩,董青,張俊,崔贏,閆冬冬,羅登亮,常建忠,栗麗霞申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司