一種云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法
【專利摘要】本發(fā)明公開了一種云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法,包括:客戶端將用戶的登錄信息發(fā)送給認(rèn)證服務(wù)器,認(rèn)證服務(wù)器根據(jù)該登錄信息判斷該用戶是否存在,如果用戶存在,則認(rèn)證服務(wù)器將登錄信息發(fā)送給命名空間服務(wù)器,命名空間服務(wù)器根據(jù)該登錄信息獲取用戶信息,并根據(jù)用戶信息獲取該命名空間服務(wù)器中該用戶的目錄子樹,對用戶目錄子樹進(jìn)行組織,以生成新的用戶目錄樹,并將新的用戶目錄樹返回給客戶端,客戶端根據(jù)組織結(jié)果判斷獲取用戶目錄樹是否成功,若成功則命名空間服務(wù)器傳送用戶目錄樹給客戶端,其中傳輸是采用xml文件形式,本發(fā)明能夠解決現(xiàn)有方法中存在的用戶每次訪問數(shù)據(jù)之前都要向元數(shù)據(jù)服務(wù)器請求元數(shù)據(jù),從而影響用戶訪問數(shù)據(jù)的速度的問題。
【專利說明】—種云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于云存儲領(lǐng)域,更具體地,涉及一種云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)數(shù)據(jù)量的爆炸式增長,如何高效、可靠、穩(wěn)定的存儲這些數(shù)據(jù)變得十分迫切,因此云存儲也成為網(wǎng)絡(luò)存儲領(lǐng)域的研究熱點(diǎn)。為了獲得更高的系統(tǒng)擴(kuò)展性和高訪問速度,云存儲系統(tǒng)會采用數(shù)據(jù)和元數(shù)據(jù)分離的方式,在數(shù)據(jù)訪問之前會先獲取元數(shù)據(jù),根據(jù)元數(shù)據(jù)定位數(shù)據(jù),在這些存儲系統(tǒng)中,如何組織和獲取元數(shù)據(jù)就變得尤為關(guān)鍵,會成為影響云存儲系統(tǒng)性能的重要因素。
[0003]數(shù)據(jù)與元數(shù)據(jù)分離的存儲系統(tǒng)往往會采用集中式元數(shù)據(jù)服務(wù)模型或分布式元數(shù)據(jù)服務(wù)模型,在這兩種服務(wù)模型中,用戶每次訪問數(shù)據(jù)之前都需要向元數(shù)據(jù)服務(wù)器請求元數(shù)據(jù),根據(jù)元數(shù)據(jù)獲得數(shù)據(jù)存放位置信息,然后進(jìn)行數(shù)據(jù)訪問,尤其是當(dāng)用戶訪問變得非常頻繁時(shí),元數(shù)據(jù)服務(wù)器負(fù)載會變大,并發(fā)響應(yīng)能力下降,從而影響對用戶元數(shù)據(jù)請獲得處理響應(yīng),影響用戶訪問數(shù)據(jù)的速度。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法,其目的在于解決現(xiàn)有方法中存在的用戶每次訪問數(shù)據(jù)之前都要向元數(shù)據(jù)服務(wù)器請求元數(shù)據(jù),根據(jù)元數(shù)據(jù)獲得數(shù)據(jù)存放位置信息,然后進(jìn)行數(shù)據(jù)訪問,從而影響用戶訪問數(shù)據(jù)的速度的技術(shù)問題。
[0005]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法,是應(yīng)用在一種三層架構(gòu)的云存儲系統(tǒng)中,該云存儲系統(tǒng)包括客戶端、認(rèn)證服務(wù)器、元數(shù)據(jù)服務(wù)器、命名空間服務(wù)器以及數(shù)據(jù)存儲服務(wù)器,所述方法包括以下步驟:
[0006](I)客戶端將用戶的登錄信息發(fā)送給認(rèn)證服務(wù)器;
[0007](2)認(rèn)證服務(wù)器根據(jù)該登錄信息判斷該用戶是否存在,若不存在則給出認(rèn)證失敗提示,則過程結(jié)束;如果用戶存在,則轉(zhuǎn)入步驟(3);
[0008](3)認(rèn)證服務(wù)器將登錄信息發(fā)送給命名空間服務(wù)器;
[0009](4)命名空間服務(wù)器根據(jù)該登錄信息獲取用戶信息,并根據(jù)用戶信息獲取該命名空間服務(wù)器中該用戶的目錄子樹,對用戶目錄子樹進(jìn)行組織,以生成新的用戶目錄樹,并將新的用戶目錄樹返回給客戶端;
[0010](5)客戶端根據(jù)組織結(jié)果判斷獲取用戶目錄樹是否成功,若成功則轉(zhuǎn)入步驟(6),否則過程結(jié)束;
[0011](6)命名空間服務(wù)器傳送用戶目錄樹給客戶端,其中傳輸是采用xml文件形式;
[0012](7)客戶端判斷是否完全接收該xml文件,如果接收失敗,則給出xml接收失敗提示,過程結(jié)束,否則轉(zhuǎn)入步驟(8);
[0013](8)客戶端對該xml文件進(jìn)行解析,并對該xml文件中的每個(gè)資源對象生成一個(gè)〈對象的全路徑,對象的全路徑的哈希值,對象的存放位置信息 > 的條目信息,并將該條目信息緩存在客戶端。
[0014]優(yōu)選地,用戶信息包括用戶的名稱、用戶的登錄時(shí)間、用戶的訪問權(quán)限,用戶目錄子樹包括用戶名節(jié)點(diǎn)、桶名節(jié)點(diǎn)、資源對象節(jié)點(diǎn)。
[0015]優(yōu)選地,對用戶目錄子樹進(jìn)行組織的過程具體包括以下子步驟:
[0016](4-1)命名空間服務(wù)器根據(jù)用戶信息判斷其維護(hù)的全局目錄樹中該用戶對應(yīng)的節(jié)點(diǎn)是否存在,如果不存在,則命名空間服務(wù)器向客戶端發(fā)送出錯(cuò)提示,然后過程結(jié)束,如果存在則轉(zhuǎn)入步驟(4-2);
[0017](4-2)對該用戶目錄子樹中的一個(gè)資源對象(即葉子節(jié)點(diǎn))利用樹的遍歷算法獲得從根到該資源對象的全路徑,對該資源對象的全路徑作MD5哈希計(jì)算,以得到對應(yīng)的哈希值;
[0018](4-3)以哈希值為鍵值從元數(shù)據(jù)服務(wù)器中得到對應(yīng)的值,包括資源對象詳細(xì)信息、副本信息、副本狀態(tài)信息(即是否為臟數(shù)據(jù));
[0019](4-4)將資源對象詳細(xì)信息、副本信息、副本狀態(tài)信息分別作為子節(jié)點(diǎn)添加到該資源對象下;
[0020](4-5)判斷該用戶目錄子樹中所有資源對象的子節(jié)點(diǎn)是否都已經(jīng)添加完畢,如果沒有,則返回步驟(4-2),如果添加完畢,則發(fā)送給客戶端一個(gè)成功提示,添加完畢的所有子節(jié)點(diǎn)構(gòu)成用戶目錄樹。
[0021]優(yōu)選地,全局目錄樹分成四層:第一層為根節(jié)點(diǎn),第二層為用戶名節(jié)點(diǎn),第三層等為桶名節(jié)點(diǎn),第四層為資源對象節(jié)點(diǎn)。
[0022]優(yōu)選地,用戶目錄樹分成四層:第一層為用戶名節(jié)點(diǎn);第二層為桶名節(jié)點(diǎn),第三層為資源對象節(jié)點(diǎn),第四層為資源對象的元數(shù)據(jù)信息。
[0023]優(yōu)選地,資源對象的元數(shù)據(jù)信息包括資源對象詳細(xì)信息、副本信息、副本狀態(tài)信
肩、O
[0024]總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
[0025]1、用戶首次登陸時(shí)就獲取該用戶所有資源對象的元數(shù)據(jù)信息并且緩存在客戶端,這樣,用戶下次訪問某個(gè)資源對象時(shí),就可以直接檢索客戶端緩存,獲取資源對象的存放位置信息,進(jìn)行資源對象訪問,從而避免客戶端每次訪問某個(gè)資源對象之前先要向元數(shù)據(jù)服務(wù)器請求該資源對象的元數(shù)據(jù)的流程,加快了資源對象訪問速度。
[0026]2、當(dāng)元數(shù)據(jù)服務(wù)器因某種原因,臨時(shí)宕機(jī)時(shí),用戶依然可以根據(jù)客戶端緩存的資源對象元數(shù)據(jù)信息定位資源對象存放位置,進(jìn)行資源對象訪問。
【專利附圖】
【附圖說明】
[0027]圖1是本發(fā)明云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法中全局目錄樹結(jié)構(gòu)圖。
[0028]圖2是本發(fā)明云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法中用戶目錄樹結(jié)構(gòu)圖。
[0029]圖3是本發(fā)明云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法的流程圖。
【具體實(shí)施方式】[0030]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0031]本發(fā)明的整體思路在于用戶首次登陸時(shí),命名空間服務(wù)器獲取用戶信息后,根據(jù)其維護(hù)的全局目錄樹和元數(shù)據(jù)服務(wù)器維護(hù)的資源對象的元數(shù)據(jù)信息生成用戶目錄樹,返回給客戶端,客戶端獲得用戶目錄樹,解析用戶目錄樹,生成該用戶所有資源對象存放位置的條目信息,并且緩存在客戶端,這樣,用戶下次訪問某個(gè)資源對象時(shí),就可以直接檢索本地緩存,獲取資源對象的存放位置信息,直接定位到資源對象存放位置,進(jìn)行訪問,從而避免客戶端每次訪問某個(gè)資源對象之前先要向元數(shù)據(jù)服務(wù)器請求該資源對象的元數(shù)據(jù)的流程,加快訪問速度。
[0032]如圖3所示,本發(fā)明云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法是應(yīng)用在一種三層架構(gòu)的云存儲系統(tǒng)中,該云存儲系統(tǒng)包括客戶端、認(rèn)證服務(wù)器、元數(shù)據(jù)服務(wù)器、命名空間服務(wù)器以及數(shù)據(jù)存儲服務(wù)器,該方法包括以下步驟:
[0033](I)客戶端將用戶的登錄信息發(fā)送給認(rèn)證服務(wù)器;
[0034](2)認(rèn)證服務(wù)器根據(jù)該登錄信息判斷該用戶是否存在,若不存在則給出認(rèn)證失敗提示,則過程結(jié)束;如果用戶存在,則轉(zhuǎn)入步驟(3);
[0035](3)認(rèn)證服務(wù)器將登錄信息發(fā)送給命名空間服務(wù)器;
[0036](4)命名空間服務(wù)器根據(jù)該登錄信息獲取用戶信息,并根據(jù)用戶信息獲取該命名空間服務(wù)器中該用戶的目錄子樹,對用戶目錄子樹進(jìn)行組織,以生成新的用戶目錄樹,并將新的用戶目錄樹返回給客戶端;具體而言,用戶信息包括用戶的名稱、用戶的登錄時(shí)間、用戶的訪問權(quán)限等;用戶目錄子樹如圖1中虛線方框所示,用戶目錄子樹包括用戶名節(jié)點(diǎn)、桶名節(jié)點(diǎn)、資源對象節(jié)點(diǎn)。對用戶目錄子樹進(jìn)行組織的過程具體包括以下子步驟:
[0037](4-1)命名空間服務(wù)器根據(jù)用戶信息判斷其維護(hù)的全局目錄樹中該用戶對應(yīng)的節(jié)點(diǎn)是否存在,如果不存在,則命名空間服務(wù)器向客戶端發(fā)送出錯(cuò)提示,然后過程結(jié)束,如果存在則轉(zhuǎn)入步驟(4-2);具體如圖1所示,全局目錄樹分成四層:第一層為根節(jié)點(diǎn),是所有用戶的父節(jié)點(diǎn);第二層clientl等為用戶名節(jié)點(diǎn),由clientl作根節(jié)點(diǎn)的一棵子樹就是用戶clientl的用戶目錄子樹,也就是圖中虛線方框部分;第三層bucketl等為桶名節(jié)點(diǎn)(相當(dāng)于用戶擁有的文件夾);第四層object為資源對象節(jié)點(diǎn)(相當(dāng)于具體文件);
[0038](4-2)對該用戶目錄子樹中的一個(gè)資源對象(即葉子節(jié)點(diǎn))利用樹的遍歷算法獲得從根到該資源對象的全路徑,對該資源對象的全路徑作MD5哈希計(jì)算,以得到對應(yīng)的哈希值;
[0039](4-3)以哈希值為鍵值從元數(shù)據(jù)服務(wù)器中得到對應(yīng)的值,包括資源對象詳細(xì)信息、副本信息、副本狀態(tài)信息(即是否為臟數(shù)據(jù));
[0040](4-4)將資源對象詳細(xì)信息、副本信息、副本狀態(tài)信息分別作為子節(jié)點(diǎn)添加到該資源對象下;
[0041](4-5)判斷該用戶目錄子樹中所有資源對象的子節(jié)點(diǎn)是否都已經(jīng)添加完畢,如果沒有,則返回步驟(4-2),如果添加完畢,則發(fā)送給客戶端一個(gè)成功提示,添加完畢的所有子節(jié)點(diǎn)構(gòu)成用戶目錄樹,如圖2所示,用戶目錄樹分成四層:第一層clientl等為用戶名節(jié)點(diǎn);第二層bucketl等為桶名節(jié)點(diǎn)(相當(dāng)于用戶擁有的文件夾);第三層object為資源對象節(jié)點(diǎn)(相當(dāng)于具體文件);第四層為資源對象的元數(shù)據(jù)信息,包括資源對象詳細(xì)信息、副本信息、副本狀態(tài)信息(即是否為臟數(shù)據(jù));用戶目錄樹的存儲采用xml文件。
[0042](5)客戶端根據(jù)組織結(jié)果判斷獲取用戶目錄樹是否成功,若成功則轉(zhuǎn)入步驟(6),否則過程結(jié)束;具體而言,客戶端判斷組織結(jié)果中是否包含有成功提示,如果沒有則表示獲取用戶目錄樹失敗,否則表示成功;
[0043](6)命名空間服務(wù)器傳送用戶目錄樹給客戶端;具體而言,用戶目錄樹傳輸采用xml文件形式;
[0044](7)客戶端判斷是否完全接收該xml文件,如果接收失敗,則給出xml的接收失敗提示,過程結(jié)束,否則轉(zhuǎn)入步驟(8);具體而言,客戶端在接收xml文件之前會和命名空間服務(wù)器進(jìn)行協(xié)商(Negotiation),協(xié)商要傳輸?shù)膞ml文件的大小信息以及客戶端是否準(zhǔn)備完畢的信息;
[0045](8)客戶端對該xml文件進(jìn)行解析,并對該xml文件中的每個(gè)資源對象生成一個(gè)〈對象的全路徑,對象的全路徑的哈希值,對象的存放位置信息 > 的條目信息,并將該條目信息緩存在客戶端。具體而言,解析xml采用libxml2程序庫進(jìn)行。
[0046]通過本發(fā)明的上述方法,用戶首次登陸時(shí)就獲取該用戶所有資源對象的元數(shù)據(jù)信息并且緩存在客戶端,這樣,用戶下次訪問某個(gè)資源對象時(shí),就可以直接檢索客戶端緩存,獲取資源對象的存放位置信息,進(jìn)行資源對象訪問,從而避免客戶端每次訪問某個(gè)資源對象之前先要向元數(shù)據(jù)服務(wù)器請求該資源對象的元數(shù)據(jù)的流程,加快了資源對象訪問速度。
[0047]此外,當(dāng)元數(shù)據(jù)服務(wù)器因某種原因,臨時(shí)宕機(jī)時(shí),用戶依然可以根據(jù)客戶端緩存的資源對象元數(shù)據(jù)信息定位資源對象存放位置,進(jìn)行資源對象訪問。
[0048]本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種云存儲系統(tǒng)中元數(shù)據(jù)的獲取方法,是應(yīng)用在一種三層架構(gòu)的云存儲系統(tǒng)中,該云存儲系統(tǒng)包括客戶端、認(rèn)證服務(wù)器、元數(shù)據(jù)服務(wù)器、命名空間服務(wù)器以及數(shù)據(jù)存儲服務(wù)器,其特征在于,所述方法包括以下步驟: (1)客戶端將用戶的登錄信息發(fā)送給認(rèn)證服務(wù)器; (2)認(rèn)證服務(wù)器根據(jù)該登錄信息判斷該用戶是否存在,若不存在則給出認(rèn)證失敗提示,則過程結(jié)束;如果用戶存在,則轉(zhuǎn)入步驟(3); (3)認(rèn)證服務(wù)器將登錄信息發(fā)送給命名空間服務(wù)器; (4)命名空間服務(wù)器根據(jù)該登錄信息獲取用戶信息,并根據(jù)用戶信息獲取該命名空間服務(wù)器中該用戶的目錄子樹,對用戶目錄子樹進(jìn)行組織,以生成新的用戶目錄樹,并將新的用戶目錄樹返回給客戶端; (5)客戶端根據(jù)組織結(jié)果判斷獲取用戶目錄樹是否成功,若成功則轉(zhuǎn)入步驟(6),否則過程結(jié)束; (6)命名空間服務(wù)器傳送用戶目錄樹給客戶端,其中傳輸是采用xml文件形式; (7)客戶端判斷是否完全接收該xml文件,如果接收失敗,則給出xml接收失敗提示,過程結(jié)束,否則轉(zhuǎn)入步驟(8); (8)客戶端對該xml文件進(jìn)行解析,并對該xml文件中的每個(gè)資源對象生成一個(gè)〈對象的全路徑,對象的全路徑的哈希值,對象的存放位置信息〉的條目信息,并將該條目信息緩存在客戶端。
2.根據(jù)權(quán)利要求1所述的獲取方法,其特征在于,用戶信息包括用戶的名稱、用戶的登錄時(shí)間、用戶的訪問權(quán)限,用戶目錄子樹包括用戶名節(jié)點(diǎn)、桶名節(jié)點(diǎn)、資源對象節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的獲取方法,其特征在于,對用戶目錄子樹進(jìn)行組織的過程具體包括以下子步驟: (4-1)命名空間服務(wù)器根據(jù)用戶信息判斷其維護(hù)的全局目錄樹中該用戶對應(yīng)的節(jié)點(diǎn)是否存在,如果不存在,則命名空間服務(wù)器向客戶端發(fā)送出錯(cuò)提示,然后過程結(jié)束,如果存在則轉(zhuǎn)入步驟(4-2); (4-2)對該用戶目錄子樹中的一個(gè)資源對象(即葉子節(jié)點(diǎn))利用樹的遍歷算法獲得從根到該資源對象的全路徑,對該資源對象的全路徑作MD5哈希計(jì)算,以得到對應(yīng)的哈希值; (4-3)以哈希值為鍵值從元數(shù)據(jù)服務(wù)器中得到對應(yīng)的值,包括資源對象詳細(xì)信息、副本信息、副本狀態(tài)信息(即是否為臟數(shù)據(jù)); (4-4)將資源對象詳細(xì)信息、副本信息、副本狀態(tài)信息分別作為子節(jié)點(diǎn)添加到該資源對象下; (4-5)判斷該用戶目錄子樹中所有資源對象的子節(jié)點(diǎn)是否都已經(jīng)添加完畢,如果沒有,則返回步驟(4-2),如果添加完畢,則發(fā)送給客戶端一個(gè)成功提示,添加完畢的所有子節(jié)點(diǎn)構(gòu)成用戶目錄樹。
4.根據(jù)權(quán)利要求3所述的獲取方法,其特征在于,全局目錄樹分成四層:第一層為根節(jié)點(diǎn),第二層為用戶名節(jié)點(diǎn),第三層等為桶名節(jié)點(diǎn),第四層為資源對象節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求3所述的獲取方法,其特征在于,用戶目錄樹分成四層:第一層為用戶名節(jié)點(diǎn);第二層為桶名節(jié)點(diǎn),第三層為資源對象節(jié)點(diǎn),第四層為資源對象的元數(shù)據(jù)信息。
6.根據(jù)權(quán)利要求5所述的獲取方法,其特征在于,資源對象的元數(shù)據(jù)信息包括資源對象詳細(xì)信息、副本 信息、副本狀態(tài)信息。
【文檔編號】G06F17/30GK103685453SQ201310413124
【公開日】2014年3月26日 申請日期:2013年9月11日 優(yōu)先權(quán)日:2013年9月11日
【發(fā)明者】周可, 王樺, 劉鵬, 陳寨寨, 廖正霜 申請人:華中科技大學(xué)