TBase數(shù)據(jù)節(jié)點(diǎn)在線擴(kuò)容原理解析,svm數(shù)據(jù)分析數(shù)據(jù)庫數(shù)據(jù)節(jié)點(diǎn)在線擴(kuò)展原理分析對于無共享架構(gòu)的分布式數(shù)據(jù)庫,如何將數(shù)據(jù)均勻分布到所有節(jié)點(diǎn),并在線擴(kuò)展以獲得更大的存儲(chǔ)容量和更高的并發(fā)訪問,成為所有分布式數(shù)據(jù)庫系統(tǒng)面臨的一大挑戰(zhàn)。今天我就簡單分享一下騰訊云數(shù)據(jù)庫TBase的數(shù)據(jù)節(jié)點(diǎn)在線擴(kuò)展方案。為了滿足業(yè)務(wù)的快速增長,系......
對于無共享架構(gòu)的分布式數(shù)據(jù)庫,如何將數(shù)據(jù)均勻分布到所有節(jié)點(diǎn),并在線擴(kuò)展以獲得更大的存儲(chǔ)容量和更高的并發(fā)訪問,成為所有分布式數(shù)據(jù)庫系統(tǒng)面臨的一大挑戰(zhàn)。今天我就簡單分享一下騰訊云數(shù)據(jù)庫TBase的數(shù)據(jù)節(jié)點(diǎn)在線擴(kuò)展方案。
為了滿足業(yè)務(wù)的快速增長,系統(tǒng)不可避免地需要擴(kuò)展。傳統(tǒng)的分布式數(shù)據(jù)庫采用hash(row)%nofdn,也就是說先計(jì)算分布表的hash值,然后節(jié)點(diǎn)數(shù)以這個(gè)值為模來決定行存儲(chǔ)在哪個(gè)節(jié)點(diǎn)。這里有一個(gè)致命的問題。擴(kuò)容后節(jié)點(diǎn)數(shù)量會(huì)增加,數(shù)據(jù)分布的計(jì)算邏輯會(huì)導(dǎo)致現(xiàn)有數(shù)據(jù)無法訪問。要解決這個(gè)問題,傳統(tǒng)的分布式數(shù)據(jù)庫必須停止業(yè)務(wù),導(dǎo)出所有數(shù)據(jù),擴(kuò)展后再導(dǎo)入。當(dāng)數(shù)據(jù)量很大的時(shí)候,這個(gè)過程可能會(huì)持續(xù)幾天,這對于一個(gè)7*24小時(shí)的交易系統(tǒng)來說,顯然是無法接受的。為了解決這個(gè)問題,TBase引入了一種新的表拆分方案:分片表。
TBase的數(shù)據(jù)分布如下:
1.引入了一個(gè)中間的shard map,shard map存儲(chǔ)了每個(gè)shard id[通過hash(key)計(jì)算,表示分布式鍵值]和DN之間的映射關(guān)系。
2.分布式表中的每條記錄都通過hash(key)%#shardmap來確定記錄存儲(chǔ)在哪個(gè)數(shù)據(jù)節(jié)點(diǎn)中。
3.每個(gè)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)分配給本節(jié)點(diǎn)的shardid信息,然后進(jìn)行可見性判斷。
如下圖所示,當(dāng)hash(key)=1時(shí),這一行數(shù)據(jù)將存儲(chǔ)在DN001數(shù)據(jù)節(jié)點(diǎn)中;當(dāng)hash(key)=2時(shí),這一行數(shù)據(jù)將存儲(chǔ)在DN002數(shù)據(jù)節(jié)點(diǎn)中,以此類推。
這樣有什么好處例如,當(dāng)我們向defaultgroup添加新節(jié)點(diǎn)時(shí),我們只需要將shardmap中的一些id映射到新添加的節(jié)點(diǎn),并遷移相應(yīng)的數(shù)據(jù)。
如下圖所示,在defaultgroup中添加一個(gè)新的數(shù)據(jù)節(jié)點(diǎn)DN003,只需要將DN001中shardid=1,DN002中shardid=4的數(shù)據(jù)遷移到DN003,就可以重新分配數(shù)據(jù),平衡節(jié)點(diǎn)間的數(shù)據(jù)。
t基本在線擴(kuò)展流程:
1.選擇shardid以遷移到新添加的數(shù)據(jù)節(jié)點(diǎn)。
2.通過shardid找到要遷移的數(shù)據(jù),以存量+增量的方式將數(shù)據(jù)遷移到新的數(shù)據(jù)節(jié)點(diǎn)。
3.當(dāng)新節(jié)點(diǎn)中的數(shù)據(jù)與數(shù)據(jù)源中的數(shù)據(jù)一致時(shí),切換協(xié)調(diào)節(jié)點(diǎn)(CN)中的shardmap信息,將shardmap = 3和shardmap = 4映射到dn 003(shardmap切換時(shí),數(shù)據(jù)庫集群處于只讀狀態(tài),此操作將在秒內(nèi)完成)。
4.數(shù)據(jù)清理,釋放空間。如上圖所示,清除DN001中shardid=3和DN002中shardid=4的數(shù)據(jù)。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部