成人打一炮免费视频,亚洲天堂视频在线观看,97视频久久久,日本japanese护士色高清,五月婷婷丁香,日韩精品一级无码毛片免费,国产欧美日韩精品网红剧情演绎

一種磁盤(pán)鎖的管理方法、裝置和系統(tǒng)與流程

文檔序號(hào):11154657閱讀:816來(lái)源:國(guó)知局
一種磁盤(pán)鎖的管理方法、裝置和系統(tǒng)與制造工藝

本發(fā)明實(shí)施例涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種資源訪問(wèn)的方法、裝置和系統(tǒng)。



背景技術(shù):

在分布式系統(tǒng)中,分布式鎖是不可或缺。而分布式鎖有很多種實(shí)現(xiàn)方法。

磁盤(pán)鎖是分布式鎖的一種實(shí)現(xiàn)形式,擁有磁盤(pán)鎖的節(jié)點(diǎn)用于訪問(wèn)磁盤(pán)鎖對(duì)應(yīng)資源的權(quán)限,節(jié)點(diǎn)通過(guò)光纖存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Fiber Channel Storage Area Network,F(xiàn)C SAN)或互聯(lián)網(wǎng)協(xié)議存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Internet Protocol Storage Area Network,IP SAN)以小型計(jì)算機(jī)系統(tǒng)接口(Small computer system interface,SCSI)命令的形式將加鎖、解鎖的消息寫(xiě)入磁盤(pán),或者通過(guò)FC-SAN或IP-SAN以SCSI命令的形式從磁盤(pán)讀出鎖的狀態(tài),從而決定是否加鎖或解鎖。

磁盤(pán)鎖存儲(chǔ)于磁盤(pán)上的,每次要刷新鎖的信息就是不斷地讀磁盤(pán),然后將新的鎖信息寫(xiě)到磁盤(pán),對(duì)磁盤(pán)鎖的頻繁刷新會(huì)鎖消耗大量的磁盤(pán)輸入輸出(Input Output,IO)。在一個(gè)中等規(guī)模的分布式系統(tǒng)中,如果所有節(jié)點(diǎn)都這樣不斷地從磁盤(pán)讀鎖信息,然后將鎖信息寫(xiě)到磁盤(pán),那么大量地IO將被磁盤(pán)鎖占用,系統(tǒng)的性能將會(huì)受到很大的影響。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明實(shí)施例公開(kāi)了一種磁盤(pán)鎖的管理方法、裝置和系統(tǒng)。以根據(jù)實(shí)際的需求,來(lái)對(duì)磁盤(pán)鎖進(jìn)行操作,減少了對(duì)磁盤(pán)鎖的頻繁更新,提升了分布式系統(tǒng)的性能。

第一方面,本申請(qǐng)?zhí)峁┝艘环N磁盤(pán)鎖的管理方法,資源和資源的磁盤(pán)鎖保存在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,占有磁盤(pán)鎖的節(jié)點(diǎn)擁有訪問(wèn)資源的權(quán)限,該方法包括:第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,獲取請(qǐng)求用于請(qǐng)求獲取磁盤(pán)鎖;第一節(jié)點(diǎn)接收釋放請(qǐng)求,釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖;第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息,釋放消息用于釋放磁盤(pán)鎖。

結(jié)合第一方面,在第一方面第一種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)接收釋放請(qǐng)求包括:第一節(jié)點(diǎn)接收來(lái)自第二節(jié)點(diǎn)的釋放請(qǐng)求,第二節(jié)點(diǎn)為待請(qǐng)求獲取磁盤(pán)鎖的節(jié)點(diǎn)。

如果第一節(jié)點(diǎn)和第二節(jié)點(diǎn)互聯(lián),則第二節(jié)點(diǎn)需要訪問(wèn)資源時(shí),可以直接向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,請(qǐng)求第一節(jié)點(diǎn)釋放該資源的磁盤(pán)鎖。

結(jié)合第一方面第一種可能的實(shí)現(xiàn)方式,在第一方面第二種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之后,該方法還包括:第一節(jié)點(diǎn)向第二節(jié)點(diǎn)發(fā)送確認(rèn)消息,確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放磁盤(pán)鎖。

第一節(jié)點(diǎn)釋放磁盤(pán)鎖后,可以通過(guò)向第二節(jié)點(diǎn)發(fā)送確認(rèn)消息,用于指示已經(jīng)釋放了磁盤(pán)鎖,第二節(jié)點(diǎn)接收到確認(rèn)消息后,可以去申請(qǐng)磁盤(pán)鎖,從而獲得訪問(wèn)資源的權(quán)限。

結(jié)合第一方面或第一方面以上任一種可能的實(shí)現(xiàn)方式,在第一方面第三種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)接收釋放請(qǐng)求包括:第一節(jié)點(diǎn)接收來(lái)自數(shù)據(jù)存儲(chǔ)系統(tǒng)的釋放請(qǐng)求。

當(dāng)?shù)诙?jié)點(diǎn)和第一節(jié)點(diǎn)沒(méi)有互聯(lián)時(shí),可以通過(guò)數(shù)據(jù)存儲(chǔ)系統(tǒng)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,從而使第一節(jié)點(diǎn)釋放磁盤(pán)鎖。

結(jié)合第一方面或第一方面以上任一種可能的實(shí)現(xiàn)方式,在第一方面第四種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之前,該方法還包括:第一節(jié)點(diǎn)確定第一節(jié)點(diǎn)占用磁盤(pán)鎖的時(shí)間超過(guò)預(yù)設(shè)的閾值。

為了避免頻繁的鎖申請(qǐng)和鎖釋放,可以為每個(gè)節(jié)點(diǎn)設(shè)置一個(gè)預(yù)設(shè)的時(shí)間閾值,當(dāng)一個(gè)節(jié)點(diǎn)對(duì)磁盤(pán)鎖的占用時(shí)間超過(guò)這個(gè)預(yù)設(shè)的閾值后,才會(huì)釋放磁盤(pán)鎖。

結(jié)合第一方面或第一方面以上任一種可能的實(shí)現(xiàn)方式,在第一方面第五種可能的實(shí)現(xiàn)方式中,磁盤(pán)鎖包含占有字段,占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),獲取請(qǐng)求中攜帶第一節(jié)點(diǎn)的標(biāo)識(shí),獲取請(qǐng)求用于將第一節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段。

第二方面,本申請(qǐng)?zhí)峁┮环N磁盤(pán)鎖的管理方法,資源和資源的磁盤(pán)鎖保存在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,磁盤(pán)鎖包含占有字段,占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),占有磁盤(pán)鎖的節(jié)點(diǎn)擁有訪問(wèn)資源的權(quán)限,該方法包括:第二節(jié)點(diǎn)讀取磁盤(pán)鎖;第二節(jié)點(diǎn)根據(jù)讀取的磁盤(pán)鎖的占有字段,確定磁盤(pán)鎖被第一節(jié)點(diǎn)占用;第二節(jié)點(diǎn)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖。

結(jié)合第二方面,在第二方面第一種可能的實(shí)現(xiàn)方式中,第二節(jié)點(diǎn)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求之后,該方法還包括:第二節(jié)點(diǎn)接收第一節(jié)點(diǎn)發(fā)送的確認(rèn)消息,確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放磁盤(pán)鎖。

第一節(jié)點(diǎn)釋放磁盤(pán)鎖后,可以通過(guò)主動(dòng)通知的形式,使得第二節(jié)點(diǎn)獲取這一消息,第二節(jié)點(diǎn)獲取確認(rèn)消息后,可以去申請(qǐng)磁盤(pán)鎖,從而可以避免第二節(jié)點(diǎn)對(duì)磁盤(pán)鎖狀態(tài)頻繁的確認(rèn)操作。

結(jié)合第二方面或第二方面第一種可能的實(shí)現(xiàn)方式,在第二方面第二種可能的實(shí)現(xiàn)方式中,所第二節(jié)點(diǎn)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求之后,該方法還包括:第二節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,磁獲取請(qǐng)求用于請(qǐng)求獲取磁盤(pán)鎖。

