專(zhuān)利名稱(chēng):一種元數(shù)據(jù)的修改方法和元數(shù)據(jù)服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,特別是涉及一種元數(shù)據(jù)的修改方法和 元數(shù)據(jù)服務(wù)器。
背景技術(shù):
文件系統(tǒng)是用于管理文件及目錄的一個(gè)系統(tǒng),傳統(tǒng)的本地文件系統(tǒng)只 需要管理本地的文件和目錄的信息。本地的文件系統(tǒng)主要是管理文件如何 存儲(chǔ)在磁盤(pán)上以及提供上層安全的訪(fǎng)問(wèn)文件元數(shù)據(jù)以及數(shù)據(jù)信息的接口 , 在本地的文件系統(tǒng)中,通過(guò)一種讀寫(xiě)鎖、自旋鎖、信號(hào)量的方式來(lái)保護(hù)本 地的資源訪(fǎng)問(wèn)不會(huì)產(chǎn)生沖突。
分布式文件系統(tǒng)是一種基于客戶(hù)機(jī)/服務(wù)器模式的 一種文件系統(tǒng),在這 種系統(tǒng)的應(yīng)用環(huán)境中,分為客戶(hù)端和服務(wù)端,數(shù)據(jù)和元數(shù)據(jù)信息都存放在 服務(wù)端??蛻?hù)端需要修改某個(gè)文件的數(shù)據(jù)的時(shí)候,必須先從元數(shù)據(jù)服務(wù)器 上獲得元數(shù)據(jù)信息,然后客戶(hù)端再根據(jù)元數(shù)據(jù)信息去訪(fǎng)問(wèn)數(shù)據(jù)服務(wù)器做修 改操作,修改完后客戶(hù)端再發(fā)送改動(dòng)后的元數(shù)據(jù)信息到元數(shù)據(jù)服務(wù)器端。
目前對(duì)于元數(shù)據(jù)的訪(fǎng)問(wèn)采用了分布式鎖的思想,將鎖的客戶(hù)端布置在 了客戶(hù)端,鎖的服務(wù)器端布置在元數(shù)據(jù)服務(wù)器上,客戶(hù)端如果要操作某一 個(gè)元數(shù)據(jù)的時(shí)候,須先申請(qǐng)到該元數(shù)據(jù)的鎖,這樣在多個(gè)客戶(hù)端操作元數(shù) 據(jù)的時(shí)候就可以防止數(shù)據(jù)的修改和讀取的不 一致性。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺點(diǎn)當(dāng) 一個(gè)客戶(hù)端獲得了某個(gè)元數(shù)據(jù)的寫(xiě)鎖的時(shí)候,這個(gè)時(shí)候如果系統(tǒng)中有上千 個(gè)客戶(hù)端的時(shí)候,可能會(huì)有幾十個(gè)客戶(hù)端向元數(shù)據(jù)服務(wù)器發(fā)送寫(xiě)鎖請(qǐng)求的
5時(shí)候,那么這些寫(xiě)鎖請(qǐng)求將不會(huì)被授權(quán),這些申請(qǐng)的用戶(hù)將處于等待狀態(tài), 對(duì)于客戶(hù)來(lái)說(shuō)在獲取元數(shù)據(jù)的時(shí)候,長(zhǎng)時(shí)間的處于等待狀態(tài),并在很大程 度上影響了訪(fǎng)問(wèn)數(shù)據(jù)的效率。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種元數(shù)據(jù)的修改方法和元數(shù)據(jù)服務(wù)器,以提高修 改元數(shù)據(jù)的效率。
根據(jù)本發(fā)明的一方面,提供一種元數(shù)據(jù)的修改方法,包括
將多個(gè)客戶(hù)端發(fā)送的修改同 一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)
列;
將所述多個(gè)客戶(hù)端發(fā)送的修改同 一 元數(shù)據(jù)的修改數(shù)據(jù)緩沖至循環(huán)操 作隊(duì)列;
從所述循環(huán)操作隊(duì)列中獲取與所述循環(huán)申請(qǐng)隊(duì)列中的最后申請(qǐng)的寫(xiě) 鎖申請(qǐng)對(duì)應(yīng)的^f奮改數(shù)據(jù);
根據(jù)所述修改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修改。 根據(jù)本發(fā)明的另一方面,還提供一種元數(shù)據(jù)服務(wù)器,包括 元數(shù)據(jù)模塊,用于提供元數(shù)據(jù);
鎖管理模塊,用于將多個(gè)客戶(hù)端發(fā)送的修改同 一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)和 所述寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù)分別緩沖至循環(huán)申請(qǐng)隊(duì)列和循環(huán)操作隊(duì)列, 并從所述循環(huán)操作隊(duì)列中獲取與所述循環(huán)申請(qǐng)隊(duì)列中的最后申請(qǐng)的寫(xiě)鎖 申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù),根據(jù)所述修改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修改。
采用上述提供的元數(shù)據(jù)的修改方法和元數(shù)據(jù)服務(wù)器,通過(guò)將修改同一 元數(shù)據(jù)的多個(gè)寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列,并將該多個(gè)寫(xiě)鎖申請(qǐng)的修改 數(shù)據(jù)緩沖至循環(huán)操作隊(duì)列,并采用在循環(huán)申請(qǐng)隊(duì)列中最后申請(qǐng)的客戶(hù)端發(fā) 送的修改數(shù)據(jù)對(duì)元數(shù)據(jù)修改,從而提高修改元數(shù)據(jù)的效率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì) 實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地, 下面描述中的附圖僅僅是本發(fā)明的 一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員 來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的 附圖。
圖1為本發(fā)明實(shí)施例的寫(xiě)鎖申請(qǐng)的元數(shù)據(jù)服務(wù)器的結(jié)構(gòu)示意圖; 圖2為本發(fā)明實(shí)施例的修改元數(shù)據(jù)的元數(shù)據(jù)服務(wù)器的結(jié)構(gòu)示意圖; 圖3為本發(fā)明實(shí)施例的元數(shù)據(jù)的修改方法的流程圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn) 行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例, 而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi) 有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的 范圍。
圖1為本發(fā)明實(shí)施例的寫(xiě)鎖申請(qǐng)的元數(shù)據(jù)服務(wù)器的結(jié)構(gòu)示意圖。 在本實(shí)施例中,客戶(hù)端組IO與元數(shù)據(jù)服務(wù)器20通信連接,客戶(hù)端組 10用于當(dāng)需要修改元數(shù)據(jù)服務(wù)器20中的元數(shù)據(jù)時(shí),發(fā)送寫(xiě)鎖申請(qǐng)至元數(shù) 據(jù)服務(wù)器20。在本實(shí)施例中,客戶(hù)端組10包括第一客戶(hù)端組101、第二
客戶(hù)端組102.....第n客戶(hù)端組10n。
在本實(shí)施例中,當(dāng)?shù)谝豢蛻?hù)端組101、第二客戶(hù)端組102.....第n
客戶(hù)端組10n需修改同一元數(shù)據(jù)時(shí),第一客戶(hù)端組101、第二客戶(hù)端組
102.....第n客戶(hù)端組10n分別發(fā)送寫(xiě)鎖申請(qǐng)至元數(shù)據(jù)服務(wù)器20。在圖
l中所示,第一客戶(hù)端組101發(fā)送寫(xiě)鎖申請(qǐng)1至元數(shù)據(jù)服務(wù)器20,第二客 戶(hù)端組102發(fā)送寫(xiě)鎖申請(qǐng)2至元數(shù)據(jù)服務(wù)器20,第n客戶(hù)端組10n發(fā)送寫(xiě)鎖申請(qǐng)n至元數(shù)據(jù)服務(wù)器20。
在本實(shí)施例是,元數(shù)據(jù)服務(wù)器20包括鎖管理模塊200及元數(shù)據(jù)模塊 210。元數(shù)據(jù)模塊210用于提供元數(shù)據(jù)。鎖管理模塊200用于將多個(gè)客戶(hù) 端發(fā)送的修改同 一 元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)和所述寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù)分 別緩沖至循環(huán)申請(qǐng)隊(duì)列和循環(huán)操作隊(duì)列,并從所述循環(huán)操作隊(duì)列中獲取與 所述循環(huán)申請(qǐng)隊(duì)列中的最后申請(qǐng)的寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù),根據(jù)所述修 改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修改。在本實(shí)施例中,鎖管理模塊200包括循環(huán) 申請(qǐng)子模塊2000,循環(huán)申請(qǐng)子模塊2000用于接收客戶(hù)端發(fā)送的多個(gè)寫(xiě)鎖 申請(qǐng),并將該多個(gè)寫(xiě)鎖申請(qǐng)緩沖至長(zhǎng)度為L(zhǎng)的循環(huán)申請(qǐng)隊(duì)列。在本實(shí)施例 中,循環(huán)申請(qǐng)子模塊2000還用于將在預(yù)定時(shí)間內(nèi)接收的多個(gè)寫(xiě)鎖申請(qǐng)緩 沖至長(zhǎng)度為L(zhǎng)的循環(huán)申請(qǐng)隊(duì)列。在本實(shí)施例中,若該多個(gè)寫(xiě)鎖申請(qǐng)的數(shù)量 K超過(guò)L時(shí),循環(huán)申請(qǐng)子模塊2000將L個(gè)寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列, 并將剩余的寫(xiě)鎖申請(qǐng)緩沖至等待隊(duì)列;若該多個(gè)寫(xiě)鎖申請(qǐng)的數(shù)量K沒(méi)有超 過(guò)L時(shí),循環(huán)申請(qǐng)子模塊2 0 0 0將K個(gè)寫(xiě)鎖申請(qǐng)緩沖于循環(huán)申請(qǐng)隊(duì)列。
在本實(shí)施例中,為充分理解本發(fā)明,假設(shè)客戶(hù)端包括6個(gè)客戶(hù)端,即 n取6,當(dāng)然,n也可以取大于6或小于6的值。假設(shè)同一元數(shù)據(jù)的寫(xiě)鎖申 請(qǐng)的順序?yàn)榈诙蛻?hù)端、第一客戶(hù)端、第三客戶(hù)端、第六客戶(hù)端、第五客 戶(hù)端、第四客戶(hù)端,即第二客戶(hù)端為最先申請(qǐng),第四客戶(hù)端為最后申請(qǐng)。
循環(huán)申請(qǐng)子模塊2000還用于當(dāng)將多個(gè)寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列 后,返回該多個(gè)寫(xiě)鎖申請(qǐng)的授權(quán)鎖至相對(duì)應(yīng)的客戶(hù)端。如圖1所示,返回 寫(xiě)鎖申請(qǐng)1的授權(quán)鎖1至第一客戶(hù)端組101,返回寫(xiě)鎖申請(qǐng)1的授權(quán)鎖2 至第二客戶(hù)端組102,返回寫(xiě)鎖申請(qǐng)n的授:權(quán)鎖n至第n客戶(hù)端組10n。 在本實(shí)施例中,循環(huán)申請(qǐng)子模塊2000還用于配置每個(gè)授權(quán)鎖一個(gè)時(shí)間值, 即每個(gè)授權(quán)鎖對(duì)應(yīng)一個(gè)時(shí)間值,可以理解為接收每個(gè)寫(xiě)鎖申請(qǐng)時(shí),有一個(gè) 接收的時(shí)間,以表示寫(xiě)鎖申請(qǐng)的先后順序,當(dāng)返回授權(quán)鎖時(shí),這個(gè)時(shí)間值 表示該寫(xiě)鎖申請(qǐng)?zhí)幱谘h(huán)申請(qǐng)隊(duì)列的順序。圖2為本發(fā)明實(shí)施例的修改元數(shù)據(jù)的元數(shù)據(jù)服務(wù)器的結(jié)構(gòu)示意圖。
在本實(shí)施例中,當(dāng)客戶(hù)端組IO接收至元數(shù)據(jù)服務(wù)器20返回的授權(quán)鎖 后,發(fā)送同一元數(shù)據(jù)的修改數(shù)據(jù)至元數(shù)據(jù)服務(wù)器20。如圖2所示,第一客 戶(hù)端組101發(fā)送修改數(shù)據(jù)的修改操作1至元數(shù)據(jù)服務(wù)器20,第二客戶(hù)端組 102發(fā)送修改數(shù)據(jù)的修改操作1至元數(shù)據(jù)服務(wù)器20,第n客戶(hù)端組10n 發(fā)送修改數(shù)據(jù)的修改操作n至元數(shù)據(jù)服務(wù)器20。
在本實(shí)施例中,鎖管理才莫塊200還包括循環(huán)操作子才莫塊2002,循環(huán)操 作子模塊2002用于接收客戶(hù)端組10發(fā)送的修改同 一元數(shù)據(jù)的多個(gè)修改數(shù) 據(jù)。在本實(shí)施例中,循環(huán)操作子模塊2002還用于將該多個(gè)修改數(shù)據(jù)緩沖 至循環(huán)操作隊(duì)列。在本實(shí)施例中,循環(huán)操作子模塊2002根據(jù)接收的順序 將該多個(gè)修改數(shù)據(jù)緩沖至循環(huán)操作隊(duì)列,并返回修改操作成功的消息至客 戶(hù)端組IO。如圖2所示,返回修改操作1的成功1至第一客戶(hù)端組101, 返回修改操作2的成功2至第二客戶(hù)端組102,返回修改操作n的成功n 至第n客戶(hù)端組10n。
在本實(shí)施例中,假設(shè)接收的順序?yàn)榈诹蛻?hù)端、第四客戶(hù)端、第一客 戶(hù)端、第三客戶(hù)端、第二客戶(hù)端、第五客戶(hù)端。當(dāng)然,也可以進(jìn)行其它排 列。
在本實(shí)施例中,循環(huán)操作子模塊2002還用于根據(jù)循環(huán)操作隊(duì)列和循 環(huán)申請(qǐng)隊(duì)列對(duì)元數(shù)據(jù)進(jìn)行修改操作。在本實(shí)施例中,循環(huán)操作子模塊2002 先獲取循環(huán)申請(qǐng)隊(duì)列中的寫(xiě)鎖申請(qǐng)的先后順序,并獲取最后申請(qǐng)的寫(xiě)鎖申 請(qǐng),再?gòu)难h(huán)操作隊(duì)列中獲取與該最后申請(qǐng)的寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù), 最后根據(jù)該修改數(shù)據(jù)對(duì)元數(shù)據(jù)模塊210中的該元數(shù)據(jù)進(jìn)行修改操作。循環(huán) 操作子模塊2002還用于當(dāng)完成修改操作后,清空循環(huán)操作隊(duì)列和循環(huán)申 請(qǐng)隊(duì)列。
可以理解為最先申請(qǐng)的寫(xiě)鎖申請(qǐng)的修改數(shù)據(jù)的操作是最先進(jìn)行的, 之后按申請(qǐng)順序進(jìn)行操作,即第二客戶(hù)端需最先進(jìn)行修改操作,其次為第一客戶(hù)端、第三客戶(hù)端、第六客戶(hù)端、第五客戶(hù)端、第四客戶(hù)端,當(dāng)6個(gè)
客戶(hù)端都修改完元數(shù)據(jù)后,即第四客戶(hù)端修改完元數(shù)據(jù)后,元數(shù)據(jù)模塊210 中儲(chǔ)存的元數(shù)據(jù)為第四客戶(hù)端修改完的元數(shù)據(jù),而第一客戶(hù)端、第三客戶(hù) 端、第六客戶(hù)端、第五客戶(hù)端修改后的數(shù)據(jù)都被第四客戶(hù)端修改后的元數(shù) 據(jù)覆蓋,可以理解為最后申請(qǐng)的第四客戶(hù)端修改完的元數(shù)據(jù)為有效的元數(shù) 據(jù),因此,為避免不斷的修改元數(shù)據(jù)模塊210中的同一元數(shù)據(jù),采用在循 環(huán)申請(qǐng)隊(duì)列中最后申請(qǐng)的客戶(hù)端發(fā)送的修改數(shù)據(jù)。
在本實(shí)施例中,當(dāng)元數(shù)據(jù)服務(wù)器20空閑時(shí),若此時(shí)循環(huán)操作子模塊 2002接收到非最后申請(qǐng)的客戶(hù)端發(fā)送的修改數(shù)據(jù),可進(jìn)行修改操作,但當(dāng) 接收到最后申請(qǐng)的客戶(hù)端發(fā)送的修改數(shù)據(jù)后,并進(jìn)行修改操作,之后接收 的非最后申請(qǐng)的客戶(hù)端發(fā)送的修改數(shù)據(jù)不被采用。當(dāng)元數(shù)據(jù)服務(wù)器20不 空閑,循環(huán)操作子模塊2002將所接收的客戶(hù)端組IO發(fā)送的修改數(shù)據(jù)緩沖 至循環(huán)操作隊(duì)列。
在本實(shí)施例中,所述鎖管理模塊200還包括恢復(fù)子模塊2004,用于當(dāng) 所述元數(shù)據(jù)服務(wù)器20死機(jī)后,接收所述客戶(hù)端組10發(fā)送的修改同一元數(shù) 據(jù)的鎖信息,所述鎖信息為所述授權(quán)鎖的時(shí)間值,根據(jù)所述鎖信息恢復(fù)所 述循環(huán)申請(qǐng)子模塊2000中所述同一元數(shù)據(jù)的循環(huán)申請(qǐng)隊(duì)列和所述循環(huán)操 作子模塊2002中的循環(huán)操作隊(duì)列
本發(fā)明實(shí)施例提供的元數(shù)據(jù)服務(wù)器,通過(guò)在鎖管理模塊中設(shè)置循環(huán)申 請(qǐng)隊(duì)列和循環(huán)操作隊(duì)列,采用在循環(huán)申請(qǐng)隊(duì)列中最后申請(qǐng)的客戶(hù)端發(fā)送的 修改數(shù)據(jù),即篩選出多個(gè)元數(shù)據(jù)修改操作請(qǐng)求的寫(xiě)鎖申請(qǐng)中有效的寫(xiě)鎖申 請(qǐng),并根據(jù)篩選出的寫(xiě)鎖申請(qǐng)的修改數(shù)據(jù)對(duì)元數(shù)據(jù)進(jìn)行修改,從而可以減 少磁盤(pán)的操作次數(shù),以提高修改元數(shù)據(jù)的效率,并不需要使客戶(hù)端都處于 等待狀態(tài),最終提高了訪(fǎng)問(wèn)數(shù)據(jù)的效率。
圖3為本發(fā)明實(shí)施例的元數(shù)據(jù)的修改方法的流程圖。
在本實(shí)施例中,步驟S300,接收多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)。在本實(shí)施例中,當(dāng)多個(gè)客戶(hù)端需修改同一元數(shù)據(jù)時(shí),每個(gè)客戶(hù) 端需發(fā)送修改該元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)。
步驟S302,將該寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列,并返回授權(quán)鎖的消息 至客戶(hù)端。在本實(shí)施列中,對(duì)每個(gè)寫(xiě)鎖申請(qǐng),返回與該寫(xiě)鎖申請(qǐng)相對(duì)應(yīng)的 授權(quán)鎖的消息至客戶(hù)端。在本實(shí)施例中,根據(jù)接收的順序?qū)⒃摱鄠€(gè)寫(xiě)鎖申 請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列,其中,每個(gè)授權(quán)鎖對(duì)應(yīng)一個(gè)時(shí)間值,可以理解為 接收每個(gè)寫(xiě)鎖申請(qǐng)時(shí),有一個(gè)接收的時(shí)間,以表示寫(xiě)鎖申請(qǐng)的先后順序, 當(dāng)返回授權(quán)鎖時(shí),這個(gè)時(shí)間值表示該寫(xiě)鎖申請(qǐng)?zhí)幱谘h(huán)申請(qǐng)隊(duì)列的順序。
步驟S304,接收客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的多個(gè)修改數(shù)據(jù),并根 據(jù)接收的順序?qū)⒍鄠€(gè)修改數(shù)據(jù)緩沖至循環(huán)操作隊(duì)列,及返回修改操作成功 的消息至客戶(hù)端。
步驟S306,從所述循環(huán)操作隊(duì)列中獲取與所述循環(huán)申請(qǐng)隊(duì)列中的最后 申請(qǐng)的寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù),根據(jù)所述修改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修 改。在本實(shí)施例中,先獲取循環(huán)申請(qǐng)隊(duì)列中的寫(xiě)鎖申請(qǐng)的先后順序,并獲 取最后申請(qǐng)的寫(xiě)鎖申請(qǐng),再?gòu)难h(huán)操作隊(duì)列中獲取與該最后申請(qǐng)的寫(xiě)鎖申 請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù),最后根據(jù)該修改數(shù)據(jù)對(duì)該元數(shù)據(jù)進(jìn)行修改操作。
步驟S308,當(dāng)完成修改操作后,清空循環(huán)操作隊(duì)列和循環(huán)申請(qǐng)隊(duì)列。
本發(fā)明實(shí)施例提供的元數(shù)據(jù)的修改方法,通過(guò)將修改同 一元數(shù)據(jù)的多 個(gè)寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列,并將該多個(gè)寫(xiě)鎖申請(qǐng)的修改數(shù)據(jù)緩沖至 循環(huán)操作隊(duì)列,采用在循環(huán)申請(qǐng)隊(duì)列中最后申請(qǐng)的客戶(hù)端發(fā)送的修改數(shù) 據(jù),即篩選出多個(gè)元數(shù)據(jù)修改操作請(qǐng)求的寫(xiě)鎖申請(qǐng)中有效的寫(xiě)鎖申請(qǐng),并 根據(jù)篩選出的寫(xiě)鎖申請(qǐng)的修改數(shù)據(jù)對(duì)元數(shù)據(jù)進(jìn)行修改,從而可以減少磁盤(pán) 的操作次數(shù),以提高修改元數(shù)據(jù)的效率,并不需要使客戶(hù)端都處于等待狀 態(tài),最終提高了訪(fǎng)問(wèn)數(shù)據(jù)的效率。
在本實(shí)施例中,當(dāng)處理修改元數(shù)據(jù)的操作的過(guò)程中,服務(wù)器突然死機(jī), 此時(shí),服務(wù)器過(guò)行重新啟動(dòng)以恢復(fù)之前的處理操作,可以按以下流程操作
iiA:接收多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的鎖信息,鎖信息為授權(quán) 鎖的時(shí)間值;
B:根據(jù)鎖信息恢復(fù)同一元數(shù)據(jù)的循環(huán)申請(qǐng)隊(duì)列和循環(huán)操作隊(duì)列,并 進(jìn)行相應(yīng)的修改處理操作。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分 流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存 儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法 的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶 體(Read-Only Memory, ROM)或隨才幾存〗諸i己憶體(Random Access Memory, RAM)等。
最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn) 行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技 術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換, 而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的 4青神和范圍。
權(quán)利要求
1、一種元數(shù)據(jù)的修改方法,其特征在于,包括將多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列;將所述多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的修改數(shù)據(jù)緩沖至循環(huán)操作隊(duì)列;從所述循環(huán)操作隊(duì)列中獲取與所述循環(huán)申請(qǐng)隊(duì)列中的最后申請(qǐng)的寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù);根據(jù)所述修改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修改。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將多個(gè)客戶(hù)端發(fā)送的修改同 一 元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列的步驟包括根據(jù)接收的順序?qū)⑺龆鄠€(gè)客戶(hù)端發(fā)送的修改同 一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)緩沖至所述循環(huán)申請(qǐng)隊(duì)列。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將多個(gè)客戶(hù)端發(fā)送的修改同 一 元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列之后的步驟包括返回所述寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的授權(quán)鎖的消息至所述多個(gè)客戶(hù)端,以使所述多個(gè)客戶(hù)端發(fā)送修改同 一元數(shù)據(jù)的修改數(shù)據(jù)。
4、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述授權(quán)鎖的消息包括授權(quán)鎖的時(shí)間值,當(dāng)在修改操作中突然死機(jī)時(shí),進(jìn)行恢復(fù)的過(guò)程包括接收所述多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的鎖信息,所述鎖信息為所述授權(quán)鎖的時(shí)間值;根據(jù)所述鎖信息恢復(fù)所述同 一 元數(shù)據(jù)的循環(huán)申請(qǐng)隊(duì)列和循環(huán)操作隊(duì)列,并進(jìn)行相應(yīng)的<奮改處理#:作。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的修改數(shù)據(jù)緩沖至循環(huán)操作隊(duì)列的步驟包括根據(jù)接收的順序?qū)⑺龆鄠€(gè)客戶(hù)端發(fā)送的修改同 一 元數(shù)據(jù)的修改數(shù)據(jù)緩沖至所述循環(huán)操作隊(duì)列。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述多個(gè)客戶(hù)端 發(fā)送的修改同一元數(shù)據(jù)的修改數(shù)據(jù)緩沖至循環(huán)操作隊(duì)列之后的步驟包括返回所述修改數(shù)據(jù)相對(duì)應(yīng)的修改操作成功的消息至所述多個(gè)客戶(hù)端。
7、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述循環(huán)申請(qǐng) 隊(duì)列和循環(huán)操作隊(duì)列對(duì)所述元數(shù)據(jù)進(jìn)行修改的步驟包括獲取所述循環(huán)申請(qǐng)隊(duì)列中的寫(xiě)鎖申請(qǐng)的先后順序; 獲取最后申請(qǐng)的寫(xiě)鎖申請(qǐng)。
8、 一種元數(shù)據(jù)服務(wù)器,其特征在于,包括 元數(shù)據(jù)模塊,用于提供元數(shù)據(jù);鎖管理模塊,用于將多個(gè)客戶(hù)端發(fā)送的修改同 一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)和 所述寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù)分別緩沖至循環(huán)申請(qǐng)隊(duì)列和循環(huán)操作隊(duì)列, 并從所述循環(huán)操作隊(duì)列中獲取與所述循環(huán)申請(qǐng)隊(duì)列中的最后申請(qǐng)的寫(xiě)鎖 申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù),根據(jù)所述修改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修改。
9、 根據(jù)權(quán)利要求8所述的元數(shù)據(jù)服務(wù)器,其特征在于,所述鎖管理模塊 包括循環(huán)申請(qǐng)子模塊,用于根據(jù)接收的順序?qū)⑺龆鄠€(gè)客戶(hù)端發(fā)送的修改同 一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)緩沖至所述循環(huán)申請(qǐng)隊(duì)列,并返回所述寫(xiě)鎖申請(qǐng)對(duì)應(yīng) 的授權(quán)鎖的消息至所述多個(gè)客戶(hù)端,以使所述多個(gè)客戶(hù)端發(fā)送修改同 一元數(shù) 據(jù)的修改數(shù)據(jù)。
10、 根據(jù)權(quán)利要求9所述的元數(shù)據(jù)服務(wù)器,其特征在于,所述鎖管理模 塊還包括循環(huán)操作子模塊,用于根據(jù)接收的順序?qū)⑺龆鄠€(gè)客戶(hù)端發(fā)送的修改同 一元數(shù)據(jù)的修改數(shù)據(jù)緩沖至所述循環(huán)操作隊(duì)列,返回所述修改數(shù)據(jù)相對(duì)應(yīng) 的修改操作成功的消息至所述多個(gè)客戶(hù)端。
11、 根據(jù)權(quán)利要求1G所述的元數(shù)據(jù)服務(wù)器,其特征在于,所述循環(huán)操作子模塊還用于獲取所述循環(huán)申請(qǐng)隊(duì)列中的寫(xiě)鎖申請(qǐng)的先后順序,獲取最后申請(qǐng)的寫(xiě)鎖申請(qǐng),從所述循環(huán)操作隊(duì)列中獲取與所述最后申請(qǐng)的寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù),根據(jù)所述修改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修改操作。
12、根據(jù)權(quán)利要求IO所述的元數(shù)據(jù)服務(wù)器,其特征在于,所述授權(quán)鎖的消息包括授權(quán)鎖的時(shí)間值,所述鎖管理模塊還包括恢復(fù)子模塊,用于當(dāng)所述元數(shù)據(jù)服務(wù)器死機(jī)后,接收所述多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的鎖信息,所述鎖信息為所述授權(quán)鎖的時(shí)間值,根據(jù)所述鎖信息恢復(fù)所述循環(huán)申請(qǐng)子模塊中所述同 一元數(shù)據(jù)的循環(huán)申請(qǐng)隊(duì)列和所述循環(huán)操作子模塊中的循環(huán)操作隊(duì)列。
全文摘要
本發(fā)明實(shí)施方式公開(kāi)了一種元數(shù)據(jù)的修改方法,包括將多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的寫(xiě)鎖申請(qǐng)緩沖至循環(huán)申請(qǐng)隊(duì)列;將所述多個(gè)客戶(hù)端發(fā)送的修改同一元數(shù)據(jù)的修改數(shù)據(jù)緩沖至循環(huán)操作隊(duì)列;從所述循環(huán)操作隊(duì)列中獲取與所述循環(huán)申請(qǐng)隊(duì)列中的最后申請(qǐng)的寫(xiě)鎖申請(qǐng)對(duì)應(yīng)的修改數(shù)據(jù);根據(jù)所述修改數(shù)據(jù)對(duì)所述元數(shù)據(jù)進(jìn)行修改。本發(fā)明實(shí)施方式還提供一種元數(shù)據(jù)服務(wù)器,以提高修改元數(shù)據(jù)的效率。
文檔編號(hào)H04L12/56GK101488924SQ20091010547
公開(kāi)日2009年7月22日 申請(qǐng)日期2009年2月16日 優(yōu)先權(quán)日2009年2月16日
發(fā)明者兵 代, 遠(yuǎn) 袁 申請(qǐng)人:成都市華為賽門(mén)鐵克科技有限公司