專利名稱:元數(shù)據(jù)處理方法及裝置的制作方法
技術領域:
本發(fā)明實施例涉及網(wǎng)絡技術和計算機技木,尤其涉及一種元數(shù)據(jù)處理方法及裝置。
背景技術:
分布式系統(tǒng)提供元數(shù)據(jù)服務的方式主要包括兩種,分別為中心式元數(shù)據(jù)服務和對等式元數(shù)據(jù)服務。中心式元數(shù)據(jù)服務,包括元數(shù)據(jù)集群和數(shù)據(jù)集群。其中,元數(shù)據(jù)集群由分別用于存儲元數(shù)據(jù)的多個元數(shù)據(jù)服務器組成,數(shù)據(jù)集群由分別用于存儲數(shù)據(jù)的多個數(shù)據(jù)服務器組成。在中心式元數(shù)據(jù)服務中,元數(shù)據(jù)集群通常由其中一個元數(shù)據(jù)服務器作為中心節(jié)點與客戶端進行通信,對外提供服務。在元數(shù)據(jù)被修改后,該中心節(jié)點對元數(shù)據(jù)集群中的其他元數(shù)據(jù)服務器中的元數(shù)據(jù)進行更新。但是,分布式系統(tǒng)在采用中心式元數(shù)據(jù)服務的方式吋,由于各客戶端對元數(shù)據(jù)進行修改或訪問的請求,均需要路由到元數(shù)據(jù)集群的中心節(jié)點,使得該中心節(jié)點不僅需要對外提供對元數(shù)據(jù)的修改和訪問的服務,還需要將元數(shù)據(jù)的變動同步到元數(shù)據(jù)集群中的其他元數(shù)據(jù)服務器,對于單ー節(jié)點的過分依賴,會導致元數(shù)據(jù)服務的性能受到該中心節(jié)點性能的限制。分布式系統(tǒng)在采用對等式元數(shù)據(jù)服務的方法吋,元數(shù)據(jù)與數(shù)據(jù)均存儲在多個數(shù)據(jù)服務器組成的數(shù)據(jù)集群中,數(shù)據(jù)集群中不存在中心節(jié)點,客戶端可以直接修改或訪問存儲在各數(shù)據(jù)服務器中的元數(shù)據(jù),從而克服了元數(shù)據(jù)服務的性能受到中心節(jié)點性能限制的問
題。 但是,由于多個客戶端均可以對各數(shù)據(jù)服務器進行讀或?qū)懖僮?,而當多個客戶端并發(fā)寫時,會出現(xiàn)寫沖突的情況。在這樣的情況下,數(shù)據(jù)服務器和客戶端之間會發(fā)送大量的重試信息,導致在進行并發(fā)寫時,數(shù)據(jù)服務器提供元數(shù)據(jù)服務的性能較低。
發(fā)明內(nèi)容
本發(fā)明的第一個方面是提供一種元數(shù)據(jù)處理方法包括:接收寫請求,所述寫請求中攜帶有對象標識;根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令,所述修改指令包括數(shù)據(jù)標識和與所述數(shù)據(jù)標識對應的目標值,所述數(shù)據(jù)標識為與所述對象標識對應的至少ー個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識;將所述修改指令發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器,以供所述客戶端和所述數(shù)據(jù)服務器分別根據(jù)所述修改指令,將所述數(shù)據(jù)標識對應的元數(shù)據(jù)修改為所述目標值。結合第一個方面的元數(shù)據(jù)處理方法,在第一種可能的實現(xiàn)方式中,所述根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令之后,所述方法還包括:
將所述至少一條修改指令發(fā)送至用于存儲修改指令的數(shù)據(jù)服務器;相應地,所述方法還包括:在將所述至少一條修改指令分別發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器之后,向所述用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息,以指示所述用于存儲修改指令的數(shù)據(jù)服務器刪除所述至少一條修改指令。結合第一個方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述方法還包括:從所述用于存儲修改指令的數(shù)據(jù)服務器中獲取未被刪除的修改指令;將所述未被刪除的修改指令發(fā)送給所述未被刪除的修改指令中的數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。結合第一個方面、第一種或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述對象標識為文件標識或虛擬磁盤標識。本發(fā)明第二個方面是提供一種元數(shù)據(jù)處理方法,包括:接收讀請求,所述讀請求中攜帶有對象標識;若在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù),則根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令,所述訪問指令包括與所述對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識;將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器;接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。結合第二個方面的元數(shù)據(jù)處理方法,在第一種可能的實現(xiàn)方式中,所述讀請求中還攜帶有客戶端標識;相應地,所述接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)之后,所述方法還包括:將所述目標元數(shù)據(jù)發(fā)送給所述客戶端標識對應的客戶端,以供所述客戶端將所述目標元數(shù)據(jù)保存為與所述對象標識對應的元數(shù)據(jù)。結合第二個方面或第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述對象標識為文件標識或虛擬磁盤標識。本發(fā)明第三個方面是提供一種客戶端,包括:接收單元,用于接收寫請求,所述寫請求中攜帶有對象標識;處理單元,用于根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令,所述修改指令包括數(shù)據(jù)標識和與所述數(shù)據(jù)標識對應的目標值,所述數(shù)據(jù)標識為與所述對象標識對應的至少ー個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識;發(fā)送單元,用于將所述修改指令發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器,以供所述客戶端和所述數(shù)據(jù)服務器分別根據(jù)所述修改指令,將所述數(shù)據(jù)標識對應的元數(shù)據(jù)修改為所述目標值。結合第三個方面提供的客戶端,在第一種可能的實現(xiàn)方式中,所述處理單元還用于:在根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令之后,將所述至少一條修改指令發(fā)送至用于存儲修改指令的數(shù)據(jù)服務器;
相應地,所述發(fā)送単元還用于:在將所述至少一條修改指令分別發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器之后,向所述用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息,以指示所述用于存儲修改指令的數(shù)據(jù)服務器刪除所述至少一條修改指令。結合第三個方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述客戶端還包括:獲取單元,用于從所述用于存儲修改指令的數(shù)據(jù)服務器中獲取未被刪除的修改指令;相應地,所述發(fā)送單元還用干:將所述未被刪除的修改指令發(fā)送給所述未被刪除的修改指令中的數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。結合第三個方面、第一種或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述接收単元接收到的所述寫請求中的所述對象標識為文件標識或虛擬磁盤標識。本發(fā)明第四個方面是提供一種客戶端,包括:接收單元,用于接收讀請求,所述讀請求中攜帶有對象標識;處理單元,當在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù)時,根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令,所述訪問指令包括與所述對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識;發(fā)送單元,用于將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器;相應地,所述接收単元還用于,接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。結合第四個方面提供的客戶端,在第一種可能的實現(xiàn)方式中,所述接收單元接收到的所述讀請求中還攜帶有客戶端標識;相應地,所述發(fā)送單元還用干:在接收到所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)之后,將所述目標元數(shù)據(jù)發(fā)送給所述客戶端標識對應的客戶端,以供所述客戶端將所述目標元數(shù)據(jù)保存為與所述對象標識對應的元數(shù)據(jù)。結合第四個方面或第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述接收單元接收到的所述讀請求中的所述對象標識為文件標識或虛擬磁盤標識。本發(fā)明實施例提供的元數(shù)據(jù)處理方法及裝置,根據(jù)寫請求生成與對象標識對應的至少一條修改指令,在該修改指令中包括需要修改的元數(shù)據(jù)的數(shù)據(jù)標識以及對該元數(shù)據(jù)進行修改的目標值,將各條修改指令分別發(fā)送給存儲對應的元數(shù)據(jù)的客戶端和數(shù)據(jù)服務器,從而使得客戶端和數(shù)據(jù)服務器中所存儲的元數(shù)據(jù)能夠得到同步的更新,保證了分布式系統(tǒng)中對數(shù)據(jù)進行存儲的一致性,此外,由于各客戶端的寫請求均需要通過作為主控客戶端的客戶端,發(fā)送給數(shù)據(jù)集群中的數(shù)據(jù)服務器,避免了由于多個客戶端同時發(fā)送寫請求而出現(xiàn)寫沖突的情況,有效地保證了分布式系統(tǒng)提供元數(shù)據(jù)服務的性能。
圖1為本發(fā)明實施例提供的元數(shù)據(jù)處理方法的流程圖2為本發(fā)明實施例提供的另一元數(shù)據(jù)處理方法的流程圖;圖3為本發(fā)明實施例提供的又一元數(shù)據(jù)處理方法的流程圖;圖4為本發(fā)明實施例提供的又一元數(shù)據(jù)處理方法的流程圖;圖5為本發(fā)明實施例提供的客戶端的結構示意圖;圖6為本發(fā)明實施例提供的另ー客戶端的結構示意7為本發(fā)明實施例提供的又ー客戶端的結構示意圖;圖8為本發(fā)明實施例提供的又ー客戶端的結構示意圖;圖9為本發(fā)明實施例提供的又ー客戶端的結構示意圖。
具體實施例方式本發(fā)明各實施例提供的分布式系統(tǒng)包括中心集群、數(shù)據(jù)集群以及至少ー個客戶端。其中,中心集群由ー個或多個中心節(jié)點組成,中心節(jié)點可以為服務器。中心節(jié)點不用于存儲元數(shù)據(jù),而是用于當客戶端為多個時,從其中選擇ー個客戶端作為主控客戶端。當中心節(jié)點為多個時,其中ー個中心節(jié)點為主控中心節(jié)點,其他中心節(jié)點作為主控中心節(jié)點的備份中心節(jié)點,以便于在主控中心節(jié)點發(fā)生故障時,可以由備份中心節(jié)點完成該主控中心節(jié)點的工作。以下所稱的中心節(jié)點即表示該主控中心節(jié)點。數(shù)據(jù)集群由一個或多個數(shù)據(jù)服務器組成,各數(shù)據(jù)服務器中存儲有對象的元數(shù)據(jù)和/或數(shù)據(jù)。客戶端為用于供用戶對數(shù)據(jù)集群中所存儲的對象進行操作的設備,客戶端可以為個人計算機或服務器等設備,可以在客戶端中預置相應的系統(tǒng),以便于用戶在客戶端上對對象進行操作和控制。當分布式系統(tǒng)中的客戶端為多個時,中心集群將多個客戶端中的一個客戶端設置為主控客戶端,各客戶端需要與數(shù)據(jù)集群進行通信時,均需要經(jīng)過該主控客戶端,由該主控客戶端與數(shù)據(jù)集群中的數(shù)據(jù)服務器進行通信。具體的,用戶通過客戶端對分布式系統(tǒng)中的對象進行讀操作和寫操作的方法如下。圖1為本發(fā)明實施例提供的元數(shù)據(jù)處理方法的流程圖,如圖1所示,該方法包括:101、接收寫請求。其中,所述寫請求中攜帶有對象標識。具體的,用戶通過客戶端對分布式系統(tǒng)進行操作時,包括以下兩種情況。一種情況為用戶所使用的客戶端為主控客戶端,則該主控客戶端接收的寫請求是用戶所發(fā)送的;另一種情況為用戶所使用的客戶端不是主控客戶端,則該客戶端在接收到用戶發(fā)送的寫請求之后,需要將該寫請求發(fā)送給主控客戶端,則該主控客戶端接收到的寫請求是其他客戶端所發(fā)送的。無論主控客戶端接收到的寫請求是用戶發(fā)送的,還是其他客戶端發(fā)送的,在寫請求中均攜帯有對象標識。對象在數(shù)據(jù)集群中以元數(shù)據(jù)和數(shù)據(jù)的形式,分布式地存儲在ー個或多個數(shù)據(jù)服務器中。對象標識是該對象在面向用戶側的標識。102、根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令。其中,所述修改指令包括數(shù)據(jù)標識和與所述數(shù)據(jù)標識對應的目標值,所述數(shù)據(jù)標識為與所述對象標識對應的至少ー個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識。具體的,主控客戶端中預先存儲有對象標識與元數(shù)據(jù)的數(shù)據(jù)標識的對應關系,一個對象標識可以與ー個或多個元數(shù)據(jù)標識是對應的。因此,主控客戶端在接收到寫請求之后,可以根據(jù)寫請求中的對象標識查找到與該對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識。并且,在主控客戶端根據(jù)接收到的寫請求,可以獲知需要對對象中的哪些元數(shù)據(jù)進行修改,以及修改的目標值,從而,主控客戶端根據(jù)寫請求能夠生成與該對象標識對應的一條或多條修改指令。在生成的姆條修改指令中,不僅包括需要修改的元數(shù)據(jù)的數(shù)據(jù)標識,還需要包括對該元數(shù)據(jù)進行修改的目標值。從而,接收到該修改指令的數(shù)據(jù)服務器能夠根據(jù)修改指令,將相應的元數(shù)據(jù)修改為目標值。103、將所述修改指令發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。執(zhí)行步驟103是為了供所述客戶端和所述數(shù)據(jù)服務器分別根據(jù)所述修改指令,將所述數(shù)據(jù)標識對應的元數(shù)據(jù)修改為所述目標值。具體的,在主控客戶端中不僅存儲有對象標識與元數(shù)據(jù)的數(shù)據(jù)標識的對應關系,還存儲有元數(shù)據(jù)的數(shù)據(jù)標識與客戶端的對應關系,以及元數(shù)據(jù)的數(shù)據(jù)標識與數(shù)據(jù)服務器的對應關系。也就是說,主控客戶端根據(jù)數(shù)據(jù)標識可以查找到哪個元數(shù)據(jù)是存儲在哪個客戶端和哪個數(shù)據(jù)服務器中的。相應地,主控客戶端將一條或多條修改指令分別發(fā)送給對應的客戶端和數(shù)據(jù)服務器。從而,不僅數(shù)據(jù)服務器能夠根據(jù)修改指令將相應的元數(shù)據(jù)修改為目標值,存儲有該元數(shù)據(jù)的客戶端也能夠相應地將該元數(shù)據(jù)修改為目標值,保證了客戶端與數(shù)據(jù)服務器中所存儲的該元數(shù)據(jù)具有一致性。本發(fā)明實施例提供的元數(shù)據(jù)處理方法,根據(jù)寫請求生成與對象標識對應的至少ー條修改指令,在該修改指令中包括需要修改的元數(shù)據(jù)的數(shù)據(jù)標識以及對該元數(shù)據(jù)進行修改的目標值,將各條修改指令分別發(fā)送給存儲對應的元數(shù)據(jù)的客戶端和數(shù)據(jù)服務器,從而使得客戶端和數(shù)據(jù)服務器中所存儲的元數(shù)據(jù)能夠得到同步的更新,保證了分布式系統(tǒng)中對數(shù)據(jù)進行存儲的一致性,此外,由于各客戶端的寫請求均需要通過作為主控客戶端的客戶端,發(fā)送給數(shù)據(jù)集群中的數(shù)據(jù)服務器,避免了由于多個客戶端同時發(fā)送寫請求而出現(xiàn)寫沖突的情況,有效地保證了分布式系統(tǒng)提供元數(shù)據(jù)服務的性能。圖2為本發(fā)明實施例提供的另一元數(shù)據(jù)處理方法的流程圖,如圖2所示,該方法包括:201、接收寫請求。具體的,可以參見步驟101中所述的實現(xiàn)方式。進ー步地,所述對象標識為文件標識或虛擬磁盤標識。在數(shù)據(jù)集群中存儲的對象可以為文件,還可以為虛擬磁盤。相應地,當對象為文件時,對象標識為文件標識,元數(shù)據(jù)即為文件的元數(shù)據(jù);當對象為虛擬磁盤時,對象標識為虛擬磁盤標識,元數(shù)據(jù)即為虛擬磁盤的元數(shù)據(jù)。需要說明的是,文件和虛擬磁盤僅為存儲在數(shù)據(jù)集群中的兩種對象形式,可選的對象形式并不僅限于此。對于可以存儲在分布式系統(tǒng)中的其他形式的對象的元數(shù)據(jù),同樣可以采用本發(fā)明各實施例中所述的元數(shù)據(jù)處理方法和客戶端進行處理。
202、根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令。具體的,可以參見步驟102中所述的實現(xiàn)方式。203、將所述至少一條修改指令發(fā)送至用于存儲修改指令的數(shù)據(jù)服務器。具體的,主控客戶端在生成了至少一條修改指令之后,還需要將這些修改指令發(fā)送給用于存儲修改指令的數(shù)據(jù)服務器。數(shù)據(jù)服務器存儲修改指令的方式可以與存儲其他數(shù)據(jù)的方式類似,也就是說,將修改指令作為一部分特殊的數(shù)據(jù)存儲在數(shù)據(jù)服務器中。進ー步地,主控客戶端生成的至少一條修改指令可以為事務日志。優(yōu)選的,可以為事務日志中的重做(redo)日志。需要說明的是,可選的修改指令的形式并不僅限于此。204、將所述至少一條修改指令分別發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。具體的,可以參見步驟103中所述的實現(xiàn)方式。205、向所述用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息。執(zhí)行步驟205是為了指示所述用于存儲修改指令的數(shù)據(jù)服務器刪除所述至少一條修改指令。具體的,主控客戶端在將各條修改指令分別發(fā)送給相應的客戶端和數(shù)據(jù)服務器之后,向用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息。用于存儲修改指令的數(shù)據(jù)服務器在接收到刪除消息之后,將相應的修改指令刪除。由于修改指令是與對象標識對應的,因此,當與對象標識對應的修改指令為多條吋,該多條修改指令可以被認為是ー組修改指令。用于存儲修改指令的數(shù)據(jù)服務器將每組修改指令作為ー個整體。當主控客戶端將每組修改指令中的各條修改指令,依次發(fā)送給對應的客戶端和數(shù)據(jù)服務器之后,向用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息,以指示該數(shù)據(jù)服務器將該組修改指令刪除。主控客戶端將至少一條修改指令存儲在數(shù)據(jù)服務器中,是為了提高元數(shù)據(jù)服務的性能。若主控客戶端發(fā)生故障,中心節(jié)點將從其他客戶端中重新選擇ー個客戶端作為新的主控客戶端。新的主控客戶端需要從用于存儲修改指令的數(shù)據(jù)服務器中,獲取當前未被刪除的修改指令。由于當ー組修改指令全部執(zhí)行完畢時,該數(shù)據(jù)服務器將根據(jù)主控客戶端的指示,將這ー組修改指令刪除,因此,如果該數(shù)據(jù)服務器中存在未被刪除的修改指令,則說明未被刪除的修改指令中的一條或多條是尚未被執(zhí)行的。新的主控客戶端將從所述用于存儲修改指令的數(shù)據(jù)服務器中獲取到未被刪除的修改指令之后,將所述未被刪除的修改指令發(fā)送給所述未被刪除的修改指令中的數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。由于未被刪除的修改指令中包括數(shù)據(jù)標識和目標值,因此,新的主控客戶端將各條修改指令依次發(fā)送給修改指令中的數(shù)據(jù)標識對應的客戶端和數(shù)據(jù)服務器,以使得接收到修改指令的客戶端和數(shù)據(jù)服務器將數(shù)據(jù)標識對應的元數(shù)據(jù)修改為目標值。同樣的,當新的主控客戶端將獲取到的未被刪除的修改指令發(fā)送給相應的客戶端和數(shù)據(jù)服務器之后,向用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息,以指示該數(shù)據(jù)服務器將執(zhí)行完的修改指令刪除。主控客戶端將所生成的修改指令,也存儲在數(shù)據(jù)集群的數(shù)據(jù)服務器中,并且在主控客戶端執(zhí)行完各條修改指令之后,才指示存儲修改指令的數(shù)據(jù)服務器將相應的修改指令刪除,使得在ー組修改指令全部執(zhí)行完成之前,即使主控客戶端發(fā)生故障,新的主控客戶端仍能夠獲取到該組修改指令。通過由新的主控客戶端將該組修改指令重新執(zhí)行一遍,使得寫請求所指示的需要對對象進行的修改能夠全部被執(zhí)行,并且保證了對元數(shù)據(jù)的修改在客戶端和數(shù)據(jù)服務器中保持一致。進ー步地,在主控客戶端發(fā)生故障時,中心節(jié)點從其他客戶端中選出ー個新的主控客戶端之后,還向除該新的主控客戶端之外的其他客戶端發(fā)送消息,以指示這些客戶端將其客戶端標識,以及各自所存儲的對象標識和數(shù)據(jù)標識的對應關系,發(fā)送給新的主控客戶端。從而,新的主控客戶端能夠獲知每個客戶端中所存儲的對象標識與數(shù)據(jù)標識的對應關系。以供新的主控客戶端根據(jù)數(shù)據(jù)標識查找到對象標識,進而查找到數(shù)據(jù)標識對應的客戶端。圖3為本發(fā)明實施例提供的又一元數(shù)據(jù)處理方法的流程圖,如圖3所示,該方法包括:301、接收讀請求。其中,所述讀請求中攜帶有對象標識。具體的,當用戶所使用的客戶端為除主控客戶端以外的其他客戶端時,該客戶端在接收到用戶發(fā)送的讀請求時,首先根據(jù)讀請求中所攜帶的對象標識,在其所存儲的對象標識和元數(shù)據(jù)的對應關系中進行查找,若查找到與該對象標識對應的至少ー個元數(shù)據(jù),即表明該客戶端中存儲有該至少ー個元數(shù)據(jù)。相應地,該客戶端將查找到的各元數(shù)據(jù)返回給用戶即可。當用戶所使用的客戶端為主控客戶端時,主控客戶端根據(jù)接收到的讀請求中的對象標識,在其所存儲的對應標識和元數(shù)據(jù)的對應關系中進行查找,若查找到與該對象標識對應的至少ー個元數(shù)據(jù),即表明該主控客戶端中存儲有該至少ー個元數(shù)據(jù)。相應地,該主控客戶端將查找到的各元數(shù)據(jù)返回給用戶。當用戶所使用的客戶端為除客戶端以外的其他客戶端,且在其上未查找到與對象標識對應的元數(shù)據(jù)時,則將該讀請求發(fā)送給主控客戶端。主控客戶端在接收到該讀請求之后,若能夠在其上查找到與對象標識對應的各元數(shù)據(jù),則將各元數(shù)據(jù)返回給該客戶端。相應地,該客戶端在接收到各元數(shù)據(jù)之后,將各元數(shù)據(jù)存儲為與該對象標識對應的元數(shù)據(jù)。但是,主控客戶端在接收到該讀請求之后,若未能夠在其上查找到與該對象標識對應的各元數(shù)據(jù),則需要從數(shù)據(jù)集群中讀取這些元數(shù)據(jù)。302、當在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù)時,根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令。其中,所述訪問指令包括與所述對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識。具體的,主控客戶端中預先存儲有對象標識與元數(shù)據(jù)的數(shù)據(jù)標識之間的對應關系。若主控客戶端在其上未查找到與讀請求中的對象標識對應的元數(shù)據(jù),則根據(jù)該讀請求,生成一條或多條與該對象標識對應的訪問指令。
由于主控客戶端根據(jù)接收到的讀請求,可以獲知需要訪問對象中的哪些元數(shù)據(jù),因此主控客戶端能夠根據(jù)讀請求生成一條或多條訪問指令。每條訪問指令中包括需要訪問的元數(shù)據(jù)的數(shù)據(jù)標識。需要訪問的元數(shù)據(jù)的數(shù)據(jù)標識是與讀請求中的對象標識對應的。303、將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器。具體的,由于主控客戶端中存儲有數(shù)據(jù)標識與數(shù)據(jù)服務器的對應關系。因此,主控客戶端在生成訪問指令之后,根據(jù)訪問指令中的數(shù)據(jù)標識,將訪問指令發(fā)送給與該數(shù)據(jù)標識對應的數(shù)據(jù)服務器。若主控客戶端生成的訪問指令為多條,則依次將每條訪問指令發(fā)送給各數(shù)據(jù)標識對應的數(shù)據(jù)服務器。304、接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。具體的,主控客戶端在將訪問指令發(fā)送給相應的數(shù)據(jù)服務器之后,即可等待該數(shù)據(jù)服務器返回相應的目標元數(shù)據(jù)。主控客戶端接收到的目標元數(shù)據(jù)即為與訪問指令中的數(shù)據(jù)標識對應的元數(shù)據(jù)。本發(fā)明實施例提供的元數(shù)據(jù)處理方法,在主控客戶端中未存儲與讀請求中的對象標識對應的元數(shù)據(jù)時,生成與該對象標識對應的一條或多條訪問指令,并將各條訪問指令發(fā)送給元數(shù)據(jù)的數(shù)據(jù)標識對應的數(shù)據(jù)服務器,以從數(shù)據(jù)服務器接收與數(shù)據(jù)標識對應的目標元數(shù)據(jù)。從而使得在客戶端或主控客戶端中均未存儲相應的元數(shù)據(jù)時,才需要通過訪問數(shù)據(jù)服務器獲取相應的元數(shù)據(jù),而當客戶端和主控客戶端上存儲有相應的元數(shù)據(jù),則可直接或間接地返回給用戶,有效地提高了元數(shù)據(jù)服務的性能和效率。圖4為本發(fā)明實施例提供的又一元數(shù)據(jù)處理方法的流程圖,如圖4所示,該方法包括:401、接收讀請求。其中,所述讀請求中攜帶有對象標識、客戶端標識。具體的,可以參見步驟301中所述的實現(xiàn)方式。進一步地,所述對象標識為文件標識或虛擬磁盤標識。在數(shù)據(jù)集群中存儲的對象可以為文件,還可以為虛擬磁盤。相應地,當對象為文件時,對象標識為文件標識,元數(shù)據(jù)即為文件的元數(shù)據(jù);當對象為虛擬磁盤時,對象標識為虛擬磁盤標識,元數(shù)據(jù)即為虛擬磁盤的元數(shù)據(jù)。需要說明的是,文件和虛擬磁盤僅為存儲在數(shù)據(jù)集群中的兩種對象形式,可選的對象形式并不僅限于此。對于可以存儲在分布式系統(tǒng)中的其他形式的對象的元數(shù)據(jù),同樣可以采用本發(fā)明各實施例中所述的元數(shù)據(jù)處理方法和客戶端進行處理。進一步地,當主控客戶端接收到的讀請求來自于其他客戶端的情況下,在讀請求中還可以攜帶客戶端標識。以供主控客戶端將在其上查找到的元數(shù)據(jù),或者從數(shù)據(jù)服務器接收到的目標元數(shù)據(jù)發(fā)送給該客戶端標識對應的客戶端。并且,主控客戶端還會存儲該客戶端標識與對象標識的對應關系,以供在進行寫操作時,不僅將修改指令發(fā)送給數(shù)據(jù)標識對應的數(shù)據(jù)服務器,還根據(jù)數(shù)據(jù)標識與對象標識的對應關系,將修改指令發(fā)送給數(shù)據(jù)標識對應的客戶端。402、當在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù)時,根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令。具體的,可以參見步驟302中所述的實現(xiàn)方式。
403、將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器。具體的,可以參見步驟303中所述的實現(xiàn)方式。404、接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。具體的,可以參見步驟304中所述的實現(xiàn)方式。405、將所述目標元數(shù)據(jù)發(fā)送給所述客戶端標識對應的客戶端,以供所述客戶端將所述目標元數(shù)據(jù)保存為與所述對象標識對應的元數(shù)據(jù)。具體的,主控客戶端在從數(shù)據(jù)服務器接收到目標元數(shù)據(jù)之后,將目標元數(shù)據(jù)發(fā)送給客戶端標識對應的客戶端。接收到目標元數(shù)據(jù)的客戶端將該目標元數(shù)據(jù)保存為與讀請求中攜帶的對象標識對應的元數(shù)據(jù)。從而,當該客戶端再次接收到攜帶有該對象標識的讀請求中,即可從其所存儲的對象標識與元數(shù)據(jù)的對應關系中查找到該元數(shù)據(jù),進而直接將該元數(shù)據(jù)返回給用戶,而無需將讀請求發(fā)送給主控客戶端,有效地提高了元數(shù)據(jù)服務的性能和效率。在上述各實施例中,主控客戶端與中心節(jié)點之間設置心跳機制。中心節(jié)點如果一直能夠檢測到主控客戶端的心跳,則可判定該主控客戶端處于正常的工作狀態(tài);中心節(jié)點如果在預設的時間長度內(nèi)檢測不到主控客戶端的心跳,則判定該主控客戶端發(fā)生故障,進而從其他的客戶端中重新選擇新的主控客戶端。此外,主控客戶端還可以通過直接向中心節(jié)點發(fā)送請求消息的方式,請求中心節(jié)點從其他的客戶端中重新選擇新的主控客戶端。進一步地,除主控客戶端以外的其他客戶端也可以與中心節(jié)點保持心跳。同樣的,中心節(jié)點能夠檢測到心跳的客戶端是處于正常工作狀態(tài)的客戶端;中心節(jié)點檢測不到心跳的客戶端可能處于故障的工作狀態(tài)。當中心節(jié)點從各客戶端中重新選擇主控客戶端時,優(yōu)選地從可檢測到心跳的客戶端中進行選擇。進一步地,當主控客戶端以外的其他客戶端在從故障的工作狀態(tài)恢復為正常的工作狀態(tài)時,不僅需要與中心節(jié)點建立心跳,還需要將其客戶端標識,及其所存儲的對象標識與數(shù)據(jù)標識的對應關系發(fā)送給主控客戶端,以供主控客戶端更新該客戶端的相關信息。圖5為本發(fā)明實施例提供的客戶端的結構示意圖,如圖5所示,該客戶端包括接收單元11、處理單元12和發(fā)送單元13。接收單元11,用于接收寫請求,所述寫請求中攜帶有對象標識;處理單元12,用于根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令,所述修改指令包括數(shù)據(jù)標識和與所述數(shù)據(jù)標識對應的目標值,所述數(shù)據(jù)標識為與所述對象標識對應的至少一個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識;發(fā)送單元13,用于將所述修改指令發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器,以供所述客戶端和所述數(shù)據(jù)服務器分別根據(jù)所述修改指令,將所述數(shù)據(jù)標識對應的元數(shù)據(jù)修改為所述目標值。進一步地,所述處理單元12還用于:在根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令之后,將所述至少一條修改指令發(fā)送至用于存儲修改指令的數(shù)據(jù)服務器;相應地,所述發(fā)送單元13還用于:在將所述至少一條修改指令分別發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器之后,向所述用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息,以指示所述用于存儲修改指令的數(shù)據(jù)服務器刪除所述至少一條修改指令。圖6為本發(fā)明實施例提供的另一客戶端的結構示意圖,如圖6所示,該客戶端還可以包括獲取單元14。獲取單元14,用于從所述用于存儲修改指令的數(shù)據(jù)服務器中獲取未被刪除的修改指令;相應地,所述發(fā)送單元13還用于:將所述未被刪除的修改指令發(fā)送給所述未被刪除的修改指令中的數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。進一步地,所述接收單元11接收到的所述寫請求中的所述對象標識為文件標識或虛擬磁盤標識。具體的,本發(fā)明實施例提供的客戶端進行元數(shù)據(jù)處理的方法,可以參見上述對應的方法實施例中所述的操作步驟,此處不再贅述。本發(fā)明實施例提供的客戶端,根據(jù)寫請求生成與對象標識對應的至少一條修改指令,在該修改指令中包括需要修改的元數(shù)據(jù)的數(shù)據(jù)標識以及對該元數(shù)據(jù)進行修改的目標值,將各條修改指令分別發(fā)送給存儲對應的元數(shù)據(jù)的客戶端和數(shù)據(jù)服務器,從而使得客戶端和數(shù)據(jù)服務器中所存儲的元數(shù)據(jù)能夠得到同步的更新,保證了分布式系統(tǒng)中對數(shù)據(jù)進行存儲的一致性,此外,由于各客戶端的寫請求均需要通過作為主控客戶端的客戶端,發(fā)送給數(shù)據(jù)集群中的數(shù)據(jù)服務器,避免了由于多個客戶端同時發(fā)送寫請求而出現(xiàn)寫沖突的情況,有效地保證了分布式系統(tǒng)提供元數(shù)據(jù)服務的性能。圖7為本發(fā)明實施例提供的又一客戶端的結構示意圖,如圖7所示,該客戶端包括接收單元21、處理單元22和發(fā)送單元23。接收單元21,用于接收讀請求,所述讀請求中攜帶有對象標識;處理單元22,當在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù)時,根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令,所述訪問指令包括與所述對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識;發(fā)送單元23,用于將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器;相應地,所述接收單元21還用于,接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。進一步地,所述接收單元21接收到的所述讀請求中還攜帶有客戶端標識;相應地,所述發(fā)送單元23還用于:在接收到所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)之后,將所述目標元數(shù)據(jù)發(fā)送給所述客戶端標識對應的客戶端,以供所述客戶端將所述目標元數(shù)據(jù)保存為與所述對象標識對應的元數(shù)據(jù)。進一步地,所述接收單元接收到的所述讀請求中的所述對象標識為文件標識或虛擬磁盤標識。具體的,本發(fā)明實施例提供的客戶端進行元數(shù)據(jù)處理的方法,可以參見上述對應的方法實施例中所述的操作步驟,此處不再贅述。本發(fā)明實施例提供的客戶端,在未存儲與讀請求中的對象標識對應的元數(shù)據(jù)時,生成與該對象標識對應的一條或多條訪問指令,并將各條訪問指令發(fā)送給元數(shù)據(jù)的數(shù)據(jù)標識對應的數(shù)據(jù)服務器,以從數(shù)據(jù)服務器接收與數(shù)據(jù)標識對應的目標元數(shù)據(jù)。從而使得在客戶端或主控客戶端中均未存儲相應的元數(shù)據(jù)時,才需要通過訪問數(shù)據(jù)服務器獲取相應的元數(shù)據(jù),而當客戶端和主控客戶端上存儲有相應的元數(shù)據(jù),則可直接或間接地返回給用戶,有效地提高了元數(shù)據(jù)服務的性能和效率。圖8為本發(fā)明實施例提供的又一客戶端的結構示意圖,如圖8所示,該客戶端包括:處理器31、存儲器32、總線33和通信接口 34。處理器31、存儲器32和通信接口34之間通過總線33連接并完成相互間的通信。處理器31可能為單核或多核中央處理單元(Central Processing Unit, CPU),或者為特定集成電路(Application Specific Integrated Circuit, ASIC),或者為被配置成實施本發(fā)明實施例的一個或多個集成電路。存儲器32可以為高速RAM存儲器,也可以為非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。存儲器32用于存放程序321。具體的,程序321中可以包括程序代碼,所述程序代碼包括計算機操作指令。通信接口 34,用于接收寫請求,所述寫請求中攜帶有對象標識;處理器31運行程序321,以執(zhí)行:根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令,所述修改指令包括數(shù)據(jù)標識和與所述數(shù)據(jù)標識對應的目標值,所述數(shù)據(jù)標識為與所述對象標識對應的至少一個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識;將所述修改指令發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器,以供所述客戶端和所述數(shù)據(jù)服務器分別根據(jù)所述修改指令,將所述數(shù)據(jù)標識對應的元數(shù)據(jù)修改為所述目標值。具體的,本發(fā)明實施例提供的客戶端進行元數(shù)據(jù)處理的方法,可以參見上述對應的方法實施例中所述的操作步驟,此處不再贅述。圖9為本發(fā)明實施例提供的又一客戶端的結構示意圖,如圖9所示,該客戶端包括:處理器41、存儲器42、總線43和通信接口 44。處理器41、存儲器42和通信接口44之間通過總線43連接并完成相互間的通信。處理器41可能為單核或多核中央處理單元(Central Processing Unit, CPU),或者為特定集成電路(Application Specific Integrated Circuit, ASIC),或者為被配置成實施本發(fā)明實施例的一個或多個集成電路。存儲器42可以為高速RAM存儲器,也可以為非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。存儲器42用于存放程序421。具體的,程序421中可以包括程序代碼,所述程序代碼包括計算機操作指令。通信接口 44,用于接收讀請求,所述讀請求中攜帶有對象標識;處理器41運行程序421,以執(zhí)行:若在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù),則根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令,所述訪問指令包括與所述對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識;將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器;接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。具體的,本發(fā)明實施例提供的客戶端進行元數(shù)據(jù)處理的方法,可以參見上述對應的方法實施例中所述的操作步驟,此處不再贅述。本領域普通技術人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的范圍。
權利要求
1.一種元數(shù)據(jù)處理方法,其特征在于,包括: 接收寫請求,所述寫請求中攜帶有對象標識; 根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令,所述修改指令包括數(shù)據(jù)標識和與所述數(shù)據(jù)標識對應的目標值,所述數(shù)據(jù)標識為與所述對象標識對應的至少ー個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識; 將所述修改指令發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器,以供所述客戶端和所述數(shù)據(jù)服務器分別根據(jù)所述修改指令,將所述數(shù)據(jù)標識對應的元數(shù)據(jù)修改為所述目標值。
2.根據(jù)權利要求1所述的元數(shù)據(jù)處理方法,其特征在于,所述根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令之后,所述方法還包括: 將所述至少一條修改指令發(fā)送至用于存儲修改指令的數(shù)據(jù)服務器; 相應地,所述方法還包括: 在將所述至少一條修改指令分別發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器之后,向所述用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息,以指示所述用于存儲修改指令的數(shù)據(jù)服務器刪除所述至少一條修改指令。
3.根據(jù)權利要求2所述的元數(shù)據(jù)處理方法,其特征在于,所述方法還包括: 從所述用于存 儲修改指令的數(shù)據(jù)服務器中獲取未被刪除的修改指令; 將所述未被刪除的修改指令發(fā)送給所述未被刪除的修改指令中的數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。
4.根據(jù)權利要求1-3中任一所述的元數(shù)據(jù)處理方法,其特征在于,所述對象標識為文件標識或虛擬磁盤標識。
5.一種元數(shù)據(jù)處理方法,其特征在于,包括: 接收讀請求,所述讀請求中攜帶有對象標識; 若在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù),則根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令,所述訪問指令包括與所述對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識; 將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器; 接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。
6.根據(jù)權利要求5所述的元數(shù)據(jù)處理方法,其特征在干,所述讀請求中還攜帶有客戶端標識; 相應地,所述接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)之后,所述方法還包括: 將所述目標元數(shù)據(jù)發(fā)送給所述客戶端標識對應的客戶端,以供所述客戶端將所述目標元數(shù)據(jù)保存為與所述對象標識對應的元數(shù)據(jù)。
7.根據(jù)權利要求5或6所述的元數(shù)據(jù)處理方法,其特征在于,所述對象標識為文件標識或虛擬磁盤標識。
8.一種客戶端,其特征在于,包括: 接收單元,用于接收寫請求,所述寫請求中攜帶有對象標識; 處理單元,用于根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令,所述修改指令包括數(shù)據(jù)標識和與所述數(shù)據(jù)標識對應的目標值,所述數(shù)據(jù)標識為與所述對象標識對應的至少ー個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識; 發(fā)送單元,用于將所述修改指令發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器,以供所述客戶端和所述數(shù)據(jù)服務器分別根據(jù)所述修改指令,將所述數(shù)據(jù)標識對應的元數(shù)據(jù)修改為所述目標值。
9.根據(jù)權利要求8所述的客戶端,其特征在于,所述處理単元還用于: 在根據(jù)所述寫請求,生成與所述對象標識對應的至少一條修改指令之后,將所述至少一條修改指令發(fā)送至用于存儲修改指令的數(shù)據(jù)服務器; 相應地,所述發(fā)送単元還用于: 在將所述至少一條修改指令分別發(fā)送給所述數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器之后,向所述用于存儲修改指令的數(shù)據(jù)服務器發(fā)送刪除消息,以指示所述用于存儲修改指令的數(shù)據(jù)服務器刪除所述至少一條修改指令。
10.根據(jù)權利要求9所述的客戶端,其特征在于,所述客戶端還包括: 獲取單元,用于從所述用于存儲修改指令的數(shù)據(jù)服務器中獲取未被刪除的修改指令; 相應地,所述發(fā)送単元還用于: 將所述未被刪除的修改指令發(fā)送給所述未被刪除的修改指令中的數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器。
11.根據(jù)權利要求8-10中任一所述的客戶端,其特征在于,所述接收単元接收到的所述寫請求中的所述對象標識為文件標識或虛擬磁盤標識。
12.一種客戶端,其特征在于,包括: 接收單元,用于接收讀請求,所述讀請求中攜帶有對象標識; 處理單元,當在所存儲的對象標識與元數(shù)據(jù)的對應關系中,未查找到與所述對象標識對應的元數(shù)據(jù)時,根據(jù)所述讀請求,生成與所述對象標識對應的至少一條訪問指令,所述訪問指令包括與所述對象標識對應的元數(shù)據(jù)的數(shù)據(jù)標識; 發(fā)送單元,用于將所述訪問指令發(fā)送給所述數(shù)據(jù)標識對應的數(shù)據(jù)服務器; 相應地,所述接收単元還用于,接收所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)。
13.根據(jù)權利要求12所述的客戶端,其特征在于,所述接收単元接收到的所述讀請求中還攜帶有客戶端標識; 相應地,所述發(fā)送単元還用于: 在接收到所述數(shù)據(jù)服務器根據(jù)所述數(shù)據(jù)標識返回的目標元數(shù)據(jù)之后,將所述目標元數(shù)據(jù)發(fā)送給所述客戶端標識對應的客戶端,以供所述客戶端將所述目標元數(shù)據(jù)保存為與所述對象標識對應的元數(shù)據(jù)。
14.根據(jù)權利要求12或13所述的客戶端,其特征在于,所述接收単元接收到的所述讀請求中的所述對象標識為文件標識或虛擬磁盤標識。
全文摘要
本發(fā)明提供一種元數(shù)據(jù)處理方法及裝置,其中元數(shù)據(jù)處理方法包括接收寫請求,寫請求中攜帶有對象標識;根據(jù)寫請求,生成與對象標識對應的至少一條修改指令,修改指令包括數(shù)據(jù)標識和與數(shù)據(jù)標識對應的目標值,數(shù)據(jù)標識為與對象標識對應的至少一個元數(shù)據(jù)中的需要進行修改的元數(shù)據(jù)的標識;將修改指令發(fā)送給數(shù)據(jù)標識對應的客戶端及數(shù)據(jù)服務器,以供客戶端和數(shù)據(jù)服務器分別根據(jù)修改指令,將數(shù)據(jù)標識對應的元數(shù)據(jù)修改為目標值。從而使得客戶端和數(shù)據(jù)服務器中所存儲的元數(shù)據(jù)能夠得到同步的更新,保證了分布式系統(tǒng)中對數(shù)據(jù)進行存儲的一致性,避免了由于多個客戶端同時發(fā)送寫請求而出現(xiàn)寫沖突的情況,有效地保證了分布式系統(tǒng)提供元數(shù)據(jù)服務的性能。
文檔編號H04L29/06GK103095687SQ20121055448
公開日2013年5月8日 申請日期2012年12月19日 優(yōu)先權日2012年12月19日
發(fā)明者王炎, 夏得雨 申請人:華為技術有限公司