第三方面,一種可讀介質(zhì),其特征在于,包括執(zhí)行指令,當(dāng)計(jì)算設(shè)備的處理器執(zhí)行該執(zhí)行指令時(shí),該計(jì)算設(shè)備執(zhí)行以上任一方面或以上任一方面的任一種可能的實(shí)現(xiàn)方式中的方法。

第四方面,本申請(qǐng)?zhí)峁┝艘环N計(jì)算設(shè)備,其特征在于,包括:處理器、存儲(chǔ)器和總線;

存儲(chǔ)器用于存儲(chǔ)執(zhí)行指令,處理器與存儲(chǔ)器通過(guò)總線連接,當(dāng)計(jì)算設(shè)備運(yùn)行時(shí),處理器執(zhí)行存儲(chǔ)器存儲(chǔ)的執(zhí)行指令,以使計(jì)算設(shè)備執(zhí)行以上任一方面或以上任一方面的任一種可能的實(shí)現(xiàn)方式中的方法。

第五方面,本申請(qǐng)?zhí)峁┝艘环N磁盤(pán)鎖的管理裝置,資源和資源的磁盤(pán)鎖保存在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,占有磁盤(pán)鎖的節(jié)點(diǎn)擁有訪問(wèn)資源的權(quán)限,該裝置包括:發(fā)送單元,用于向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,獲取請(qǐng)求用于請(qǐng)求獲取磁盤(pán)鎖;接收單元,用于接收釋放請(qǐng)求,釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖;發(fā)送單元還用于向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息,釋放消息用于釋放磁盤(pán)鎖。

結(jié)合第五方面,在第五方面第一種可能的實(shí)現(xiàn)方式中,接收單元具體用于接收來(lái)自第二節(jié)點(diǎn)的釋放請(qǐng)求,第二節(jié)點(diǎn)為待請(qǐng)求獲取磁盤(pán)鎖的節(jié)點(diǎn)。

結(jié)合第五方面第一種可能的實(shí)現(xiàn)方式,在第五方面第二種可能的實(shí)現(xiàn)方式中,發(fā)送單元向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之后,還用于向第二節(jié)點(diǎn)發(fā)送確認(rèn)消息,確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放磁盤(pán)鎖。

結(jié)合第五方面,在第五方面第三種可能的實(shí)現(xiàn)方式中,接收單元具體用于接收來(lái)自數(shù)據(jù)存儲(chǔ)系統(tǒng)的釋放請(qǐng)求。

結(jié)合第五方面或第五方面以上任一種可能的實(shí)現(xiàn)方式,在第五方面第四種可能的實(shí)現(xiàn)方式中,該裝置還包括確定單元,發(fā)送單元向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之前,確定單元用于確定第一節(jié)點(diǎn)占用磁盤(pán)鎖的時(shí)間超過(guò)預(yù)設(shè)的閾值。

結(jié)合第五方面或第五方面以上任一種可能的實(shí)現(xiàn)方式,在第五方面第五種可能的實(shí)現(xiàn)方式中,磁盤(pán)鎖包含占有字段,占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),獲取請(qǐng)求中攜帶第一節(jié)點(diǎn)的標(biāo)識(shí),獲取請(qǐng)求用于將第一節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段。

第五方面為第一方面方法對(duì)應(yīng)的裝置實(shí)現(xiàn)方式,第一方面或第一方面任一種可能的實(shí)現(xiàn)方式中的描述對(duì)應(yīng)適用于第五方面或第五方面任一種可能的實(shí)現(xiàn)方式,在此不再贅述。

第六方面,本申請(qǐng)?zhí)峁┮环N磁盤(pán)鎖的管理裝置,資源和資源的磁盤(pán)鎖保存在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,磁盤(pán)鎖包含占有字段,占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),占有磁盤(pán)鎖的節(jié)點(diǎn)擁有訪問(wèn)資源的權(quán)限,該裝置包括:讀取單元,用于讀取磁盤(pán)鎖;確定單元,用于根據(jù)讀取的磁盤(pán)鎖的占有字段,確定磁盤(pán)鎖被第一節(jié)點(diǎn)占用;發(fā)送單元,用于向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖。

結(jié)合第六方面,在第六方面第一種可能的實(shí)現(xiàn)方式中,該裝置還包括接收單元,發(fā)送單元向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求之后,接收單元用于接收第一節(jié)點(diǎn)發(fā)送的確認(rèn)消息,確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放磁盤(pán)鎖。

結(jié)合第六方面或第六方面第一種可能的實(shí)現(xiàn)方式,在第六方面第二種可能的實(shí)現(xiàn)方式中,發(fā)送單元向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求之后,還用于向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,獲取請(qǐng)求用于請(qǐng)求獲取磁盤(pán)鎖。

第六方面為第二方面方法對(duì)應(yīng)的裝置實(shí)現(xiàn)方式,第二方面或第二方面任一種可能的實(shí)現(xiàn)方式中的描述對(duì)應(yīng)適用于第六方面或第六方面任一種可能的實(shí)現(xiàn)方式,在此不再贅述。

第七方面,本申請(qǐng)?zhí)峁┮环N磁盤(pán)鎖的管理系統(tǒng),該系統(tǒng)包含第一節(jié)點(diǎn)和數(shù)據(jù)存儲(chǔ)系統(tǒng),其中,數(shù)據(jù)存儲(chǔ)系統(tǒng)用于存儲(chǔ)資源和資源的磁盤(pán)鎖,磁盤(pán)鎖包含占有字段,占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),占有磁盤(pán)鎖的節(jié)點(diǎn)擁有訪問(wèn)資源的權(quán)限;第一節(jié)點(diǎn)用于向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,獲取請(qǐng)求用于請(qǐng)求獲取磁盤(pán)鎖,接收釋放請(qǐng)求,釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖,并向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息,釋放消息用于釋放磁盤(pán)鎖。

結(jié)合第七方面,在第七方面第一種可能的實(shí)現(xiàn)方式中,該系統(tǒng)還包括第二節(jié)點(diǎn),第二節(jié)點(diǎn)為待請(qǐng)求獲取磁盤(pán)鎖的節(jié)點(diǎn),第一節(jié)點(diǎn)具體用于接收來(lái)自第二節(jié)點(diǎn)發(fā)送的釋放請(qǐng)求。

結(jié)合第七方面第一種可能的實(shí)現(xiàn)方式,在第七方面第二種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之后,還用于向第二節(jié)點(diǎn)發(fā)送確認(rèn)消息,該確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放所述磁盤(pán)鎖。

結(jié)合第七方面,在第七方面第三種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)具體用于接收來(lái)自數(shù)據(jù)存儲(chǔ)系統(tǒng)的釋放請(qǐng)求。

結(jié)合第七方面或第七方面以上任一種可能的實(shí)現(xiàn)方式,在第七方面第四種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之前,還用于確定第一節(jié)點(diǎn)占用磁盤(pán)鎖的時(shí)間超過(guò)預(yù)設(shè)的閾值。

結(jié)合第七方面或第七方面以上任一種可能的實(shí)現(xiàn)方式,在第七方面第五種可能的實(shí)現(xiàn)方式中,磁盤(pán)鎖包含占有字段,占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),獲取請(qǐng)求中攜帶第一節(jié)點(diǎn)的標(biāo)識(shí),獲取請(qǐng)求用于將第一節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段。

第七方面為第一方面和第二方面方法對(duì)應(yīng)的系統(tǒng)實(shí)現(xiàn)方式,第一方面,第二方面,第一方面任一種可能的實(shí)現(xiàn)方式或第二方面任一種可能的實(shí)現(xiàn)方式中的描述對(duì)應(yīng)適用于第七方面或第七方面任一種可能的實(shí)現(xiàn)方式,在此不再贅述。

