[發(fā)明專(zhuān)利]數(shù)據(jù)拖取的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201410510419.1 | 申請(qǐng)日: | 2014-09-28 |
| 公開(kāi)(公告)號(hào): | CN104202435B | 公開(kāi)(公告)日: | 2017-10-31 |
| 發(fā)明(設(shè)計(jì))人: | 王鋒 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類(lèi)號(hào): | H04L29/08 | 分類(lèi)號(hào): | H04L29/08 |
| 代理公司: | 北京智匯東方知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙)11391 | 代理人: | 康正德,孫曉芳 |
| 地址: | 100088 北京市西城區(qū)新*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 數(shù)據(jù) 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是一種數(shù)據(jù)拖取的方法和裝置。
背景技術(shù)
Cassandra是依賴(lài)DHT(Distributed Hash Table,分布式哈希表)技術(shù)實(shí)現(xiàn)的一種典型的無(wú)中心節(jié)點(diǎn)的環(huán)形結(jié)構(gòu)的分布式存儲(chǔ)系統(tǒng)。Cassandra數(shù)據(jù)存儲(chǔ)空間可以抽象為一個(gè)環(huán)形結(jié)構(gòu),數(shù)據(jù)就是通過(guò)hash(哈希)分散在這個(gè)環(huán)形存儲(chǔ)空間上。每個(gè)節(jié)點(diǎn)負(fù)責(zé)管理這個(gè)環(huán)形存儲(chǔ)空間上的某一塊連續(xù)的Range(范圍),落在此Range空間上的數(shù)據(jù)就存儲(chǔ)在這個(gè)節(jié)點(diǎn)上。
Cassandra和其他分布式存儲(chǔ)系統(tǒng)類(lèi)似,都是通過(guò)多副本冗余存儲(chǔ)的機(jī)制來(lái)保證數(shù)據(jù)的可靠性。為了保證在一臺(tái)或幾臺(tái)機(jī)器故障宕機(jī)的情況下仍能繼續(xù)提供服務(wù),分布式存儲(chǔ)系統(tǒng)都會(huì)設(shè)法將多個(gè)數(shù)據(jù)副本通過(guò)一定的策略分散到多臺(tái)主機(jī)上,這就是一種副本分布策略。在Cassandra以及其他分布式存儲(chǔ)系統(tǒng)中往往采用的是三副本放置策略,即一份用戶(hù)數(shù)據(jù)在集群的不同主機(jī)上放置三份副本。以Cassandra為例,按照Cassandra集群中節(jié)點(diǎn)的個(gè)數(shù)將Cassandra的環(huán)形存儲(chǔ)空間上劃分等大小的Range,每個(gè)節(jié)點(diǎn)負(fù)責(zé)管理一個(gè)Range的空間。由于采用了三副本放置策略,該Range的數(shù)據(jù)還會(huì)以此節(jié)點(diǎn)為基礎(chǔ),按照環(huán)結(jié)構(gòu)順時(shí)針的方向順序選擇兩個(gè)節(jié)點(diǎn)來(lái)分別處理另外兩個(gè)副本。即每個(gè)Range的數(shù)據(jù)會(huì)存儲(chǔ)在環(huán)結(jié)構(gòu)中連續(xù)的三個(gè)節(jié)點(diǎn)之上。如圖1所示,假設(shè)一個(gè)Cassandra集群中有A、B、C、D四個(gè)節(jié)點(diǎn),因而將整個(gè)環(huán)形結(jié)構(gòu)平均劃分成了四個(gè)Range,即r0、r1、r2、r3。節(jié)點(diǎn)A、B、C、D分別管理著r0、r1、r2、r3。由于Cassandra集群采用了三副本放置策略,因此每個(gè)Range也會(huì)在主節(jié)點(diǎn)之后按照順時(shí)針的方向順序選擇兩個(gè)節(jié)點(diǎn)存放副本。例如r0范圍則會(huì)在其主節(jié)點(diǎn)A之后順時(shí)針選擇兩個(gè)節(jié)點(diǎn)B和C存放副本。如圖1所示中,data(數(shù)據(jù))通過(guò)hash存儲(chǔ)到r0,則按照三副本放置策略,data還會(huì)選擇節(jié)點(diǎn)B和C存放副本。同理,r1、r2、r3范圍也是如此。
由上述可知,相關(guān)技術(shù)中,Cassandra集群中Range的個(gè)數(shù)由集群節(jié)點(diǎn)的個(gè)數(shù)來(lái)決定,有多少個(gè)節(jié)點(diǎn)就會(huì)劃分為多少個(gè)Range。一個(gè)Range的數(shù)據(jù)及其副本會(huì)在環(huán)形結(jié)構(gòu)中按照順時(shí)針?lè)较蜻x擇三個(gè)連續(xù)的節(jié)點(diǎn)進(jìn)行存儲(chǔ)。這種分布策略比較簡(jiǎn)單,數(shù)據(jù)存儲(chǔ)時(shí)分布也比較均勻,用戶(hù)正常隨機(jī)訪問(wèn)的情況下,各節(jié)點(diǎn)負(fù)載也比較均衡。然而,隨著存儲(chǔ)數(shù)據(jù)量的需求增大,Cassandra集群剩余容量不足時(shí),則需要向環(huán)形結(jié)構(gòu)中增加一些新節(jié)點(diǎn)進(jìn)行擴(kuò)容。或者,當(dāng)現(xiàn)有的環(huán)形結(jié)構(gòu)中某個(gè)數(shù)據(jù)節(jié)點(diǎn)因故障無(wú)法恢復(fù)時(shí),則需要使用一個(gè)新節(jié)點(diǎn)頂替故障節(jié)點(diǎn)。無(wú)論是增加新節(jié)點(diǎn)進(jìn)行擴(kuò)容,或是增加新節(jié)點(diǎn)頂替故障節(jié)點(diǎn),都需要從環(huán)形結(jié)構(gòu)上的其他節(jié)點(diǎn)拖取該新節(jié)點(diǎn)未來(lái)負(fù)責(zé)管理的數(shù)據(jù),即該新節(jié)點(diǎn)未來(lái)負(fù)責(zé)管理的某一塊連續(xù)的Range的數(shù)據(jù),從而對(duì)外提供數(shù)據(jù)訪問(wèn)服務(wù),這種拖取數(shù)據(jù)的過(guò)程也稱(chēng)為Streaming(流)過(guò)程。而由于每個(gè)Range集中在三個(gè)連續(xù)的節(jié)點(diǎn)上存儲(chǔ)的原因,因而在拖取某個(gè)Range時(shí),只能從這三個(gè)連續(xù)的節(jié)點(diǎn)中選擇一個(gè)節(jié)點(diǎn)進(jìn)行拖取,從而導(dǎo)致該節(jié)點(diǎn)負(fù)載過(guò)高,網(wǎng)卡帶寬、CPU(Central Processing Unit,中央處理器)資源開(kāi)銷(xiāo)過(guò)大,進(jìn)而影響到整個(gè)線上數(shù)據(jù)訪問(wèn)的穩(wěn)定性。以新節(jié)點(diǎn)頂替故障節(jié)點(diǎn)為例,如圖2所示,集群總節(jié)點(diǎn)B主機(jī)故障無(wú)法啟動(dòng),一臺(tái)新節(jié)點(diǎn)X去頂替節(jié)點(diǎn)B。節(jié)點(diǎn)B根據(jù)現(xiàn)有的副本分布策略(即三副本放置策略),它管理的Range范圍有r7、r0、r1。因此在新節(jié)點(diǎn)X頂替節(jié)點(diǎn)B并提供數(shù)據(jù)服務(wù)前,就需要從其他原始節(jié)點(diǎn)上拖取r7、r0、r1范圍所對(duì)應(yīng)的副本數(shù)據(jù)。新節(jié)點(diǎn)X可以發(fā)現(xiàn),r7的數(shù)據(jù)副本分布在節(jié)點(diǎn)H、A、B上,r0的數(shù)據(jù)副本分布在A、B、C上,r1的數(shù)據(jù)副本分布在B、C、D上。因此最終它做出決策,從節(jié)點(diǎn)H、A、C上分別拖取r7、r0、r1范圍所對(duì)應(yīng)的數(shù)據(jù)。由圖2可見(jiàn),數(shù)據(jù)拖取只會(huì)導(dǎo)致H、A、C這三個(gè)節(jié)點(diǎn)的負(fù)載嚴(yán)重高于其他節(jié)點(diǎn),嚴(yán)重影響到這三個(gè)節(jié)點(diǎn)對(duì)外提供的數(shù)據(jù)訪問(wèn)服務(wù)。
發(fā)明內(nèi)容
鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的數(shù)據(jù)拖取的方法和相應(yīng)的裝置。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410510419.1/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(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ù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 光源裝置、照明裝置、液晶裝置和電子裝置
- 預(yù)測(cè)裝置、編輯裝置、逆預(yù)測(cè)裝置、解碼裝置及運(yùn)算裝置
- 圖像形成裝置、定影裝置、遮光裝置以及保持裝置
- 打印裝置、讀取裝置、復(fù)合裝置以及打印裝置、讀取裝置、復(fù)合裝置的控制方法
- 電子裝置、光盤(pán)裝置、顯示裝置和攝像裝置
- 光源裝置、照明裝置、曝光裝置和裝置制造方法
- 用戶(hù)裝置、裝置對(duì)裝置用戶(hù)裝置、后端裝置及其定位方法
- 遙控裝置、通信裝置、可變裝置及照明裝置
- 透鏡裝置、攝像裝置、處理裝置和相機(jī)裝置
- 抖動(dòng)校正裝置、驅(qū)動(dòng)裝置、成像裝置、和電子裝置





