專利名稱:用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法、設(shè)備和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備及方法,以及一種用于分布式數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)管理系統(tǒng)。
背景技術(shù):
目前數(shù)據(jù)庫(kù)的種類很多,比較流行的一種是基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),所謂基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),主要是指為了保證數(shù)據(jù)的可靠性和可擴(kuò)展性,在多個(gè)數(shù)據(jù)服務(wù)器上分別存儲(chǔ)數(shù)據(jù),將多個(gè)數(shù)據(jù)服務(wù)器共同看成一個(gè)完整的數(shù)據(jù)庫(kù),共同完成數(shù)據(jù)的寫入和讀取。因?yàn)閿?shù)據(jù)庫(kù)的具體形式有很多,因此基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)也有很多。
下面僅以常用的一種基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)MongoDB為例進(jìn)行說(shuō)明。 MongoDB (Data Base,數(shù)據(jù)庫(kù))是介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。因此,在很多涉及到數(shù)據(jù)庫(kù)的業(yè)務(wù)都使用了 MongoDB0
在MongoDB中本身有一個(gè)角色稱作Mongos,負(fù)責(zé)接收所有客戶端的數(shù)據(jù)訪問(wèn)請(qǐng)求,還有一個(gè)角色稱作Mongod,負(fù)責(zé)保存實(shí)際的數(shù)據(jù)。為了數(shù)據(jù)可靠性,同一份數(shù)據(jù)會(huì)保存到多個(gè)Mongod服務(wù)器(即數(shù)據(jù)服務(wù)器的一種)上,多個(gè)Mongod稱作一個(gè)副本集replicaset, 彼此之間保證數(shù)據(jù)一致。
當(dāng)web服務(wù)器獲取數(shù)據(jù)時(shí),向mongos發(fā)起請(qǐng)求,mongos會(huì)在replicaset的多個(gè) mongod服務(wù)器中,隨機(jī)選取一臺(tái)mongod服務(wù)器讀取數(shù)據(jù),然后將數(shù)據(jù)返回給web服務(wù)器。 在現(xiàn)有的技術(shù)方案中,采用的是隨機(jī)選擇的方式,即所有web服務(wù)器獲取數(shù)據(jù)的請(qǐng)求被均勻的分散到所有mongod服務(wù)器上。在其他基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)中,也與MongoDB 類似,多是采用隨機(jī)方式選取一臺(tái)數(shù)據(jù)服務(wù)器讀取數(shù)據(jù)。
上述這種隨機(jī)選擇一臺(tái)數(shù)據(jù)服務(wù)器讀取數(shù)據(jù)的方式,缺少靈活實(shí)用性,尤其是當(dāng)數(shù)據(jù)服務(wù)器數(shù)量較多、部署環(huán)境較復(fù)雜時(shí),隨機(jī)選擇的方式更是容易導(dǎo)致從數(shù)據(jù)服務(wù)器讀取數(shù)據(jù)的效率較低。發(fā)明內(nèi)容
鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法、設(shè)備和系統(tǒng)。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備, 該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,該數(shù)據(jù)管理設(shè)備包括監(jiān)控器,被配置為至少獲知多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息;數(shù)據(jù)接口,被配置為接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求,并將與數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)返回至數(shù)據(jù)請(qǐng)求方;選擇器,被配置為至少基于監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息,選擇多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理數(shù)據(jù)請(qǐng)求,其中多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);以及數(shù)據(jù)讀取器,被配置為從選擇器所選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求數(shù)據(jù),并將被CN 102932440 A書明說(shuō)2/14 頁(yè)請(qǐng)求數(shù)據(jù)發(fā)送給所述數(shù)據(jù)接口。
可選的,監(jiān)控器包括檢測(cè)模塊,被配置為向多個(gè)數(shù)據(jù)服務(wù)器分別發(fā)送查詢請(qǐng)求, 以及接收多個(gè)數(shù)據(jù)服務(wù)器各自返回的響應(yīng)數(shù)據(jù),響應(yīng)數(shù)據(jù)中至少包括對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息;延遲模塊,被配置為根據(jù)所述多個(gè)數(shù)據(jù)服務(wù)器各自對(duì)應(yīng)的查詢請(qǐng)求的發(fā)送時(shí)間和響應(yīng)數(shù)據(jù)的接收時(shí)間,獲得多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息。
可選的,如果數(shù)據(jù)讀取器從選擇器選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求數(shù)據(jù)失敗,則選擇器還根據(jù)多個(gè)數(shù)據(jù)服務(wù)器中的其他數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息,選擇其他數(shù)據(jù)服務(wù)器當(dāng)中的另一個(gè)數(shù)據(jù)服務(wù)器來(lái)處理數(shù)據(jù)請(qǐng)求;以及數(shù)據(jù)讀取器還從另一個(gè)數(shù)據(jù)服務(wù)器讀取與數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)。
可選的,選擇器包括第一選擇模塊,被配置為至少基于監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足負(fù)載狀態(tài)允許條件的第一數(shù)據(jù)服務(wù)器集合;在第一數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息,選擇網(wǎng)絡(luò)延遲最低的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
可選的,選擇器包括第二選擇模塊,被配置為至少基于監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足網(wǎng)絡(luò)延遲允許條件的第二數(shù)據(jù)服務(wù)器集合;在第二數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器處理所述數(shù)據(jù)請(qǐng)求。
可選的,數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息包括下述信息中的一種或多種數(shù)據(jù)服務(wù)器現(xiàn)有的并發(fā)連接數(shù);數(shù)據(jù)服務(wù)器的CPU負(fù)載指標(biāo);數(shù)據(jù)服務(wù)器的磁盤負(fù)載指標(biāo)。
依據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,該數(shù)據(jù)管理方法包括至少獲知多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息;接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求;至少基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息,選擇多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理數(shù)據(jù)請(qǐng)求,其中,多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);從所選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求數(shù)據(jù);以及將被請(qǐng)求數(shù)據(jù)返回至數(shù)據(jù)請(qǐng)求方。
依據(jù)本發(fā)明的又一方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)管理系統(tǒng),包括根據(jù)本發(fā)明的數(shù)據(jù)管理設(shè)備,以及多個(gè)數(shù)據(jù)服務(wù)器,所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)有數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)。
依據(jù)本發(fā)明的再一方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備, 該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)Mongod服務(wù)器,該數(shù)據(jù)管理設(shè)備包括Mongos裝置,所述 Mongos裝置具體包括監(jiān)控器,被配置為至少獲知分布在至少兩個(gè)機(jī)房的多個(gè)Mongod服務(wù)器各自的網(wǎng)絡(luò)延遲信息和負(fù)載狀態(tài)信息;數(shù)據(jù)接口,被配置為接收來(lái)自應(yīng)用服務(wù)器的數(shù)據(jù)請(qǐng)求,并將與數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)返回至應(yīng)用數(shù)據(jù)服務(wù)器;選擇器,被配置為至少基于監(jiān)控器所獲知的分布在至少兩個(gè)機(jī)房的多個(gè)Mongod服務(wù)器各自的網(wǎng)絡(luò)延遲信息和負(fù)載狀態(tài)信息,選擇多個(gè)Mongod服務(wù)器之一來(lái)處理數(shù)據(jù)請(qǐng)求,多個(gè)Mongod服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);以及數(shù)據(jù)讀取器,被配置為從選擇器選擇的Mongod服務(wù)器讀取被請(qǐng)求數(shù)據(jù),并將所述被請(qǐng)求數(shù)據(jù)發(fā)送給所述數(shù)據(jù)接口。
依據(jù)本發(fā)明的又一方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備, 該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,該數(shù)據(jù)管理設(shè)備包括監(jiān)控器,被配置為至少6獲知所述多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽;數(shù)據(jù)接口,被配置為接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求,并將與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)返回至所述數(shù)據(jù)請(qǐng)求方;選擇器,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,其中所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);數(shù)據(jù)讀取器,被配置為從所述選擇器所選擇的數(shù)據(jù)服務(wù)器讀取所述被請(qǐng)求數(shù)據(jù),并將所述被請(qǐng)求數(shù)據(jù)發(fā)送給所述數(shù)據(jù)接口。
可選的,所述選擇器包括第三選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第三數(shù)據(jù)服務(wù)器集合;在所述第三數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
可選的,所述選擇器包括第四選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第四數(shù)據(jù)服務(wù)器集合;在所述第四數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
可選的,所述監(jiān)控器,被配置為還獲知所述多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息; 所述選擇器,具體被配置為基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,其中所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)。
可選的,所述選擇器包括第五選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第五數(shù)據(jù)服務(wù)器集合;在所述第五數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息以及預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第五數(shù)據(jù)服務(wù)器子集合;在所述第五數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息,選擇網(wǎng)絡(luò)延遲最低的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
可選的,所述選擇器包括第六選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第六數(shù)據(jù)服務(wù)器集合;在所述第六數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息以及預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足所述網(wǎng)絡(luò)延遲允許條件的第六數(shù)據(jù)服務(wù)器子集合;在所述第六數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
可選的,所述選擇器包括第七選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第七數(shù)據(jù)服務(wù)器集合;在所述第七數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足所述網(wǎng)絡(luò)延遲允許條件的第七數(shù)據(jù)服務(wù)器子集合;在所述第七數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽, 選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
可選的,所述選擇器包括第八選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足所述網(wǎng)絡(luò)延遲允許條件的第八數(shù)據(jù)服務(wù)器集合;在所述第八數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第八數(shù)據(jù)服務(wù)器子集合;在所述第八數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求??蛇x的,所述特定機(jī)房具體是下述機(jī)房中的一種本地機(jī)房,或,基于業(yè)務(wù)需要指定某一物理位置的機(jī)房??蛇x的,所述監(jiān)控器包括檢測(cè)模塊,被配置為向所述多個(gè)數(shù)據(jù)服務(wù)器分別發(fā)送查詢請(qǐng)求,以及接收所述多個(gè)數(shù)據(jù)服務(wù)器各自 返回的響應(yīng)數(shù)據(jù),所述響應(yīng)數(shù)據(jù)中至少包括對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽。依據(jù)本發(fā)明的又一方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)管理方法包括至少獲知所述多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽;接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求;至少基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,其中所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);從所述選擇的數(shù)據(jù)服務(wù)器讀取所述被請(qǐng)求數(shù)據(jù);以及將所述被請(qǐng)求數(shù)據(jù)返回至所述數(shù)據(jù)請(qǐng)求方??蛇x的,所述至少基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求包括基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求。依據(jù)本發(fā)明的又一方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)管理系統(tǒng),包括根據(jù)本發(fā)明的數(shù)據(jù)管理設(shè)備,以及多個(gè)數(shù)據(jù)服務(wù)器,多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)有數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)。依據(jù)本發(fā)明的又一方面,提供了一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多Mongod服務(wù)器,該數(shù)據(jù)管理設(shè)備包括Mongos裝置,所述Mongos裝置具體包括監(jiān)控器,被配置為至少獲知分布在至少兩個(gè)機(jī)房的多個(gè)Mongod服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽;數(shù)據(jù)接口,被配置為接收來(lái)自應(yīng)用服務(wù)器的數(shù)據(jù)請(qǐng)求,并將與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)返回至所述應(yīng)用數(shù)據(jù)服務(wù)器;選擇器,被配置為至少基于所獲知的分布在至少兩個(gè)機(jī)房的多個(gè)Mongod服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)Mongod服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,所述多個(gè)Mongod服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);數(shù)據(jù)讀取器,被配置為從所述選擇器選擇的Mongod服務(wù)器讀取所述被請(qǐng)求數(shù)據(jù),并將所述被請(qǐng)求數(shù)據(jù)發(fā)送給所述數(shù)據(jù)接口。根據(jù)本發(fā)明的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法、設(shè)備和系統(tǒng)可以至少根據(jù)負(fù)載情況和網(wǎng)絡(luò)延遲情況,或者負(fù)載情況和物理位置標(biāo)簽,或者負(fù)載情況、網(wǎng)絡(luò)延遲情況以及物理位置標(biāo)簽,有針對(duì)性的選擇合適的數(shù)據(jù)服務(wù)器,由此解決了現(xiàn)有隨機(jī)選擇方式的盲目性,取得了提高數(shù)據(jù)庫(kù)數(shù)據(jù)讀取效率的有益效果。上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中
圖I示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)管理系統(tǒng)示意圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法的不意圖;以及
圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法的示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
請(qǐng)參閱圖1,其為根據(jù)本發(fā)明一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)管理系統(tǒng)示意圖。
從圖中可以看出,該系統(tǒng)包括用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備100和多個(gè)數(shù)據(jù)服務(wù)器,即該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,比如第一數(shù)據(jù)服務(wù)器302、 第二數(shù)據(jù)服務(wù)器304、第三數(shù)據(jù)服務(wù)器306以及第四數(shù)據(jù)服務(wù)器308,需要說(shuō)明的是,上述多個(gè)數(shù)據(jù)服務(wù)器屬于一個(gè)數(shù)據(jù)服務(wù)器集群,該集群中的具體數(shù)據(jù)服務(wù)器數(shù)量并沒有限制,本發(fā)明只是示例性的給出四個(gè)數(shù)據(jù)服務(wù)器。數(shù)據(jù)請(qǐng)求方400通過(guò)數(shù)據(jù)管理設(shè)備100從某個(gè)數(shù)據(jù)服務(wù)器獲取被請(qǐng)求數(shù)據(jù)。
數(shù)據(jù)管理設(shè)備100具體包括監(jiān)控器102、數(shù)據(jù)接口 104、選擇器106以及數(shù)據(jù)讀取器108。下面將分別詳細(xì)介紹每一個(gè)組成部分。
監(jiān)控器102有多種可以單獨(dú)應(yīng)用、也可以任意組合應(yīng)用的具體實(shí)現(xiàn)方案
在一個(gè)實(shí)施例中,監(jiān)控器102獲取多個(gè)數(shù)據(jù)服務(wù)器(302-304)各自的負(fù)載狀態(tài)信肩、O
例如,監(jiān)控器102可以包括檢測(cè)模塊,檢測(cè)模塊向多個(gè)數(shù)據(jù)服務(wù)器分別發(fā)送查詢請(qǐng)求,并且接收數(shù)據(jù)服務(wù)器(302-304)各自返回的響應(yīng)數(shù)據(jù)。響應(yīng)數(shù)據(jù)中至少包括對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息。通過(guò)該檢測(cè)模塊,使得監(jiān)控器102可以獲知數(shù)據(jù)服務(wù)器 (302-304)各自的負(fù)載狀態(tài)信息。每個(gè)數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息包括但不限于下述信息中的一種或多種數(shù)據(jù)服務(wù)器現(xiàn)有的并發(fā)連接數(shù);數(shù)據(jù)服務(wù)器的CPU (Central Processing Unit,中央處理單元)負(fù)載指標(biāo),比如CPU空閑狀況的百分比率;數(shù)據(jù)服務(wù)器的磁盤負(fù)載指標(biāo),比如 io (input output,輸入輸出)、磁盤操作的 tps (Transactions Per Second,每秒寫入讀取的數(shù)據(jù)量)。例如,檢測(cè)模塊可以每隔一定時(shí)間間隔,比如10秒向各數(shù)據(jù)服務(wù)器發(fā)送一次心跳請(qǐng)求,獲取每個(gè)數(shù)據(jù)服務(wù)器的狀態(tài)。心跳請(qǐng)求可以理解為是查詢請(qǐng)求的一種,具體而言,是發(fā)送一個(gè)數(shù)據(jù)包給每個(gè)數(shù)據(jù)服務(wù)器,每個(gè)服務(wù)器收到心跳請(qǐng)求后,都會(huì)給檢測(cè)模塊回復(fù)一個(gè)響應(yīng)的數(shù)據(jù)包,在該響應(yīng)的數(shù)據(jù)包中記錄了該數(shù)據(jù)服務(wù)器上現(xiàn)有的負(fù)載狀態(tài)信肩、O
可選的,監(jiān)控器102也可以不向各數(shù)據(jù)服務(wù)器發(fā)查詢請(qǐng)求,而是每隔一定時(shí)間間隔,各數(shù)據(jù)服務(wù)器主動(dòng)上報(bào)各自的負(fù)載狀態(tài)信息。
在另一實(shí)施例中,監(jiān)控器102還可以獲知多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息。
例如,監(jiān)控器102包括檢測(cè)模塊和延遲模塊。檢測(cè)模塊為向多個(gè)數(shù)據(jù)服務(wù)器 (302-304)發(fā)送查詢請(qǐng)求,以及接收各數(shù)據(jù)服務(wù)器(302-304)返回的響應(yīng)數(shù)據(jù)。延遲模塊根據(jù)檢測(cè)模塊發(fā)送查詢請(qǐng)求的發(fā)送時(shí)間和檢測(cè)模塊接收到響應(yīng)數(shù)據(jù)的接收時(shí)間,計(jì)算數(shù)據(jù)服務(wù)器(302-304 )各自的網(wǎng)絡(luò)延遲信息。具體而言,檢測(cè)模塊會(huì)記錄向每個(gè)數(shù)據(jù)服務(wù)器發(fā)送查詢請(qǐng)求的發(fā)送時(shí)間,也會(huì)記錄響應(yīng)數(shù)據(jù)的接收時(shí)間,因此,延遲模塊就可以根據(jù)檢測(cè)模塊提供的針對(duì)某個(gè)數(shù)據(jù)服務(wù)器的查詢請(qǐng)求發(fā)送時(shí)間和響應(yīng)數(shù)據(jù)接收時(shí)間獲得數(shù)據(jù)包的網(wǎng)絡(luò)延遲時(shí)間,進(jìn)而獲得每個(gè)數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息??蛇x的,也可以由各數(shù)據(jù)服務(wù)器主動(dòng)向監(jiān)控器102發(fā)送測(cè)試的數(shù)據(jù)包,然后監(jiān)控器102向各數(shù)據(jù)服務(wù)器返回響應(yīng)的數(shù)據(jù)包,進(jìn)而,各數(shù)據(jù)服務(wù)器根據(jù)測(cè)試數(shù)據(jù)包的發(fā)送時(shí)間和監(jiān)控器102響應(yīng)的數(shù)據(jù)包的接收時(shí)間計(jì)算自己的網(wǎng)絡(luò)延遲時(shí)間,并將各自的網(wǎng)絡(luò)延遲時(shí)間上報(bào)至監(jiān)控器102。
在又一個(gè)實(shí)施例中,監(jiān)控器102還可以獲知多個(gè)數(shù)據(jù)服務(wù)器(302-304)各自的物理位置標(biāo)簽。
例如,各數(shù)據(jù)服務(wù)器返回至監(jiān)控器102的響應(yīng)數(shù)據(jù)中,還包括對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽。物理位置標(biāo)簽,簡(jiǎn)稱為標(biāo)簽,用以標(biāo)記每個(gè)數(shù)據(jù)服務(wù)器所在的物理位置信息,比如數(shù)據(jù)服務(wù)器處于哪個(gè)機(jī)房。因?yàn)槎鄠€(gè)數(shù)據(jù)服務(wù)器可能處于不同的機(jī)房中,因此通過(guò)物理位置標(biāo)簽即可獲知每個(gè)數(shù)據(jù)服務(wù)器所處的機(jī)房信息。在具體實(shí)現(xiàn)時(shí),可以在各數(shù)據(jù)服務(wù)器的配置信息中添加各自的物理位置標(biāo)簽,進(jìn)而,當(dāng)數(shù)據(jù)服務(wù)器在啟動(dòng)時(shí)就相應(yīng)的加載配置信息,當(dāng)向監(jiān)控器102返回響應(yīng)數(shù)據(jù)時(shí)就可以攜帶上自己的物理位置標(biāo)簽。同理可選的,監(jiān)控器102可以不向各數(shù)據(jù)服務(wù)器發(fā)送查詢請(qǐng)求,而是由各數(shù)據(jù)服務(wù)器主動(dòng)上報(bào)自己的物理位置標(biāo)簽,在這種方案中,監(jiān)控器102就可以不包括檢測(cè)模塊。
通過(guò)上述監(jiān)控器102的多個(gè)具體實(shí)現(xiàn)方式可以看出,監(jiān)控器102可以獲知多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息以及物理位置標(biāo)簽中的任意一種,也可以獲知上述三種信息中的任意兩種或三種,甚至被配置獲知更多所需要的信息。比如,至少獲知多個(gè)數(shù)據(jù)服務(wù)器(302-304)各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息,或者至少獲知多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,再或者獲知多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息以及物理位置標(biāo)簽。此外,監(jiān)控器102可以定期或不定期的更新所獲知的各數(shù)據(jù)服務(wù)器的各種狀態(tài)信息,比如可以每間隔一定時(shí)間就向各數(shù)據(jù)服務(wù)器發(fā)送一次查詢請(qǐng)求,或者要求各數(shù)據(jù)服務(wù)器每隔一定間隔時(shí)間就上報(bào)一次自己的狀態(tài)信息,從而可以保證所獲知的各數(shù)據(jù)服務(wù)器的相關(guān)狀態(tài)信息是相對(duì)及時(shí)、準(zhǔn)確、最新的。
數(shù)據(jù)接口 104接收來(lái)自數(shù)據(jù)請(qǐng)求方400的數(shù)據(jù)請(qǐng)求。數(shù)據(jù)請(qǐng)求方400包括但不限于應(yīng)用服務(wù)器(如web服務(wù)器)、郵件服務(wù)器、文件服務(wù)器以及各種需要查詢數(shù)據(jù)的計(jì)算機(jī)程序等。
數(shù)據(jù)接口 104將所接收的數(shù)據(jù)請(qǐng)求發(fā)送到數(shù)據(jù)讀取器108。數(shù)據(jù)讀取器108會(huì)從多個(gè)數(shù)據(jù)服務(wù)器(302-308)當(dāng)中選擇一個(gè)數(shù)據(jù)服務(wù)器來(lái)讀取滿足數(shù)據(jù)請(qǐng)求的數(shù)據(jù),并且將所讀取的數(shù)據(jù)返回給數(shù)據(jù)接口 104,以便數(shù)據(jù)接口 104將該數(shù)據(jù)返回給數(shù)據(jù)請(qǐng)求方400。數(shù)據(jù)讀取器108根據(jù)選擇器106來(lái)選擇多個(gè)數(shù)據(jù)服務(wù)器之一進(jìn)行數(shù)據(jù)讀取。選擇器106根據(jù)監(jiān)控器102所獲知的有關(guān)各個(gè)數(shù)據(jù)服務(wù)器的信息,來(lái)選擇由數(shù)據(jù)讀取器108進(jìn)行數(shù)據(jù)讀取的服務(wù)器。選擇器106具有多種可以單獨(dú)應(yīng)用、也可以任意組合應(yīng)用的具體實(shí)現(xiàn)方案在一個(gè)實(shí)施例中,選擇器106至少基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息,選擇多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理數(shù)據(jù)請(qǐng)求。因?yàn)楸O(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器的各種狀態(tài)信息都是及時(shí)更新的,因此選擇器106可以做出及時(shí)和準(zhǔn)確的選擇??蛇x的,選擇器106可以包括第一選擇模塊,第一選擇模塊首先基于監(jiān)控器102所 獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足負(fù)載狀態(tài)允許條件的第一數(shù)據(jù)服務(wù)器集合;隨后根據(jù)各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息,在第一數(shù)據(jù)服務(wù)器集合中選擇網(wǎng)絡(luò)延遲最低的數(shù)據(jù)服務(wù)器來(lái)處理該數(shù)據(jù)請(qǐng)求。該預(yù)設(shè)的負(fù)載狀態(tài)允許條件,可以基于負(fù)載狀態(tài)的具體內(nèi)容以及實(shí)際需求而定。例如,負(fù)載狀態(tài)允許條件可以是針對(duì)某項(xiàng)具體負(fù)載狀態(tài)的要求,也可以是針對(duì)多項(xiàng)負(fù)載狀態(tài)都有要求。比如,負(fù)載狀態(tài)允許條件可以是,數(shù)據(jù)服務(wù)器現(xiàn)有的并發(fā)連接數(shù)小于第一閾值,或者是數(shù)據(jù)服務(wù)器的CPU負(fù)載指標(biāo)小于第二閾值,再或者是數(shù)據(jù)服務(wù)器的磁盤負(fù)載指標(biāo)小于第三閾值,其中,第一閾值、第二閾值以及第三閾值可以相等,也可以不等。再比如,滿足負(fù)載狀態(tài)允許條件可以是上述多個(gè)負(fù)載狀態(tài)指標(biāo)均小于各自的預(yù)置閾值,即多個(gè)負(fù)載狀態(tài)指標(biāo)都同時(shí)滿足要求才算滿足負(fù)載狀態(tài)允許條件。至于各閾值的具體數(shù)值設(shè)置,則可以根據(jù)具體應(yīng)用環(huán)境對(duì)技術(shù)指標(biāo)的要求而定,本發(fā)明實(shí)施例對(duì)此并沒有限制。通過(guò)這個(gè)實(shí)現(xiàn)方案,可以使選擇器106在負(fù)載狀態(tài)都比較小的若干數(shù)據(jù)服務(wù)器(302-308 )中,選擇一個(gè)網(wǎng)絡(luò)延遲也比較低的數(shù)據(jù)服務(wù)器為數(shù)據(jù)請(qǐng)求方400提供被請(qǐng)求的數(shù)據(jù)??蛇x的,選擇器106可以包括第二選擇模塊。該第二選擇模塊首先基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足網(wǎng)絡(luò)延遲允許條件的第二數(shù)據(jù)服務(wù)器集合。隨后第二選擇模塊在第二數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器處理數(shù)據(jù)請(qǐng)求。同理,網(wǎng)絡(luò)延遲允許條件的具體內(nèi)容可以根據(jù)實(shí)際需要而定。比如,可以將網(wǎng)絡(luò)延遲允許條件預(yù)設(shè)為網(wǎng)絡(luò)延遲時(shí)間小于某個(gè)閾值。前面已經(jīng)介紹過(guò)網(wǎng)絡(luò)延遲時(shí)間和負(fù)載狀態(tài)的相關(guān)信息,此處不再贅述。通過(guò)這種方式,可以使選擇器106在網(wǎng)絡(luò)延遲相對(duì)比較小的若干數(shù)據(jù)服務(wù)器(302-308)中,優(yōu)先選擇負(fù)載最低的數(shù)據(jù)服務(wù)器為數(shù)據(jù)請(qǐng)求方400提供被請(qǐng)求的數(shù)據(jù)。在另一個(gè)實(shí)施例中,選擇器106為至少基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器(302-308)各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理數(shù)據(jù)請(qǐng)求。物理位置標(biāo)簽,如上所述,用以標(biāo)記每個(gè)數(shù)據(jù)服務(wù)器所在的物理位置信息,比如處于哪個(gè)機(jī)房。因?yàn)槎鄠€(gè)數(shù)據(jù)服務(wù)器可能處于不同的機(jī)房中,因此通過(guò)物理位置標(biāo)簽即可獲知每個(gè)數(shù)據(jù)服務(wù)器的具體物理位置。通常而言,處于本地機(jī)房的數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲較小、處理速度較快,處于遠(yuǎn)程機(jī)房的數(shù)據(jù)服務(wù)器網(wǎng)絡(luò)延遲較大、處理速度較慢。另外,往往基于業(yè)務(wù)的某些特定需求,某個(gè)業(yè)務(wù)需要指定某個(gè)物理位置的機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器處理數(shù)據(jù)請(qǐng)求。特定機(jī)房具體是本地機(jī)房,或者基于業(yè)務(wù)需要指定某一物理位置的機(jī)房??蛇x的,選擇器106可以包括第三選擇模塊。第三選擇模塊基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足負(fù)載狀態(tài)允許條件的第三數(shù)據(jù)服務(wù)器集合。然后第三選擇模塊在第三數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理數(shù)據(jù)請(qǐng)求。通過(guò)這種技術(shù)方案,可以使選擇器106在若干 負(fù)載較低的數(shù)據(jù)服務(wù)器中,優(yōu)選選擇特定機(jī)房?jī)?nèi)部的一個(gè)數(shù)據(jù)服務(wù)器來(lái)處理數(shù)據(jù)請(qǐng)求??蛇x的,選擇器106可以包括第四選擇模塊。第四選擇模塊基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第四數(shù)據(jù)服務(wù)器集合。隨后,第四選擇模塊在第四數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器來(lái)處理該數(shù)據(jù)請(qǐng)求。通過(guò)該技術(shù)方案,可以使選擇器106在符合要求的特定機(jī)房?jī)?nèi)部的若干數(shù)據(jù)服務(wù)器中,優(yōu)先選擇一個(gè)負(fù)載最低數(shù)據(jù)服務(wù)器處理數(shù)據(jù)請(qǐng)求。在又一個(gè)實(shí)施例中,選擇器106可以根據(jù)監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息和物理位置標(biāo)簽,在多個(gè)數(shù)據(jù)服務(wù)器(302-308)中選擇其一來(lái)處理數(shù)據(jù)請(qǐng)求。可選的,選擇器106可以包括第五選擇模塊。第五選擇模塊首先基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第五數(shù)據(jù)服務(wù)器集合。隨后,第五選擇模塊在第五數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息以及預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足負(fù)載狀態(tài)允許條件的第五數(shù)據(jù)服務(wù)器子集合,并在第五數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息,選擇網(wǎng)絡(luò)延遲最低的數(shù)據(jù)服務(wù)器處理來(lái)該數(shù)據(jù)請(qǐng)求。通過(guò)這種技術(shù)方案,可以使選擇器106在合適的特定機(jī)房?jī)?nèi)部的多個(gè)數(shù)據(jù)服務(wù)器中,選擇一個(gè)負(fù)載較低,并且網(wǎng)絡(luò)延遲也比較小的數(shù)據(jù)服務(wù)器處理該數(shù)據(jù)請(qǐng)求??蛇x的,選擇器106可以包括第六選擇模塊。第六選擇模塊可以首先基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第六數(shù)據(jù)服務(wù)器集合。隨后,在第六數(shù)據(jù)服務(wù)器集合中,第六選擇模塊根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息以及預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足網(wǎng)絡(luò)延遲允許條件的第六數(shù)據(jù)服務(wù)器子集合;并在第六數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器來(lái)處理該數(shù)據(jù)請(qǐng)求。通過(guò)這種技術(shù)方案,可以使選擇器106在合適的特定機(jī)房?jī)?nèi)部的多個(gè)數(shù)據(jù)服務(wù)器中,選擇一個(gè)網(wǎng)絡(luò)延遲較小,并且負(fù)載也比較低的數(shù)據(jù)服務(wù)器處理該數(shù)據(jù)請(qǐng)求??蛇x的,選擇器106可以包括第七選擇模塊。第七選擇模塊可以首先基于監(jiān)控器102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足該負(fù)載狀態(tài)允許條件的第七數(shù)據(jù)服務(wù)器集合。隨后,在第七數(shù)據(jù)服務(wù)器集合中,第七選擇模塊根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足該網(wǎng)絡(luò)延遲允許條件的第七數(shù)據(jù)服務(wù)器子集合;并且在第七數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理該數(shù)據(jù)請(qǐng)求。通過(guò)這種技術(shù)方案,可以使選擇器106在負(fù)載較低且網(wǎng)絡(luò)延遲較小的多個(gè)數(shù)據(jù)服務(wù)器中,優(yōu)選選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器處理該數(shù)據(jù)請(qǐng)求。
可選的,選擇器106可以包括第八選擇模塊。第八選擇模塊首先可以基于監(jiān)控器 102所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足網(wǎng)絡(luò)延遲允許條件的第八數(shù)據(jù)服務(wù)器集合。隨后,在第八數(shù)據(jù)服務(wù)器集合中,第八選擇模塊根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足負(fù)載狀態(tài)允許條件的第八數(shù)據(jù)服務(wù)器子集合;并在第八數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理該數(shù)據(jù)請(qǐng)求。通過(guò)這種技術(shù)方案,可以使選擇器106在網(wǎng)絡(luò)延遲較小且負(fù)載較低的多個(gè)數(shù)據(jù)服務(wù)器中,優(yōu)選選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器處理該數(shù)據(jù)請(qǐng)求。
在一個(gè)實(shí)施例中,如果數(shù)據(jù)讀取器108從選擇器106所選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求數(shù)據(jù)失敗的話,則數(shù)據(jù)讀取器108會(huì)通知選擇器106,選擇器106隨后根據(jù)多個(gè)數(shù)據(jù)服務(wù)器(302-308)中的其他數(shù)據(jù)服務(wù)器各自的狀態(tài),繼續(xù)選擇其他數(shù)據(jù)服務(wù)器當(dāng)中的另一個(gè)數(shù)據(jù)服務(wù)器,并且將選擇結(jié)果返回給數(shù)據(jù)讀取器108。數(shù)據(jù)讀取器108從選擇器106重新選擇的數(shù)據(jù)服務(wù)器讀取與數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)。選擇器106具體從其他數(shù)據(jù)服務(wù)器中選擇哪個(gè)數(shù)據(jù)服務(wù)器處理,與在讀取數(shù)據(jù)失敗前的選擇方案雷同,具體可以參考前面選擇器106的相關(guān)實(shí)現(xiàn)方案,此處不再贅述。
可選的,監(jiān)控器102中的檢測(cè)模塊向各數(shù)據(jù)服務(wù)器發(fā)送查詢請(qǐng)求時(shí),仍然繼續(xù)向發(fā)生故障的數(shù)據(jù)服務(wù)器(即數(shù)據(jù)讀取器108讀取被請(qǐng)求數(shù)據(jù)失敗的數(shù)據(jù)服務(wù)器)發(fā)送查詢請(qǐng)求,并且根據(jù)該發(fā)生故障的數(shù)據(jù)服務(wù)器是否返回響應(yīng)數(shù)據(jù)或者返回響應(yīng)數(shù)據(jù)的內(nèi)容或狀況,確定該發(fā)生故障的數(shù)據(jù)服務(wù)器的故障是否已消除,如果故障已消除,則更新該數(shù)據(jù)服務(wù)器為可用,以便后續(xù)選擇器106選擇哪個(gè)數(shù)據(jù)服務(wù)器處理數(shù)據(jù)請(qǐng)求時(shí),考慮該故障已消除的數(shù)據(jù)服務(wù)器。
例如,當(dāng)某個(gè)數(shù)據(jù)服務(wù)器出現(xiàn)故障,數(shù)據(jù)讀取器108獲取數(shù)據(jù)失敗后,選擇器106 會(huì)自動(dòng)選取另一臺(tái)數(shù)據(jù)服務(wù)器提供給數(shù)據(jù)讀取器108,以便數(shù)據(jù)讀取器重新讀取數(shù)據(jù)。并且,選擇器106會(huì)在檢測(cè)過(guò)程所記錄的數(shù)據(jù)中指示該數(shù)據(jù)服務(wù)器處于故障狀態(tài),在該數(shù)據(jù)服務(wù)器故障消除之前,選取數(shù)據(jù)服務(wù)器時(shí)會(huì)跳過(guò)該發(fā)生故障的數(shù)據(jù)服務(wù)器。當(dāng)監(jiān)控器102 每發(fā)一次心跳請(qǐng)求(即查詢請(qǐng)求)時(shí),都會(huì)檢測(cè)發(fā)生故障的數(shù)據(jù)服務(wù)器,當(dāng)該數(shù)據(jù)服務(wù)器恢復(fù)時(shí),修改該數(shù)據(jù)服務(wù)器為正常狀態(tài),以便選擇器106后續(xù)可以選擇該數(shù)據(jù)服務(wù)器。
可選的,當(dāng)新增提供服務(wù)的數(shù)據(jù)服務(wù)器時(shí),將該數(shù)據(jù)服務(wù)器添加至監(jiān)控器102維護(hù)的檢測(cè)列表中,以便監(jiān)控器102可以監(jiān)控該新增服務(wù)器的相關(guān)狀態(tài)信息。
在一個(gè)實(shí)施例中,多個(gè)數(shù)據(jù)服務(wù)器具體是多個(gè)Mongod服務(wù)器,具體請(qǐng)參閱圖2所, 其為根據(jù)本發(fā)明一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備。多個(gè)Mongod服務(wù)器至少分布在兩個(gè)機(jī)房,比如MongoDl和MongoD2分布于機(jī)房I內(nèi),MongoD3和MongoD4 分布于機(jī)房2內(nèi)。數(shù)據(jù)管理設(shè)備100包括Mongos 210,即前述數(shù)據(jù)管理設(shè)備100中的各部件在Mongos 210中予以實(shí)現(xiàn),Mongos 210通過(guò)監(jiān)控器202維護(hù)著各數(shù)據(jù)服務(wù)器的信息。 Mongos 210監(jiān)控器202、數(shù)據(jù)接口 204、選擇器206、以及數(shù)據(jù)讀取器208。監(jiān)視器202的具體實(shí)現(xiàn)與前述各實(shí)施例中的監(jiān)控器102雷同,類似的,數(shù)據(jù)接口 204與前述各實(shí)施例中的數(shù)據(jù)接口 104雷同,選擇器206與前述各實(shí)施例中的選擇器106雷同,以及數(shù)據(jù)讀取器208與前述各實(shí)施例中的數(shù)據(jù)讀取器108雷同,僅僅是將圖I中所示的各部件具體應(yīng)用于MongoDB的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,因此對(duì)相關(guān)組成部分的具體實(shí)現(xiàn)不再贅述,請(qǐng)參考前述相關(guān)組成部分的具體實(shí)現(xiàn)方案。通過(guò)各個(gè)實(shí)施例中的選擇器206對(duì)數(shù)據(jù)服務(wù)器的選擇,可以使得在兼顧選擇負(fù)載較低的數(shù)據(jù)服務(wù)器的同時(shí),能夠優(yōu)先選擇網(wǎng)絡(luò)延遲較小的數(shù)據(jù)服務(wù)器,或者優(yōu)先選擇與Mongos 210在同一機(jī)房、即本地機(jī)房的數(shù)據(jù)服務(wù)器處理數(shù)據(jù)請(qǐng)求。通常,一般本地機(jī)房?jī)?nèi)的數(shù)據(jù)服務(wù)器網(wǎng)頁(yè)延遲也較小。
當(dāng)然,前述各實(shí)施例的數(shù)據(jù)管理設(shè)備,除了可以應(yīng)用于MongoDB的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,還可以應(yīng)用于其他類似的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),比如mysql等。
請(qǐng)參閱圖3,其為根據(jù)本發(fā)明一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法的示意圖,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,其例如為上面參考圖I或者圖2描述的數(shù)據(jù)存儲(chǔ)系統(tǒng)。該數(shù)據(jù)管理方法始于步驟S310,在步驟S310中,獲知多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息。
具體而言,在步驟S310中,可以向多個(gè)數(shù)據(jù)服務(wù)器分別發(fā)送查詢請(qǐng)求,并接收多個(gè)數(shù)據(jù)服務(wù)器各自返回的響應(yīng)數(shù)據(jù)。響應(yīng)數(shù)據(jù)中通常包括對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,這樣就獲得了各個(gè)數(shù)據(jù)服務(wù)器的負(fù)載狀況信息。另外,在步驟S310中,還可以基于向各個(gè)數(shù)據(jù)服務(wù)器發(fā)送查詢請(qǐng)求的發(fā)送時(shí)間和響應(yīng)數(shù)據(jù)的接收時(shí)間,獲得各個(gè)數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息。例如可以把每個(gè)數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲時(shí)間計(jì)算為相應(yīng)發(fā)送時(shí)間和接收時(shí)間之差。除了可以獲得前面的負(fù)載狀態(tài)信息和網(wǎng)絡(luò)延遲信息之外,還可以獲得數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,比如各個(gè)數(shù)據(jù)服務(wù)器在返回的響應(yīng)數(shù)據(jù)中也添加各自的物理位置標(biāo)簽。
本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的監(jiān)控器102執(zhí)行,相關(guān)的技術(shù)實(shí)現(xiàn)可以參考前述監(jiān)控器102在各實(shí)施例中的相關(guān)描述,此處不再贅述。
隨后,在S320中,接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求。數(shù)據(jù)請(qǐng)求方具體可以是常見的應(yīng)用服務(wù)器,也可以其他服務(wù)器,比如郵件服務(wù)器、文件服務(wù)器等,只要有數(shù)據(jù)查詢需求、 并且數(shù)據(jù)服務(wù)器能夠提供被查詢的數(shù)據(jù)的服務(wù)器都可以作為本發(fā)明實(shí)施例中的數(shù)據(jù)請(qǐng)求方。而且,除了各種具有數(shù)據(jù)查詢請(qǐng)求的服務(wù)器之外,有數(shù)據(jù)查詢請(qǐng)求的各種計(jì)算機(jī)程序也可以作為本發(fā)明實(shí)施例的數(shù)據(jù)請(qǐng)求方。總而言之,只要有數(shù)據(jù)查詢需求、并且數(shù)據(jù)服務(wù)器能夠提供被查詢的數(shù)據(jù)的設(shè)備或程序,都可以是本發(fā)明實(shí)施例中的數(shù)據(jù)請(qǐng)求方,本發(fā)明實(shí)施例對(duì)此并沒有限制。
本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的數(shù)據(jù)接口 104執(zhí)行,相關(guān)的技術(shù)實(shí)現(xiàn)可以參考前述監(jiān)控器102在各實(shí)施例中的相關(guān)描述,此處不再贅述。
在步驟S320中接收到數(shù)據(jù)請(qǐng)求之后,在步驟S330中,根據(jù)在步驟S310所獲知的各個(gè)數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和/或網(wǎng)絡(luò)延遲信息,選擇一個(gè)要處理該數(shù)據(jù)請(qǐng)求的數(shù)據(jù)服務(wù)器。
應(yīng)當(dāng)注意的是,除了根據(jù)各個(gè)數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和/或網(wǎng)絡(luò)延遲信息之外,還可以根據(jù)各個(gè)數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽來(lái)選擇處理該數(shù)據(jù)請(qǐng)求的數(shù)據(jù)服務(wù)器。本發(fā)明所描述的選擇方式可以包括負(fù)載狀態(tài)、網(wǎng)絡(luò)延遲和物理位置標(biāo)簽的一個(gè)或者多個(gè)的組合。所有這些選擇方式都在本發(fā)明的保護(hù)范圍之內(nèi)。對(duì)于如何結(jié)合物理位置標(biāo)簽來(lái)選擇處理該數(shù)據(jù)請(qǐng)求的數(shù)據(jù)服務(wù)器,在后續(xù)圖4所示的實(shí)施例中還會(huì)進(jìn)行更詳細(xì)的介紹。
本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的選擇器106執(zhí)行,相關(guān)的技術(shù)實(shí)現(xiàn)可以參考前述選擇器106在各實(shí)施例中的相關(guān)描述,此處不再贅述。
隨后,在S340中,從步驟S330所選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求的數(shù)據(jù)。本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的數(shù)據(jù)讀取器108執(zhí)行,相關(guān)的技術(shù)特征可以參考前述數(shù)據(jù)讀取器108在各實(shí)施例中的相關(guān)描述,此處不再贅述。并在S350中,將被請(qǐng)求的數(shù)據(jù)返回至數(shù)據(jù)請(qǐng)求方。本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的數(shù)據(jù)接口 104執(zhí)行,相關(guān)的技術(shù)特征可以參考前述數(shù)據(jù)接口 104在各實(shí)施例中的相關(guān)描述,此處不再贅述。應(yīng)當(dāng)注意的是,上述方法中的各步驟的順序是可以調(diào)整的,例如步驟S310可以獨(dú)立于其他步驟來(lái)執(zhí)行或者與其他步驟并行執(zhí)行。步驟S310還可以定期重復(fù)執(zhí)行,以便及時(shí)獲知各個(gè)數(shù)據(jù)服務(wù)器的最新信息。還應(yīng)當(dāng)注意的是,步驟S330還可能因?yàn)椴襟ES340從數(shù)據(jù)服務(wù)器讀取數(shù)據(jù)失敗而重新執(zhí)行,即重新選擇數(shù)據(jù)服務(wù)器,在步驟S330重新選擇后,步驟S340也會(huì)根據(jù)步驟S330重新選擇的結(jié)果再次執(zhí)行讀取數(shù)據(jù)的操作。具體而言,如果在步驟S340中從之前步驟S330選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求的數(shù)據(jù)失敗,比如該數(shù)據(jù)服務(wù)器發(fā)生故障了,那么隨后步驟 S330會(huì)重新進(jìn)行選擇,即根據(jù)多個(gè)數(shù)據(jù)服務(wù)器中的其他數(shù)據(jù)服務(wù)器各自的狀態(tài),繼續(xù)選擇其他數(shù)據(jù)服務(wù)器當(dāng)中的另一個(gè)數(shù)據(jù)服務(wù)器,然后,步驟S340也從步驟S330重新選擇的另一個(gè)數(shù)據(jù)服務(wù)器讀取被請(qǐng)求的數(shù)據(jù)。步驟S340重新讀取數(shù)據(jù)成功后,在S350中將成功讀取到的被請(qǐng)求數(shù)據(jù)返回至數(shù)據(jù)請(qǐng)求方。請(qǐng)參閱圖4,其為根據(jù)本發(fā)明另一個(gè)實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法的示意圖,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,其例如為上面參考圖I或者圖2描述的數(shù)據(jù)存儲(chǔ)系統(tǒng)。該數(shù)據(jù)管理方法始于步驟S410,在步驟S410中,可以獲知多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽。具體而言,在步驟S410中,可以向多個(gè)數(shù)據(jù)服務(wù)器分別發(fā)送查詢請(qǐng)求,比如每間隔一定時(shí)間發(fā)一次心跳請(qǐng)求,然后接收多個(gè)數(shù)據(jù)服務(wù)器各自返回的響應(yīng)數(shù)據(jù)。在響應(yīng)數(shù)據(jù)中通常包括對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,這樣就獲得了各個(gè)數(shù)據(jù)服務(wù)器的負(fù)載狀況信息和物理位置標(biāo)簽。物理位置標(biāo)簽,主要是用來(lái)標(biāo)記每個(gè)數(shù)據(jù)服務(wù)器所在的物理位置信息,比如哪個(gè)數(shù)據(jù)服務(wù)器處于哪個(gè)機(jī)房。因?yàn)槎鄠€(gè)數(shù)據(jù)服務(wù)器可能處于不同的機(jī)房中,所以通過(guò)物理位置標(biāo)簽就可以獲知每個(gè)數(shù)據(jù)服務(wù)器所處的具體機(jī)房信息。除了可以通過(guò)各數(shù)據(jù)服務(wù)器返回的響應(yīng)數(shù)據(jù)中獲得各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和物理位置標(biāo)簽之外,還可以基于向各個(gè)數(shù)據(jù)服務(wù)器發(fā)送查詢請(qǐng)求的發(fā)送時(shí)間和響應(yīng)數(shù)據(jù)的接收時(shí)間,獲得各個(gè)數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息。例如可以把每個(gè)數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲時(shí)間計(jì)算為相應(yīng)發(fā)送時(shí)間和接收時(shí)間之差。本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的監(jiān)控器102執(zhí)行,相關(guān)的技術(shù)實(shí)現(xiàn)可以參考前述監(jiān)控器102在各實(shí)施例中的相關(guān)描述,此處不再贅述。隨后,在S420中,接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求。數(shù)據(jù)請(qǐng)求方具體可以是常見的應(yīng)用服務(wù)器,也可以其他服務(wù)器,比如郵件服務(wù)器、文件服務(wù)器等,只要有數(shù)據(jù)查詢需求、并且數(shù)據(jù)服務(wù)器能夠提供被查詢的數(shù)據(jù)的服務(wù)器都可以作為本發(fā)明實(shí)施例中的數(shù)據(jù)請(qǐng)求方。而且,除了各種具有數(shù)據(jù)查詢請(qǐng)求的服務(wù)器之外,有數(shù)據(jù)查詢請(qǐng)求的各種計(jì)算機(jī)程序也可以作為本發(fā)明實(shí)施例的數(shù)據(jù)請(qǐng)求方??偠灾灰袛?shù)據(jù)查詢需求、并且數(shù)據(jù)服務(wù)器能夠提供被查詢的數(shù)據(jù)的設(shè)備或程序,都可以是本發(fā)明實(shí)施例中的數(shù)據(jù)請(qǐng)求方,本發(fā)明實(shí)施例對(duì)此并沒有限制。
本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的數(shù)據(jù)接口 104執(zhí)行,相關(guān)的技術(shù)實(shí)現(xiàn)可以參考前述監(jiān)控器102在各實(shí)施例中的相關(guān)描述,此處不再贅述。
在步驟S420接收到來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求之后,在步驟S430中,根據(jù)S410 所獲知的各個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和/或物理位置標(biāo)簽,在多個(gè)數(shù)據(jù)服務(wù)器中選擇一個(gè)來(lái)處理該數(shù)據(jù)請(qǐng)求。
應(yīng)該注意的是,在步驟S430中,除了可以根據(jù)步驟S410獲得的各個(gè)數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和/或物理位置標(biāo)簽進(jìn)行選擇之外,還可以根據(jù)各個(gè)數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息來(lái)選擇處理該數(shù)據(jù)請(qǐng)求的數(shù)據(jù)服務(wù)器。比如,綜合參考步驟S410所獲知的各個(gè)數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息和物理位置標(biāo)簽這三種信息,共同決定選擇哪個(gè)數(shù)據(jù)服務(wù)器來(lái)處理該數(shù)據(jù)請(qǐng)求更合適??偠灾?,本發(fā)明實(shí)施例所描述的選擇方式可以包括負(fù)載狀態(tài)、網(wǎng)絡(luò)延遲和物理位置標(biāo)簽中的一個(gè)或多個(gè)的組合。所有這些選擇方式都在本發(fā)明的保護(hù)范圍之內(nèi)。
本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的選擇器106執(zhí)行,相關(guān)的技術(shù)實(shí)現(xiàn)可以參考前述選擇器106在各實(shí)施例中的相關(guān)描述,此處不再贅述。
隨后,在S440中,從步驟S430所選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求的數(shù)據(jù)。本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的數(shù)據(jù)讀取器108執(zhí)行,相關(guān)的技術(shù)特征可以參考前述數(shù)據(jù)讀取器108在各實(shí)施例中的相關(guān)描述,此處不再贅述。并在S450中,將被請(qǐng)求數(shù)據(jù)返回至數(shù)據(jù)請(qǐng)求方。本步驟可以通過(guò)前述數(shù)據(jù)管理設(shè)備100中的數(shù)據(jù)接口 104執(zhí)行,相關(guān)的技術(shù)特征可以參考前述數(shù)據(jù)接口 104在各實(shí)施例中的相關(guān)描述,此處不再贅述。
還應(yīng)當(dāng)注意的是,上述方法中各步驟的順序是可以調(diào)整的,例如步驟S410可以獨(dú)立于其他步驟來(lái)執(zhí)行或者與其他步驟并行執(zhí)行。步驟S410還可以定期重復(fù)執(zhí)行,以便及時(shí)獲知各個(gè)數(shù)據(jù)服務(wù)器的最新信息。
還應(yīng)當(dāng)注意的是,步驟S430還可能因?yàn)椴襟ES440從數(shù)據(jù)服務(wù)器讀取數(shù)據(jù)失敗而重新執(zhí)行,即重新選擇數(shù)據(jù)服務(wù)器,在步驟S430重新選擇后,步驟S440也會(huì)根據(jù)步驟S430 重新選擇的結(jié)果再次執(zhí)行讀取數(shù)據(jù)的操作。具體而言,如果在步驟S440中從之前步驟S430 選擇的數(shù)據(jù)服務(wù)器讀取被請(qǐng)求的數(shù)據(jù)失敗,比如該數(shù)據(jù)服務(wù)器發(fā)生故障了,那么隨后步驟 S430會(huì)重新進(jìn)行選擇,即根據(jù)多個(gè)數(shù)據(jù)服務(wù)器中的其他數(shù)據(jù)服務(wù)器各自的狀態(tài),繼續(xù)選擇其他數(shù)據(jù)服務(wù)器中當(dāng)中的另一個(gè)數(shù)據(jù)服務(wù)器,進(jìn)而,步驟S440就會(huì)從步驟S430重新選擇的另一個(gè)數(shù)據(jù)服務(wù)器讀取被請(qǐng)求的數(shù)據(jù)。步驟S440重新讀取數(shù)據(jù)成功后,在S450中將成功讀取的被請(qǐng)求數(shù)據(jù)返回至數(shù)據(jù)請(qǐng)求方。
通過(guò)以上各實(shí)施例的描述可知,采用本發(fā)明實(shí)施例提供的技術(shù)方案,可以監(jiān)控到各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài),使得在選擇哪個(gè)數(shù)據(jù)服務(wù)器為請(qǐng)求方服務(wù)時(shí)可以參考各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)進(jìn)行選擇,相對(duì)現(xiàn)有的隨機(jī)選擇,避免了選擇的盲目性,從而提高了數(shù)據(jù)讀取的效率。還可以監(jiān)控到各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲狀況,使得在選擇哪個(gè)數(shù)據(jù)服務(wù)器為請(qǐng)求方服務(wù)時(shí)可以參考各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息進(jìn)行選擇,相對(duì)現(xiàn)有的隨機(jī)選擇方式, 同樣提高了數(shù)據(jù)讀取的效率。還可以監(jiān)控到各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,使得在選擇哪個(gè)數(shù)據(jù)服務(wù)器為請(qǐng)求方服務(wù)時(shí)可以參考各數(shù)據(jù)服務(wù)器的物理位置信息進(jìn)行選擇,比如可以優(yōu)選選擇本地機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器提供服務(wù),因?yàn)橥ǔ1镜貦C(jī)房的數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲較小,再比如,可以根據(jù)業(yè)務(wù)需要選擇指定機(jī)房的數(shù)據(jù)服務(wù)器提供服務(wù),這種方案相對(duì)現(xiàn)有的隨機(jī)選擇方式,同樣也提高了數(shù)據(jù)讀取的效率。進(jìn)一步,可以同時(shí)參考各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)和網(wǎng)絡(luò)延遲狀況選擇提供服務(wù)的數(shù)據(jù)服務(wù)器,采取這種方式,可以同時(shí)兼顧負(fù)載狀態(tài)和網(wǎng)絡(luò)延遲情況,從而更進(jìn)一步提高了數(shù)據(jù)庫(kù)的讀取性能?;蛘撸瑫r(shí)參考各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)和物理位置標(biāo)簽選擇提供服務(wù)的數(shù)據(jù)服務(wù)器,采取這種方式,可以同時(shí)兼顧負(fù)載狀態(tài)和物理位置,從而更進(jìn)一步提高了數(shù)據(jù)庫(kù)的讀取性能。。再或者,同時(shí)參考各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)、網(wǎng)絡(luò)延遲狀況以及物理位置標(biāo)簽選擇提供服務(wù)的數(shù)據(jù)服務(wù)器,采取這種方案,使得數(shù)據(jù)服務(wù)器的選擇更全面、準(zhǔn)確,更進(jìn)一步提高了數(shù)據(jù)庫(kù)的讀取性能。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系·統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或模塊或組件組合成一個(gè)模塊或模塊或組件,以及此外可以把它們分成多個(gè)子模塊或子模塊或子組件。除了這樣的特征和/或過(guò)程或者模塊中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過(guò)程或模塊進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。 本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP )來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中, 不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的模塊權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,該數(shù)據(jù)管理設(shè)備包括監(jiān)控器,被配置為至少獲知所述多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽;數(shù)據(jù)接口,被配置為接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求,并將與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)返回至所述數(shù)據(jù)請(qǐng)求方;選擇器,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,其中所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);數(shù)據(jù)讀取器,被配置為從所述選擇器所選擇的數(shù)據(jù)服務(wù)器讀取所述被請(qǐng)求數(shù)據(jù),并將所述被請(qǐng)求數(shù)據(jù)發(fā)送給所述數(shù)據(jù)接口。
2.根據(jù)權(quán)利要求I所述的數(shù)據(jù)管理設(shè)備,所述選擇器包括第三選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第三數(shù)據(jù)服務(wù)器集合;在所述第三數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
3.根據(jù)權(quán)利要求I所述的數(shù)據(jù)管理設(shè)備,所述選擇器包括第四選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第四數(shù)據(jù)服務(wù)器集合;在所述第四數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
4.根據(jù)權(quán)利要求I所述的數(shù)據(jù)管理設(shè)備,所述監(jiān)控器,被配置為還獲知所述多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息;所述選擇器,具體被配置為基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,其中所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)管理設(shè)備,所述選擇器包括第五選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第五數(shù)據(jù)服務(wù)器集合;在所述第五數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息以及預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第五數(shù)據(jù)服務(wù)器子集合;在所述第五數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息,選擇網(wǎng)絡(luò)延遲最低的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
6.根據(jù)權(quán)利要求4所述的數(shù)據(jù)管理設(shè)備,所述選擇器包括第六選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的第六數(shù)據(jù)服務(wù)器集合;在所述第六數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息以及預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足所述網(wǎng)絡(luò)延遲允許條件的第六數(shù)據(jù)服務(wù)器子集合;在所述第六數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息,選擇負(fù)載最低的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
7.根據(jù)權(quán)利要求4所述的數(shù)據(jù)管理設(shè)備,所述選擇器包括第七選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第七數(shù)據(jù)服務(wù)器集合;在所述第七數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足所述網(wǎng)絡(luò)延遲允許條件的第七數(shù)據(jù)服務(wù)器子集合;在所述第七數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
8.根據(jù)權(quán)利要求4所述的數(shù)據(jù)管理設(shè)備,所述選擇器包括第八選擇模塊,被配置為至少基于所述監(jiān)控器所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的網(wǎng)絡(luò)延遲信息和預(yù)設(shè)的網(wǎng)絡(luò)延遲允許條件,選擇滿足所述網(wǎng)絡(luò)延遲允許條件的第八數(shù)據(jù)服務(wù)器集合;在所述第八數(shù)據(jù)服務(wù)器集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和預(yù)設(shè)的負(fù)載狀態(tài)允許條件,選擇滿足所述負(fù)載狀態(tài)允許條件的第八數(shù)據(jù)服務(wù)器子集合;在所述第八數(shù)據(jù)服務(wù)器子集合中,根據(jù)其中各數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽,選擇處于特定機(jī)房?jī)?nèi)部的數(shù)據(jù)服務(wù)器來(lái)處理所述數(shù)據(jù)請(qǐng)求。
9.根據(jù)權(quán)利要求2或3或5至8中任一個(gè)所述的數(shù)據(jù)管理設(shè)備,所述特定機(jī)房具體是下述機(jī)房中的一種本地機(jī)房,或,基于業(yè)務(wù)需要指定某一物理位置的機(jī)房。
10.根據(jù)權(quán)利要求I至9中任一個(gè)所述的數(shù)據(jù)管理設(shè)備,所述監(jiān)控器包括檢測(cè)模塊,被配置為向所述多個(gè)數(shù)據(jù)服務(wù)器分別發(fā)送查詢請(qǐng)求,以及接收所述多個(gè)數(shù)據(jù)服務(wù)器各自返回的響應(yīng)數(shù)據(jù),所述響應(yīng)數(shù)據(jù)中至少包括對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的負(fù)載狀態(tài)信息和對(duì)應(yīng)的數(shù)據(jù)服務(wù)器的物理位置標(biāo)簽。
11.一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)管理方法包括至少獲知所述多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽;接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求;至少基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,其中所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);從所述選擇的數(shù)據(jù)服務(wù)器讀取所述被請(qǐng)求數(shù)據(jù);以及將所述被請(qǐng)求數(shù)據(jù)返回至所述數(shù)據(jù)請(qǐng)求方。
12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)管理方法,所述至少基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求包括基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息、網(wǎng)絡(luò)延遲信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求。
13.一種用于分布式數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)管理系統(tǒng),包括如權(quán)利要求I至10中任一項(xiàng)所述的數(shù)據(jù)管理設(shè)備,以及多個(gè)數(shù)據(jù)服務(wù)器,所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)有數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)。
14.一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理設(shè)備,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多Mongod服務(wù)器,該數(shù)據(jù)管理設(shè)備包括Mongos裝置,所述Mongos裝置具體包括監(jiān)控器,被配置為至少獲知分布在至少兩個(gè)機(jī)房的多個(gè)Mongod服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽;數(shù)據(jù)接口,被配置為接收來(lái)自應(yīng)用服務(wù)器的數(shù)據(jù)請(qǐng)求,并將與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù)返回至所述應(yīng)用數(shù)據(jù)服務(wù)器; 選擇器,被配置為至少基于所獲知的分布在至少兩個(gè)機(jī)房的多個(gè)Mongod服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)Mongod服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,所述多個(gè)Mongod服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù) 據(jù); 數(shù)據(jù)讀取器,被配置為從所述選擇器選擇的Mongod服務(wù)器讀取所述被請(qǐng)求數(shù)據(jù),并將所述被請(qǐng)求數(shù)據(jù)發(fā)送給所述數(shù)據(jù)接口。
全文摘要
本發(fā)明公開了一種用于分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)管理方法,該分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括多個(gè)數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)管理方法包括至少獲知所述多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽;接收來(lái)自數(shù)據(jù)請(qǐng)求方的數(shù)據(jù)請(qǐng)求;至少基于所獲知的多個(gè)數(shù)據(jù)服務(wù)器各自的負(fù)載狀態(tài)信息和物理位置標(biāo)簽,選擇所述多個(gè)數(shù)據(jù)服務(wù)器之一來(lái)處理所述數(shù)據(jù)請(qǐng)求,其中所述多個(gè)數(shù)據(jù)服務(wù)器均存儲(chǔ)所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的被請(qǐng)求數(shù)據(jù);從所述選擇的數(shù)據(jù)服務(wù)器讀取所述被請(qǐng)求數(shù)據(jù);以及將所述被請(qǐng)求數(shù)據(jù)返回至所述數(shù)據(jù)請(qǐng)求方。
文檔編號(hào)H04L29/08GK102932440SQ20121041735
公開日2013年2月13日 申請(qǐng)日期2012年10月26日 優(yōu)先權(quán)日2012年10月26日
發(fā)明者桂勇哲, 陳超, 代兵, 朱超, 王超 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司