根據(jù)本發(fā)明實(shí)施例公開(kāi)的技術(shù)方案,根據(jù)節(jié)點(diǎn)對(duì)資源訪問(wèn)的熱點(diǎn)現(xiàn)象,第一節(jié)點(diǎn)在完成本次訪問(wèn)操作后,并不會(huì)立即釋放獲取的磁盤(pán)鎖,而是持續(xù)占有該磁盤(pán)鎖,當(dāng)有第二節(jié)點(diǎn)需要獲取該磁盤(pán)鎖時(shí),占有該磁盤(pán)鎖的第一節(jié)點(diǎn)會(huì)接收到釋放請(qǐng)求,并根據(jù)釋放請(qǐng)求釋放該磁盤(pán)鎖,以供第二節(jié)點(diǎn)使用,從而避免了對(duì)磁盤(pán)鎖頻繁的申請(qǐng)和釋放的操作,減少了對(duì)因申請(qǐng)和釋放磁盤(pán)鎖對(duì)磁盤(pán)IO的占用,提升了系統(tǒng)的整體性能。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為分布式系統(tǒng)的邏輯結(jié)構(gòu)示意圖;

圖2為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖數(shù)據(jù)結(jié)構(gòu);

圖3為依據(jù)本發(fā)明一實(shí)施例的節(jié)點(diǎn)硬件結(jié)構(gòu)示意圖;

圖4為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理方法的示范性流程圖;

圖5為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理方法的示范性信令圖;

圖6為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理方法的示范性信令圖;

圖7為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理裝置的邏輯結(jié)構(gòu)示意圖;

圖8為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理裝置的邏輯結(jié)構(gòu)示意圖;

圖9為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理裝置的邏輯結(jié)構(gòu)示意圖;

圖10為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理裝置的邏輯結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合附圖,對(duì)本發(fā)明實(shí)施例進(jìn)行描述。

在分布式系統(tǒng)中,節(jié)點(diǎn)對(duì)資源進(jìn)行訪問(wèn)時(shí),一般會(huì)出現(xiàn)熱點(diǎn)現(xiàn)象,即在特定的時(shí)間內(nèi),一個(gè)節(jié)點(diǎn)會(huì)對(duì)特定資源進(jìn)行頻繁的訪問(wèn)。而現(xiàn)有機(jī)制中,節(jié)點(diǎn)需要訪問(wèn)某一資源時(shí),需要向存儲(chǔ)該資源的存儲(chǔ)設(shè)備申請(qǐng)?jiān)撡Y源對(duì)應(yīng)的磁盤(pán)鎖(在以下描述中也可以被稱為鎖),并在結(jié)束對(duì)該資源的訪問(wèn)操作后,釋放該資源對(duì)應(yīng)的磁盤(pán)鎖,當(dāng)需要再次訪問(wèn)時(shí),該節(jié)點(diǎn)需要重新向存儲(chǔ)設(shè)備申請(qǐng)磁盤(pán)鎖,如果在一定的時(shí)間內(nèi),該節(jié)點(diǎn)需要頻繁的訪問(wèn)該資源,則就需要頻繁的進(jìn)行申請(qǐng)磁盤(pán)鎖和釋放磁盤(pán)鎖鎖的流程,而每一次對(duì)磁盤(pán)鎖的申請(qǐng)和釋放,都需要占用存儲(chǔ)設(shè)備的IO資源,如果不實(shí)現(xiàn)對(duì)資源訪問(wèn)的合理管理,則節(jié)點(diǎn)對(duì)磁盤(pán)鎖的刷新操作會(huì)占用存儲(chǔ)設(shè)備大量的IO資源,極大的影響分布式系統(tǒng)的整體性能。

圖1為一種共享文件系統(tǒng)的邏輯結(jié)構(gòu)示意圖。圖1所述的共享文件系統(tǒng)包括多個(gè)服務(wù)器102,每個(gè)服務(wù)器102與存儲(chǔ)區(qū)域網(wǎng)絡(luò)(storage area network,SAN)114互聯(lián)。在以下描述中,一個(gè)服務(wù)器102被稱為一個(gè)節(jié)點(diǎn)。運(yùn)行在服務(wù)器102上的操作系統(tǒng)104通過(guò)SAN 114與一個(gè)共享的文件系統(tǒng)112交互,以實(shí)現(xiàn)對(duì)保存在存儲(chǔ)單元110中保存的數(shù)據(jù)的訪問(wèn)操作。具體的,存儲(chǔ)單元110可以為與SAN 114互聯(lián)的一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)106的一個(gè)邏輯單元號(hào)(logic unit number,LUN)。存儲(chǔ)單元110通過(guò)存儲(chǔ)控制器108以一個(gè)連續(xù)的邏輯存儲(chǔ)空間的形式呈獻(xiàn)給操作系統(tǒng)104,但操作系統(tǒng)104通過(guò)文件系統(tǒng)112訪問(wèn)的數(shù)據(jù)可能實(shí)際存儲(chǔ)在存儲(chǔ)陣列114不連續(xù)的物理存儲(chǔ)空間中。

存儲(chǔ)在存儲(chǔ)單元110中的數(shù)據(jù)以共享文件系統(tǒng)112所支持的形式被訪問(wèn)和存儲(chǔ)。例如,存儲(chǔ)在存儲(chǔ)單元110中的數(shù)據(jù)可以被組織為文件的形式被不同的服務(wù)器102共享。

圖2展示了磁盤(pán)鎖的數(shù)據(jù)結(jié)構(gòu),如圖2所示,存儲(chǔ)單元110中將數(shù)據(jù)分為多個(gè)資源204,每一個(gè)資源204有對(duì)應(yīng)的磁盤(pán)鎖202,資源204可以被文件系統(tǒng)112組織成文件的形式。每個(gè)磁盤(pán)鎖202包含占有字段,其中占有字段用于記錄當(dāng)前正在占有磁盤(pán)鎖202的節(jié)點(diǎn)的標(biāo)識(shí),占有磁盤(pán)鎖202的節(jié)點(diǎn)擁有訪問(wèn)該磁盤(pán)鎖202對(duì)應(yīng)的資源204的權(quán)限,如果要改變一個(gè)資源204的配置數(shù)據(jù),節(jié)點(diǎn)需要首先獲得該資源204對(duì)應(yīng)的磁盤(pán)鎖202。其中節(jié)點(diǎn)可以為任意實(shí)體,例如,可以為圖1所述的與其他節(jié)點(diǎn)共享資源的服務(wù)器102。

可選的,每個(gè)磁盤(pán)鎖202還包含等待字段,等待字段用于記錄當(dāng)前正在等待占有該磁盤(pán)鎖的節(jié)點(diǎn)的標(biāo)識(shí)。當(dāng)系統(tǒng)有多個(gè)節(jié)點(diǎn)同時(shí)爭(zhēng)搶同一個(gè)資源的鎖,鎖的持有者釋放鎖后立即搶鎖成功,造成其他節(jié)點(diǎn)長(zhǎng)期得不到鎖,從而導(dǎo)致讀寫(xiě)的最大時(shí)延特別長(zhǎng),影響了上層應(yīng)用,所以增加一個(gè)等待字段,當(dāng)前鎖的持有者釋放鎖后,只有等待字段中記錄的節(jié)點(diǎn)才有獲取磁盤(pán)鎖的權(quán)限。在具體實(shí)現(xiàn)過(guò)程中,等待字段可以是一個(gè)等待隊(duì)列,可以記錄多個(gè)等待節(jié)點(diǎn),節(jié)點(diǎn)按照等待隊(duì)列記錄的順序獲取磁盤(pán)鎖,即當(dāng)鎖的持有者釋放磁盤(pán)鎖后,處于等待隊(duì)列首的節(jié)點(diǎn)擁有獲取磁盤(pán)鎖的權(quán)限。為了描述方便,在以下描述中,本發(fā)明實(shí)施例以等待字段只記錄一個(gè)節(jié)點(diǎn)標(biāo)識(shí)為例進(jìn)行說(shuō)明,但應(yīng)了解,本發(fā)明實(shí)施例并不限定等待字段記錄等待節(jié)點(diǎn)的個(gè)數(shù)。

