摘要:近年來,隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,無論是互聯(lián)網(wǎng)企業(yè)還是傳統(tǒng)的金融機(jī)構(gòu),用戶量和業(yè)務(wù)處理數(shù)據(jù)量都在快速地增長(zhǎng).傳統(tǒng)的通過增加服務(wù)器并采用基于分庫(kù)分表的方法來解決擴(kuò)展性問題,需要大量的人工維護(hù)成本和硬件開銷.為降低開銷和分庫(kù)分表帶來的各種問題,業(yè)界通常用新型數(shù)據(jù)庫(kù)系統(tǒng)替換原有的系統(tǒng),其中,基于日志結(jié)構(gòu)合并樹存儲(chǔ)的數(shù)據(jù)庫(kù)系統(tǒng)(如OceanBase)被廣泛采用,這類系統(tǒng)磁盤上存儲(chǔ)數(shù)據(jù)塊呈現(xiàn)全局有序的特征.在從傳統(tǒng)數(shù)據(jù)庫(kù)切換到新型數(shù)據(jù)庫(kù)過程中,需要將大量數(shù)據(jù)加載到新數(shù)據(jù)庫(kù)系統(tǒng)中,長(zhǎng)時(shí)間加載的過程中可能出現(xiàn)數(shù)據(jù)庫(kù)節(jié)點(diǎn)宕機(jī).為了減少總加載時(shí)間和故障恢復(fù)時(shí)間,提出了一種負(fù)載均衡且支持高效容錯(cuò)的數(shù)據(jù)加載方法;為了支持負(fù)載均衡的數(shù)據(jù)加載,與預(yù)確定分區(qū)劃分?jǐn)?shù)據(jù)的方法不同,考慮到目標(biāo)系統(tǒng)默認(rèn)存儲(chǔ)塊大小,采用通過基于文件大小和目標(biāo)系統(tǒng)默認(rèn)存儲(chǔ)塊大小預(yù)計(jì)算分區(qū)數(shù)目,并利用分庫(kù)分表的數(shù)據(jù)導(dǎo)出往往已經(jīng)排序的特點(diǎn),采用選取部分采樣塊和等間隔選取樣本的方式確定分區(qū)之間的切分點(diǎn),避免了全局采樣和隨機(jī)或頭部樣本選取方式確定切分點(diǎn)帶來的高開銷;為了加快故障恢復(fù)速度,利用日志結(jié)構(gòu)合并樹存儲(chǔ)系統(tǒng)的多備份減少故障恢復(fù)時(shí)的數(shù)據(jù)量,提出了基本副本局部故障恢復(fù)方式,避免了完全重新加載的故障恢復(fù)方式.實(shí)驗(yàn)結(jié)果表明,相比采用預(yù)確定分區(qū)數(shù)目和全局選取采樣塊的隨機(jī)或頭部選取樣本方法,采用預(yù)計(jì)算分區(qū)數(shù)目和部分選取采樣塊的等間隔選取樣本確定切分點(diǎn)的方法,提高了數(shù)據(jù)加載的性能,并且驗(yàn)證了基于副本局部故障恢復(fù)方法相比完全重啟加載恢復(fù)方法的高效性.
注:因版權(quán)方要求,不能公開全文,如需全文,請(qǐng)咨詢雜志社