其中,節(jié)點(diǎn)的標(biāo)識(shí)用于指示擁有磁盤(pán)鎖202的節(jié)點(diǎn)。例如,每一個(gè)節(jié)點(diǎn)可以被分配一個(gè)特殊的身份標(biāo)識(shí)(identity identifier,ID),該ID用于寫(xiě)入磁盤(pán)鎖202的占有字段,以此指示該ID對(duì)應(yīng)的節(jié)點(diǎn)占有磁盤(pán)鎖202。該ID可以人為設(shè)置,也可以使用服務(wù)器的互聯(lián)網(wǎng)協(xié)議(internet protocol,IP)地址或媒體接入控制(Media Access Control,MAC)地址,或服務(wù)器的通用唯一標(biāo)識(shí)符(Universally Unique Identifier,UUID)等。本發(fā)明實(shí)施例并不對(duì)節(jié)點(diǎn)的標(biāo)識(shí)的形式進(jìn)行限定。

則磁盤(pán)鎖202的占有字段可以使用數(shù)值0或者其他特殊的標(biāo)識(shí)表示當(dāng)前沒(méi)有節(jié)點(diǎn)占用該磁盤(pán)鎖202,等待字段也可以使用0或其他特殊的標(biāo)識(shí)表示當(dāng)前沒(méi)有節(jié)點(diǎn)等待占用該磁盤(pán)鎖202。在以下描述中,為了描述方便,占有字段使用數(shù)值0標(biāo)識(shí)當(dāng)前磁盤(pán)鎖202沒(méi)有被任何節(jié)點(diǎn)占用,等待字段使用數(shù)值0標(biāo)識(shí)當(dāng)前沒(méi)有節(jié)點(diǎn)等待占用該磁盤(pán)鎖202,但應(yīng)理解,本發(fā)明實(shí)施例并不對(duì)表示磁盤(pán)鎖202當(dāng)前沒(méi)有被占用的表現(xiàn)形式進(jìn)行限定。

可選的,磁盤(pán)鎖202還可以包含鎖類型字段,鎖類型字段用于記錄磁盤(pán)鎖202的類型,鎖類型用于指示節(jié)點(diǎn)占有磁盤(pán)鎖202期間,其他節(jié)點(diǎn)對(duì)該磁盤(pán)鎖202對(duì)應(yīng)的資源204的訪問(wèn)權(quán)限,例如可以使用鎖類型指示是否允許其他節(jié)點(diǎn)對(duì)該資源204進(jìn)行讀操作。

節(jié)點(diǎn)與數(shù)據(jù)存儲(chǔ)系統(tǒng)可以通過(guò)小型計(jì)算機(jī)系統(tǒng)接口(Small Computer System Interface,SCSI)協(xié)議進(jìn)行通信。在SCSI協(xié)議棧中,有一個(gè)SCSI compare and write協(xié)議。該協(xié)議的主要功能是先進(jìn)行數(shù)據(jù)比較,比較一致后,然后再寫(xiě)數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)系統(tǒng)通過(guò)SCSI協(xié)議收到兩個(gè)數(shù)據(jù),舊數(shù)據(jù)和新數(shù)據(jù)。舊數(shù)據(jù)數(shù)據(jù)是節(jié)點(diǎn)之前從數(shù)據(jù)存儲(chǔ)系統(tǒng)中讀出的數(shù)據(jù),新數(shù)據(jù)是節(jié)點(diǎn)發(fā)送過(guò)來(lái)需要寫(xiě)到數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)系統(tǒng)收到這兩個(gè)數(shù)據(jù)后,首先將舊數(shù)據(jù)和自己保存的數(shù)據(jù)進(jìn)行對(duì)比,如果相同,則允許將新數(shù)據(jù)寫(xiě)入數(shù)據(jù)存儲(chǔ)系統(tǒng),如果舊數(shù)據(jù)與自己當(dāng)前保存的數(shù)據(jù)不同,則不允許。

節(jié)點(diǎn)在請(qǐng)求或釋放磁盤(pán)鎖的時(shí)候,都需要在指令中攜帶磁盤(pán)鎖的舊值和將要寫(xiě)入磁盤(pán)鎖的新值,只有當(dāng)攜帶的舊值與磁盤(pán)鎖記錄的舊值相同時(shí),才允許將新值寫(xiě)入磁盤(pán)鎖。

圖3是依據(jù)本發(fā)明一實(shí)施例的節(jié)點(diǎn)300的硬件結(jié)構(gòu)示意圖。如圖3所示,節(jié)點(diǎn)300包括處理器302、存儲(chǔ)器304、輸入/輸出接口306、通信接口308和總線310。其中,處理器302、存儲(chǔ)器304、輸入/輸出接口306和通信接口308通過(guò)總線310實(shí)現(xiàn)彼此之間的通信連接。

處理器302是節(jié)點(diǎn)300的控制中心,用于執(zhí)行相關(guān)程序,以實(shí)現(xiàn)本發(fā)明實(shí)施例所提供的技術(shù)方案。處理器302可以采用通用的中央處理器(Central Processing Unit,CPU),微處理器,應(yīng)用專用集成電路(Application Specific Integrated Circuit,ASIC),或者一個(gè)或多個(gè)集成電路,用于執(zhí)行相關(guān)程序,以實(shí)現(xiàn)本發(fā)明實(shí)施例所提供的技術(shù)方案。除非另有說(shuō)明,在本發(fā)明中,一個(gè)用于執(zhí)行特定功能的組件,例如,處理器302或存儲(chǔ)器304,可以通過(guò)配置一個(gè)通用的組件來(lái)執(zhí)行相應(yīng)功能來(lái)實(shí)現(xiàn),也可以通過(guò)一個(gè)專門(mén)執(zhí)行特定功能的專用組件來(lái)實(shí)現(xiàn),本申請(qǐng)并不對(duì)此進(jìn)行限定。

存儲(chǔ)器304可以是只讀存儲(chǔ)器(Read Only Memory,ROM),靜態(tài)存儲(chǔ)設(shè)備,動(dòng)態(tài)存儲(chǔ)設(shè)備或者隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)。存儲(chǔ)器304可以存儲(chǔ)操作系統(tǒng)和其他應(yīng)用程序。在通過(guò)軟件或者固件來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施例提供的技術(shù)方案時(shí),用于實(shí)現(xiàn)本發(fā)明實(shí)施例提供的技術(shù)方案的程序代碼保存在存儲(chǔ)器304中,并由處理器302來(lái)執(zhí)行。存儲(chǔ)器304可以與處理器302集成在一起或集成在處理器302的內(nèi)部,也可以是獨(dú)立于處理器302的一個(gè)或多個(gè)存儲(chǔ)單元。

供處理器302執(zhí)行的程序代碼可以存儲(chǔ)在與其連接的存儲(chǔ)器304中??蛇x的,存儲(chǔ)器304為RAM,存儲(chǔ)在硬盤(pán)內(nèi)部的程序代碼(例如,通信模塊或磁盤(pán)鎖管理模塊等)被拷貝到存儲(chǔ)器304中,以供處理器302執(zhí)行。

如圖3所示,節(jié)點(diǎn)300的存儲(chǔ)器304中包含磁盤(pán)鎖管理模塊,處理器302執(zhí)行該磁盤(pán)鎖管理模塊程序代碼,實(shí)現(xiàn)對(duì)磁盤(pán)鎖的管理。

輸入/輸出接口306用于接收輸入的數(shù)據(jù)和信息,輸出操作結(jié)果等數(shù)據(jù)。

通信接口308使用例如但不限于收發(fā)器一類的收發(fā)裝置,來(lái)實(shí)現(xiàn)節(jié)點(diǎn)300與其他設(shè)備或通信網(wǎng)絡(luò)之間的通信。

總線310可包括一通路,在節(jié)點(diǎn)300各個(gè)部件(例如處理器302、存儲(chǔ)器304、輸入/輸出接口306和通信接口308)之間傳送信息。

應(yīng)注意,盡管圖3所示的計(jì)節(jié)點(diǎn)300僅僅示出了處理器302、存儲(chǔ)器304、輸入/輸出接口306、通信接口308以及總線310,但是在具體實(shí)現(xiàn)過(guò)程中,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,節(jié)點(diǎn)300還包含實(shí)現(xiàn)正常運(yùn)行所必須的其他器件。同時(shí),根據(jù)具體需要,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,節(jié)點(diǎn)300還可包含實(shí)現(xiàn)其他附加功能的硬件器件。此外,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,節(jié)點(diǎn)300也可僅僅包含實(shí)現(xiàn)本發(fā)明實(shí)施例所必須的器件,而不必包含圖3中所示的全部器件。

圖3所示的硬件結(jié)構(gòu)以及上述描述適用于本發(fā)明實(shí)施例所提供的各種磁盤(pán)鎖管理裝置和系統(tǒng),適用于執(zhí)行本發(fā)明實(shí)施例所提供的各種磁盤(pán)鎖管理方法。

圖4為依據(jù)本發(fā)明一實(shí)施例的磁盤(pán)鎖管理方法的示意性流程圖,資源和資源的磁盤(pán)鎖保存在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,磁盤(pán)鎖的占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),占有所述磁盤(pán)鎖的節(jié)點(diǎn)擁有訪問(wèn)所述資源的權(quán)限,如圖4所示,該方法包括:

S402:第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,該獲取請(qǐng)求用于請(qǐng)求獲取資源的磁盤(pán)鎖。

第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求之前,該方法還包括:第一節(jié)點(diǎn)讀取該資源的磁盤(pán)鎖,并根據(jù)讀取的磁盤(pán)鎖確定該資源的磁盤(pán)鎖沒(méi)有被其他節(jié)點(diǎn)占用。具體的,第一節(jié)點(diǎn)根據(jù)磁盤(pán)鎖的占有字段判斷磁盤(pán)鎖當(dāng)前是否被其他節(jié)點(diǎn)占用,如果磁盤(pán)鎖的占有字段為0,則表明磁盤(pán)鎖當(dāng)前沒(méi)有被其他節(jié)點(diǎn)占用。

具體的,獲取請(qǐng)求中攜帶第一節(jié)點(diǎn)的標(biāo)識(shí),該獲取請(qǐng)求用于將第一節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段,用于表明磁盤(pán)鎖被第一節(jié)點(diǎn)占用。

更具體的,獲取請(qǐng)求還攜帶第一節(jié)點(diǎn)讀取的磁盤(pán)鎖的占有字段的舊值(即數(shù)值0),數(shù)據(jù)存儲(chǔ)系統(tǒng)在接收到獲取請(qǐng)求后,會(huì)比較獲取請(qǐng)求中攜帶的舊值與磁盤(pán)鎖的占有字段當(dāng)前保存的數(shù)值,如果二者相同,則表明第一節(jié)點(diǎn)在讀取磁盤(pán)鎖以及發(fā)送獲取請(qǐng)求之間的時(shí)間內(nèi)沒(méi)有其他節(jié)點(diǎn)改變磁盤(pán)鎖占有字段的值,則數(shù)據(jù)存儲(chǔ)系統(tǒng)將第一節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段,如果二者不同,則說(shuō)明在第一節(jié)點(diǎn)發(fā)送獲取請(qǐng)求之前有其他節(jié)點(diǎn)改變了磁盤(pán)鎖占有字段的值,則數(shù)據(jù)存儲(chǔ)系統(tǒng)不允許第一節(jié)點(diǎn)將第一節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段。

S404:第一節(jié)點(diǎn)接收釋放請(qǐng)求,該釋放請(qǐng)求用于請(qǐng)求該第一節(jié)點(diǎn)釋放該磁盤(pán)鎖。

在分布式文件系統(tǒng)中,節(jié)點(diǎn)對(duì)數(shù)據(jù)訪問(wèn)存在熱點(diǎn)現(xiàn)象,即在特定的時(shí)間段內(nèi),第一節(jié)點(diǎn)可能會(huì)頻繁的訪問(wèn)該資源。如果在一次訪問(wèn)結(jié)束后,第一節(jié)點(diǎn)立即釋放磁盤(pán)鎖,則第一節(jié)點(diǎn)在該特定的時(shí)間段內(nèi),需要頻繁的申請(qǐng)磁盤(pán)鎖和釋放磁盤(pán)鎖,這些請(qǐng)求磁盤(pán)鎖和釋放磁盤(pán)鎖的操作會(huì)占用大量的磁盤(pán)IO,從而影響正常的數(shù)據(jù)訪問(wèn)。所以在本發(fā)明實(shí)施例中,第一節(jié)點(diǎn)申請(qǐng)到磁盤(pán)鎖后,在完成一次訪問(wèn)操作后,并不會(huì)立即釋放磁盤(pán)鎖,而是繼續(xù)占用該磁盤(pán)鎖,從而避免后續(xù)重復(fù)的磁盤(pán)鎖申請(qǐng)和釋放操作。

在本發(fā)明實(shí)施例的一種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)與第二節(jié)點(diǎn)互聯(lián),第一節(jié)點(diǎn)接收來(lái)自第二節(jié)點(diǎn)的釋放請(qǐng)求,該第二節(jié)點(diǎn)為待請(qǐng)求獲取磁盤(pán)鎖的節(jié)點(diǎn)。

因?yàn)榈谝还?jié)點(diǎn)持續(xù)占用該資源的磁盤(pán)鎖,當(dāng)?shù)诙?jié)點(diǎn)也需要訪問(wèn)該資源時(shí),第二節(jié)點(diǎn)需要確定該磁盤(pán)鎖是否被其他節(jié)點(diǎn)占用。具體的,第二節(jié)點(diǎn)讀取該資源的磁盤(pán)鎖,并根據(jù)讀取的磁盤(pán)鎖確定當(dāng)前是否有其他節(jié)點(diǎn)占用該磁盤(pán)鎖,因?yàn)榈谝还?jié)點(diǎn)在訪問(wèn)操作結(jié)束后,并沒(méi)有釋放磁盤(pán)鎖,則第二節(jié)點(diǎn)根據(jù)讀取的該磁盤(pán)鎖,確定該磁盤(pán)鎖被第一節(jié)點(diǎn)占用。更具體的,第二節(jié)點(diǎn)根據(jù)磁盤(pán)鎖的占有字段記錄的信息確定第二節(jié)點(diǎn)當(dāng)前正在占用該磁盤(pán)鎖。

當(dāng)?shù)诙?jié)點(diǎn)確定第一節(jié)點(diǎn)當(dāng)前正在占用該磁盤(pán)鎖后,第二節(jié)點(diǎn)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,該釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放所述磁盤(pán)鎖。

在本發(fā)明實(shí)施例的另一種可能的實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)接收到來(lái)自數(shù)據(jù)存儲(chǔ)系統(tǒng)的釋放請(qǐng)求。例如,在第一節(jié)點(diǎn)和第二節(jié)點(diǎn)之間沒(méi)有網(wǎng)絡(luò)互連時(shí),第二節(jié)點(diǎn)無(wú)法直接向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,則由數(shù)據(jù)存儲(chǔ)系統(tǒng)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求。

具體的,第二節(jié)點(diǎn)需要訪問(wèn)該資源時(shí),首先讀取該資源的磁盤(pán)鎖,并根據(jù)讀取的磁盤(pán)鎖確定當(dāng)前是否有其他節(jié)點(diǎn)占用該磁盤(pán)鎖,因?yàn)榈谝还?jié)點(diǎn)在訪問(wèn)操作結(jié)束后,并沒(méi)有釋放磁盤(pán)鎖,則第二節(jié)點(diǎn)根據(jù)讀取的該磁盤(pán)鎖,確定該磁盤(pán)鎖被第一節(jié)點(diǎn)占用,則第二節(jié)點(diǎn)會(huì)觸發(fā)數(shù)據(jù)存儲(chǔ)系統(tǒng)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,該釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放該磁盤(pán)鎖。

S406:第一節(jié)點(diǎn)根據(jù)接收到的釋放請(qǐng)求,釋放該磁盤(pán)鎖。

具體的,第一節(jié)點(diǎn)在接收到釋放請(qǐng)求后,會(huì)首先確定第一節(jié)點(diǎn)是否存在正在進(jìn)行的對(duì)該資源的訪問(wèn)操作,如果有正在進(jìn)行的對(duì)該資源的訪問(wèn)操作,則第一節(jié)點(diǎn)在該正在進(jìn)行的訪問(wèn)操作結(jié)束前繼續(xù)占有該磁盤(pán)鎖。

若當(dāng)前第一節(jié)點(diǎn)沒(méi)有正在進(jìn)行的對(duì)該資源的訪問(wèn)操作,則第一節(jié)點(diǎn)在接收到釋放請(qǐng)求后釋放該磁盤(pán)鎖;若存在正在進(jìn)行的對(duì)該資源的訪問(wèn)操作,則第一節(jié)點(diǎn)在該正在進(jìn)行的訪問(wèn)請(qǐng)求結(jié)束后,釋放該磁盤(pán)鎖。

第一節(jié)點(diǎn)接收到釋放請(qǐng)求后,可以在當(dāng)前沒(méi)有正在進(jìn)行的對(duì)該資源的訪問(wèn)操作時(shí)或在當(dāng)前正在進(jìn)行的對(duì)該資源的訪問(wèn)操作結(jié)束后,直接釋放該磁盤(pán)鎖。

可選的,第一節(jié)點(diǎn)確定其占用所述磁盤(pán)鎖的時(shí)間超過(guò)預(yù)設(shè)的閾值之后,才會(huì)釋放磁盤(pán)鎖。為了防止磁盤(pán)鎖在節(jié)點(diǎn)之間頻繁切換,從而導(dǎo)致頻繁的鎖操作,性能急劇下降,可以設(shè)置節(jié)點(diǎn)對(duì)鎖的最短持有時(shí)間。只有鎖的實(shí)際持有時(shí)間超過(guò)最短持有時(shí)間,持有鎖的節(jié)點(diǎn)才會(huì)釋放鎖。更具體的,鎖的最短持有時(shí)間可以動(dòng)態(tài)設(shè)置。如果鎖的最短持有時(shí)間設(shè)置為0,則第一節(jié)點(diǎn)接收到釋放請(qǐng)求后,如果鎖不需要繼續(xù)使用,則立即釋放。如果鎖的最短持設(shè)置不為零,則第一節(jié)點(diǎn)需要持有鎖超過(guò)最短時(shí)間后才能釋放。

具體實(shí)現(xiàn)過(guò)程中,第一節(jié)點(diǎn)通過(guò)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息來(lái)釋放磁盤(pán)鎖,該釋放消息用于將磁盤(pán)鎖的占有字段記錄的第一節(jié)點(diǎn)的標(biāo)識(shí)刪除。更具體的,釋放消息中攜帶第一節(jié)點(diǎn)的標(biāo)識(shí)和0標(biāo)識(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)接收到釋放消息后,比較釋放消息中攜帶的節(jié)點(diǎn)標(biāo)識(shí)和磁盤(pán)鎖的占有字段記錄的節(jié)點(diǎn)標(biāo)識(shí),如果二者相同,則數(shù)據(jù)存儲(chǔ)系統(tǒng)釋放第一節(jié)點(diǎn)對(duì)磁盤(pán)鎖的占用,將磁盤(pán)鎖的占有字段寫(xiě)0。

可選的,第二節(jié)點(diǎn)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求后,第二節(jié)點(diǎn)會(huì)重新去讀取磁盤(pán)鎖,如果發(fā)現(xiàn)磁盤(pán)鎖的占有字段的值為0,則說(shuō)明第一節(jié)點(diǎn)已經(jīng)釋放了對(duì)磁盤(pán)鎖的占用,則第二節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,該獲取請(qǐng)求中攜帶第二節(jié)點(diǎn)的標(biāo)識(shí)。更具體的,第二節(jié)點(diǎn)發(fā)送的獲取請(qǐng)求中還攜帶第二節(jié)點(diǎn)之前從磁盤(pán)鎖占有字段讀出的舊值0,數(shù)據(jù)存儲(chǔ)系統(tǒng)會(huì)比較第二節(jié)點(diǎn)發(fā)送的獲取請(qǐng)求中攜帶的舊值與當(dāng)前磁盤(pán)鎖占有字段記錄的值,如果二者相同,說(shuō)明沒(méi)有沒(méi)有其他節(jié)點(diǎn)提前占用了磁盤(pán)鎖,則允許將第二節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段。

可選的,第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息后,還可以向第二節(jié)點(diǎn)發(fā)送確認(rèn)消息,該確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放該磁盤(pán)鎖,第二節(jié)點(diǎn)接收到確認(rèn)消息后,可以去讀取磁盤(pán)鎖,并確認(rèn)當(dāng)前沒(méi)有其他節(jié)點(diǎn)占有該磁盤(pán)鎖。

為了避免頻繁的鎖競(jìng)爭(zhēng)導(dǎo)致有的節(jié)點(diǎn)一直獲取不到磁盤(pán)鎖的現(xiàn)象,該磁盤(pán)鎖還可以包含等待字段,等待字段用于記錄等待占有該磁盤(pán)鎖的節(jié)點(diǎn),當(dāng)正在占有磁盤(pán)鎖的節(jié)點(diǎn)釋放磁盤(pán)鎖后,只有磁盤(pán)鎖等待字段記錄的節(jié)點(diǎn)才有獲取磁盤(pán)鎖的權(quán)限。數(shù)據(jù)存儲(chǔ)系統(tǒng)接收到新的獲取請(qǐng)求后,會(huì)比較獲取請(qǐng)求攜帶的節(jié)點(diǎn)標(biāo)識(shí)與等待字段記錄的節(jié)點(diǎn)標(biāo)識(shí),如果二者相同,則表明發(fā)送該獲取請(qǐng)求的節(jié)點(diǎn)擁有獲取磁盤(pán)鎖的權(quán)限,并將獲取請(qǐng)求中攜帶的節(jié)點(diǎn)標(biāo)識(shí)寫(xiě)入占有字段,并將等待字段的值置為0。當(dāng)?shù)诙?jié)點(diǎn)根據(jù)磁盤(pán)鎖的占有字段確認(rèn)第一節(jié)點(diǎn)正在占用磁盤(pán)鎖時(shí),第二節(jié)點(diǎn)可以請(qǐng)求數(shù)據(jù)存儲(chǔ)系統(tǒng)將第二節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入該磁盤(pán)鎖的等待字段,當(dāng)?shù)谝还?jié)點(diǎn)釋放磁盤(pán)鎖后,第二節(jié)點(diǎn)有擁有獲取磁盤(pán)鎖的權(quán)限,第二節(jié)點(diǎn)向磁盤(pán)鎖發(fā)送獲取請(qǐng)求后,數(shù)據(jù)存儲(chǔ)系統(tǒng)確定獲取請(qǐng)求中和等待字段中的節(jié)點(diǎn)標(biāo)識(shí)均為第二節(jié)點(diǎn)的標(biāo)識(shí)后,將第二節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入占有字段,并將等待字段置0。

在本發(fā)明實(shí)施例另一種實(shí)現(xiàn)方式中,第一節(jié)點(diǎn)獲取到磁盤(pán)鎖后,會(huì)按照預(yù)設(shè)的時(shí)間周期釋放磁盤(pán)鎖,從而避免了對(duì)磁盤(pán)鎖的頻繁的請(qǐng)求和釋放。

根據(jù)本發(fā)明實(shí)施例公開(kāi)的技術(shù)方案,根據(jù)節(jié)點(diǎn)對(duì)資源訪問(wèn)的熱點(diǎn)現(xiàn)象,第一節(jié)點(diǎn)在完成本次訪問(wèn)操作后,并不會(huì)立即釋放獲取的磁盤(pán)鎖,而是持續(xù)占有該磁盤(pán)鎖,當(dāng)有第二節(jié)點(diǎn)需要獲取該磁盤(pán)鎖時(shí),占有該磁盤(pán)鎖的第一節(jié)點(diǎn)會(huì)接收到釋放請(qǐng)求,并根據(jù)釋放請(qǐng)求釋放該磁盤(pán)鎖,以供第二節(jié)點(diǎn)使用,從而避免了對(duì)磁盤(pán)鎖頻繁的申請(qǐng)和釋放的操作,減少了對(duì)因申請(qǐng)和釋放磁盤(pán)鎖對(duì)磁盤(pán)IO的占用,提升了系統(tǒng)的整體性能。

圖5為依據(jù)本發(fā)明一實(shí)施例的一種具體的磁盤(pán)鎖管理方法的信令圖,如圖5所示,該流程包含:

S502:第一節(jié)點(diǎn)從數(shù)據(jù)存儲(chǔ)系統(tǒng)讀取待訪問(wèn)資源的磁盤(pán)鎖。

當(dāng)?shù)谝还?jié)點(diǎn)需要訪問(wèn)資源時(shí),需要獲取資源的磁盤(pán)鎖,如果當(dāng)前沒(méi)有其他節(jié)點(diǎn)占有該磁盤(pán)鎖,則磁盤(pán)鎖的占有字段的值為0。第一節(jié)點(diǎn)根據(jù)讀取到的磁盤(pán)鎖占有字段的值,確定當(dāng)前沒(méi)有其他節(jié)點(diǎn)占有該磁盤(pán)鎖。

S504:第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求。

其中,第一節(jié)點(diǎn)發(fā)送的獲取請(qǐng)求中攜帶步驟S504中讀取的占有字段的舊值0以及第一節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)ID1。

數(shù)據(jù)存儲(chǔ)系統(tǒng)接收到第一節(jié)點(diǎn)發(fā)送的獲取請(qǐng)求后,首先比較獲取請(qǐng)求中攜帶的舊值和當(dāng)前占有字段中的值,如果二者相等,則表示在步驟S502和步驟S504之間沒(méi)有其他的節(jié)點(diǎn)獲取到該磁盤(pán)鎖,數(shù)據(jù)存儲(chǔ)系統(tǒng)將第一節(jié)點(diǎn)的標(biāo)識(shí)ID1寫(xiě)入磁盤(pán)鎖的占有字段,表示由第一節(jié)點(diǎn)占有該磁盤(pán)鎖。

S506:第二節(jié)點(diǎn)從數(shù)據(jù)存儲(chǔ)系統(tǒng)讀取磁盤(pán)鎖。

因?yàn)楣?jié)點(diǎn)對(duì)資源的訪問(wèn)存在熱點(diǎn)現(xiàn)象,第一節(jié)點(diǎn)獲取到磁盤(pán)鎖后,不會(huì)主動(dòng)釋放,當(dāng)?shù)诙?jié)點(diǎn)需要訪問(wèn)資源時(shí),需要獲取資源的磁盤(pán)鎖,因?yàn)楫?dāng)前第一節(jié)點(diǎn)占有磁盤(pán)鎖,磁盤(pán)鎖的占有字段記錄有第一節(jié)點(diǎn)的標(biāo)識(shí),第二節(jié)點(diǎn)讀取磁盤(pán)鎖后,根據(jù)讀取的磁盤(pán)鎖的占有字段記錄的第一節(jié)點(diǎn)的標(biāo)識(shí)信息,確定當(dāng)前第一節(jié)點(diǎn)占有該磁盤(pán)鎖。

S508:第二節(jié)點(diǎn)向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,該釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖。

第二節(jié)點(diǎn)根據(jù)讀取的磁盤(pán)鎖的占有字段,確定當(dāng)前第一節(jié)點(diǎn)占有磁盤(pán)鎖,因?yàn)榈谝还?jié)點(diǎn)沒(méi)有主動(dòng)釋放磁盤(pán)鎖,第二節(jié)點(diǎn)為了獲取磁盤(pán)鎖,需要向第一節(jié)點(diǎn)發(fā)送釋放消息。

S510:第一節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息,該釋放消息用于釋放第一節(jié)點(diǎn)對(duì)磁盤(pán)鎖的占用。

第一節(jié)點(diǎn)接收到第二節(jié)點(diǎn)發(fā)送的釋放請(qǐng)求后,判斷當(dāng)前是否存在對(duì)磁盤(pán)鎖對(duì)應(yīng)的資源的正在進(jìn)行的訪問(wèn)操作,如果有對(duì)該資源正在進(jìn)行的訪問(wèn)操作,則第一節(jié)點(diǎn)持續(xù)占用該磁盤(pán)鎖,直至完成當(dāng)前對(duì)該資源正在進(jìn)行的訪問(wèn)操作后再釋放磁盤(pán)鎖。如果當(dāng)前沒(méi)有對(duì)該資源正在進(jìn)行的訪問(wèn)操作,在第一節(jié)點(diǎn)釋放該磁盤(pán)鎖??蛇x的,為了避免頻繁的鎖切換,第一節(jié)點(diǎn)在釋放磁盤(pán)鎖之前還確認(rèn)第一節(jié)點(diǎn)對(duì)磁盤(pán)鎖的占用時(shí)間超過(guò)預(yù)設(shè)的閾值。

具體的,釋放消息中攜帶第一節(jié)點(diǎn)的標(biāo)識(shí)和0標(biāo)識(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)接收到釋放請(qǐng)求后,比較釋放消息中攜帶的第一標(biāo)識(shí)與當(dāng)前磁盤(pán)鎖占有字段中記錄的標(biāo)識(shí),如果二者相同,則將0標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段,標(biāo)識(shí)沒(méi)有節(jié)點(diǎn)占有該磁盤(pán)鎖。

S512:第二節(jié)點(diǎn)從數(shù)據(jù)存儲(chǔ)系統(tǒng)讀取磁盤(pán)鎖。

第二節(jié)點(diǎn)可以按照固定的周期讀取磁盤(pán)鎖,并判斷第一節(jié)點(diǎn)是否已經(jīng)將磁盤(pán)鎖釋放,如果第二節(jié)點(diǎn)讀取的磁盤(pán)鎖的占有字段的標(biāo)識(shí)為0,則表明第一節(jié)點(diǎn)已經(jīng)成功將磁盤(pán)鎖釋放。

S514:第二節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,該獲取請(qǐng)求用于獲取磁盤(pán)鎖。

第二節(jié)點(diǎn)在確認(rèn)第一節(jié)點(diǎn)釋放磁盤(pán)鎖后,向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求。具體的,第二節(jié)點(diǎn)發(fā)送的獲取請(qǐng)求中攜帶第二節(jié)點(diǎn)的標(biāo)識(shí)和第二節(jié)點(diǎn)從磁盤(pán)鎖的占有字段中讀取的舊值0。數(shù)據(jù)存儲(chǔ)系統(tǒng)接收到第二節(jié)點(diǎn)發(fā)送的獲取請(qǐng)求后,比較第二節(jié)點(diǎn)發(fā)送的獲取請(qǐng)求中鞋底的舊值0與磁盤(pán)鎖占有字段記錄的值,如果二者相同,標(biāo)識(shí)第一節(jié)點(diǎn)釋放磁盤(pán)鎖后,當(dāng)前沒(méi)有其他節(jié)點(diǎn)占有了該磁盤(pán)鎖,則數(shù)據(jù)存儲(chǔ)系統(tǒng)將第二節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段,表示第二節(jié)點(diǎn)站由磁盤(pán)鎖。

可選的,磁盤(pán)鎖還包含等待字段,該等待字段記錄正在等待獲取磁盤(pán)鎖的節(jié)點(diǎn),例如,第二節(jié)點(diǎn)讀取磁盤(pán)鎖后,發(fā)現(xiàn)第一節(jié)點(diǎn)正在占用磁盤(pán)鎖,如果磁盤(pán)鎖等待字段記錄的標(biāo)識(shí)為0,第二節(jié)點(diǎn)可以請(qǐng)求數(shù)據(jù)存儲(chǔ)系統(tǒng)將第二節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入等待字段。后續(xù)數(shù)據(jù)存儲(chǔ)系統(tǒng)接收到第二節(jié)點(diǎn)的獲取請(qǐng)求后,還會(huì)比較第二節(jié)點(diǎn)的標(biāo)識(shí)與磁盤(pán)鎖等待字段記錄的標(biāo)識(shí),如果二者相同,則允許將第二節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入占有字段,并將等待字段置0。

圖6為依據(jù)本發(fā)明一實(shí)施例的一種具體的磁盤(pán)鎖管理方法的信令圖,如圖6所示,該流程包含:

步驟S602-S606參照步驟S502-S506描述,在此不再贅述。

S608:第一節(jié)點(diǎn)按照預(yù)設(shè)的占有周期向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息。

為了避免頻繁的請(qǐng)求鎖和釋放鎖的操作,第一節(jié)點(diǎn)在完成訪問(wèn)操作后,并不會(huì)立即釋放獲取的磁盤(pán)鎖,而是按照預(yù)設(shè)的占有周期釋放磁盤(pán)鎖。第一節(jié)點(diǎn)維護(hù)有占有磁盤(pán)鎖的時(shí)間,當(dāng)時(shí)間到達(dá)預(yù)設(shè)的時(shí)間周期后,釋放磁盤(pán)鎖。

釋放消息的具體描述參照?qǐng)D5實(shí)施例,在此不再贅述。

S610:第二節(jié)點(diǎn)讀取磁盤(pán)鎖。

第二節(jié)點(diǎn)可以按照預(yù)設(shè)的周期去讀取磁盤(pán)鎖,第一節(jié)地釋放磁盤(pán)鎖后,第二節(jié)點(diǎn)讀取的磁盤(pán)鎖顯示磁盤(pán)鎖的占有字段為0,表明當(dāng)前沒(méi)有節(jié)點(diǎn)占用該磁盤(pán)鎖。

S612:第二節(jié)點(diǎn)向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求。

步驟S610和S612的具體描述參照步驟S512和步驟S514,在此不再贅述。

圖7為依據(jù)本發(fā)明一實(shí)施例的的磁盤(pán)鎖管理裝置700的邏輯結(jié)構(gòu)示意圖,如圖7所示,裝置700包括:

發(fā)送單元702,用于向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,該獲取請(qǐng)求用于請(qǐng)求獲取磁盤(pán)鎖。

接收單元704,用于接收釋放請(qǐng)求,該釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖。

發(fā)送單元702還用于向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息,該釋放消息用于釋放磁盤(pán)鎖。

可選的,接收單元704具體用于接收來(lái)自第二節(jié)點(diǎn)的釋放請(qǐng)求,第二節(jié)點(diǎn)為待請(qǐng)求獲取磁盤(pán)鎖的節(jié)點(diǎn)。發(fā)送單元702向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之后,還可以用于向第二節(jié)點(diǎn)發(fā)送確認(rèn)消息,確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放磁盤(pán)鎖。

可選的,接收單元704具體用于接收來(lái)自數(shù)據(jù)存儲(chǔ)系統(tǒng)的釋放請(qǐng)求。

可選的,如圖8所示,裝置700還包括確定單元706,發(fā)送單元702向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送釋放消息之前,確定單元706用于確定第一節(jié)點(diǎn)占用磁盤(pán)鎖的時(shí)間超過(guò)預(yù)設(shè)的閾值。

具體的,磁盤(pán)鎖包含占有字段,占有字段用于記錄占有磁盤(pán)鎖的節(jié)點(diǎn),發(fā)送單元702發(fā)送的獲取請(qǐng)求中攜帶第一節(jié)點(diǎn)的標(biāo)識(shí),獲取請(qǐng)求用于將第一節(jié)點(diǎn)的標(biāo)識(shí)寫(xiě)入磁盤(pán)鎖的占有字段。

應(yīng)理解,為了描述方便,本發(fā)明實(shí)施例的發(fā)送單元702、接收單元704和確定單元706的功能可以集合在圖3所示的通信模塊和/或磁盤(pán)鎖管理模塊內(nèi),由處理器302執(zhí)行通信模塊和/或磁盤(pán)鎖管理模塊的不同部分,實(shí)現(xiàn)不同的功能,但在具體實(shí)現(xiàn)中,可以將通信模塊和/或磁盤(pán)鎖管理模塊進(jìn)行進(jìn)一步的細(xì)化,本發(fā)明實(shí)施例對(duì)此不進(jìn)行限定。

本發(fā)明實(shí)施例是第一節(jié)點(diǎn)的裝置實(shí)施例,圖4-圖6實(shí)施例部分的特征描述,適用于本發(fā)明實(shí)施例,在此不再贅述。

圖9為依據(jù)本發(fā)明一實(shí)施例的的磁盤(pán)鎖管理裝置900的邏輯結(jié)構(gòu)示意圖,資源和該資源的磁盤(pán)鎖保存在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,該磁盤(pán)鎖包含占有字段,占有字段用于記錄占有該磁盤(pán)鎖的節(jié)點(diǎn),占有所述磁盤(pán)鎖的節(jié)點(diǎn)擁有訪問(wèn)該資源的權(quán)限,如圖9所示,裝置900包括:

讀取單元902,用于讀取磁盤(pán)鎖;

確定單元904,用于根據(jù)讀取的磁盤(pán)鎖的占有字段,確定磁盤(pán)鎖被第一節(jié)點(diǎn)占用;

發(fā)送單元906,用于向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求,釋放請(qǐng)求用于請(qǐng)求第一節(jié)點(diǎn)釋放磁盤(pán)鎖。

可選的,如圖10所示,裝置900還包括接收單元908,發(fā)送單元906向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求之后,接收單元908還用于接收第一節(jié)點(diǎn)發(fā)送的確認(rèn)消息,確認(rèn)消息用于指示第一節(jié)點(diǎn)已經(jīng)釋放磁盤(pán)鎖。

發(fā)送單元906向第一節(jié)點(diǎn)發(fā)送釋放請(qǐng)求之后,還用于向數(shù)據(jù)存儲(chǔ)系統(tǒng)發(fā)送獲取請(qǐng)求,該獲取請(qǐng)求用于請(qǐng)求獲取磁盤(pán)鎖。

應(yīng)理解,為了描述方便,本發(fā)明實(shí)施例的讀取單元902、確定單元904、發(fā)送單元906和接收單元908的功能可以集合在圖3所示的通信模塊和/或磁盤(pán)鎖管理模塊內(nèi),由處理器302執(zhí)行通信模塊和/或磁盤(pán)鎖管理模塊的不同部分,實(shí)現(xiàn)不同的功能,但在具體實(shí)現(xiàn)中,可以將通信模塊和/或磁盤(pán)鎖管理模塊進(jìn)行進(jìn)一步的細(xì)化,本發(fā)明實(shí)施例對(duì)此不進(jìn)行限定。

本發(fā)明實(shí)施例是第二節(jié)點(diǎn)的裝置實(shí)施例,圖4-圖6實(shí)施例部分的特征描述,適用于本發(fā)明實(shí)施例,在此不再贅述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),設(shè)備和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或模塊的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

所述作為分離部件說(shuō)明的模塊可以是或者也可以不是物理上分開(kāi)的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理模塊中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能模塊的形式實(shí)現(xiàn)。

上述以軟件功能模塊的形式實(shí)現(xiàn)的集成的模塊,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能模塊存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)硬盤(pán)、只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。

最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1