李甜甜 王智 宋杰
摘要:認(rèn)為在大數(shù)據(jù)時(shí)代,數(shù)據(jù)遷移已成為以數(shù)據(jù)為中心的挖掘分析操作的基礎(chǔ)環(huán)節(jié)。通過對(duì)大數(shù)據(jù)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)遷移進(jìn)行需求分析,首先提出了數(shù)據(jù)遷移模型,并分析了影響遷移性能的因素;然后基于上述模型,從作業(yè)層面提出一種負(fù)載均衡的數(shù)據(jù)遷移算法。該算法能夠規(guī)避數(shù)據(jù)訪問熱點(diǎn),提高數(shù)據(jù)遷移效率。
關(guān)鍵詞:大數(shù)據(jù);數(shù)據(jù)遷移;負(fù)載均衡
Abstract:In the big data era, data migration has become the basis for data centric mining analysis. In this paper, we analyze the requirements of data migration in big data storage systems and propose the corresponding migration model. We then analyze the factors affecting the migration performance. Then, using our proposed model, we design a load balanced migration algorithm from the aspect of job level, which can efficiently improve migration performance through avoiding data retrieving hotspots.
Key words:big data; data migration; load balance
隨著云計(jì)算、物聯(lián)網(wǎng)等的發(fā)展,各行業(yè)產(chǎn)生的數(shù)據(jù)爆炸性增長,人類已經(jīng)進(jìn)入大數(shù)據(jù)時(shí)代?;ヂ?lián)網(wǎng)數(shù)據(jù)中心(IDC)曾在2012年的報(bào)告中指出:全球數(shù)據(jù)量每兩年翻一番,至2020年將增至40 ZB[1]。大數(shù)據(jù)時(shí)代,能否從海量數(shù)據(jù)中快速獲取知識(shí)來指導(dǎo)業(yè)務(wù)發(fā)展很大程度上決定了企業(yè)的競爭力,如何將企業(yè)各業(yè)務(wù)沉淀的數(shù)據(jù)進(jìn)行全面匯總并快速返回分析結(jié)果是大數(shù)據(jù)分析亟待解決的問題。
海量數(shù)據(jù)分析往往依賴于分布式環(huán)境,然而由于業(yè)務(wù)數(shù)據(jù)類型各異,數(shù)據(jù)遷移匯總將是首要任務(wù)。能否高效、穩(wěn)定地將源數(shù)據(jù)遷移到目標(biāo)存儲(chǔ)系統(tǒng)很大程度上決定了數(shù)據(jù)的分析效率,因此一個(gè)高效的數(shù)據(jù)遷移方法亟待發(fā)現(xiàn)。現(xiàn)有遷移技術(shù)按照應(yīng)用對(duì)象不同大致可分為兩類:面向虛擬機(jī)和面向存儲(chǔ)。面向虛擬機(jī)[2-4]主要解決整個(gè)虛擬系統(tǒng)在不同物理環(huán)境之間的遷移問題,是整個(gè)邏輯系統(tǒng)或計(jì)算容器的遷移,它更多關(guān)注于實(shí)時(shí)(服務(wù)不間斷)和無縫(遷移之后切換對(duì)用戶透明)兩個(gè)特性,與文中關(guān)注的分布式存儲(chǔ)系統(tǒng)間的數(shù)據(jù)遷移不同。面向存儲(chǔ)主要解決數(shù)據(jù)在存儲(chǔ)系統(tǒng)之間或同一存儲(chǔ)系統(tǒng)的不同實(shí)例之間的遷移問題,系統(tǒng)之間的遷移重點(diǎn)考慮數(shù)據(jù)的存儲(chǔ)格式、傳輸路徑、網(wǎng)絡(luò)狀況等因素[5-8],實(shí)例之間的遷移重點(diǎn)考慮存儲(chǔ)系統(tǒng)的存儲(chǔ)形式、接口性能等一系列因素(如數(shù)據(jù)庫[9-10] 、VxVM[11]、獨(dú)立冗余磁盤陣列[12-13](RAID)、云數(shù)據(jù)庫[14-17])。
文中我們研究分布式系統(tǒng)間的數(shù)據(jù)遷移方法,屬于面向存儲(chǔ)的數(shù)據(jù)遷移,主要關(guān)注數(shù)據(jù)的遷移性能。雖然也有類似文獻(xiàn)同樣關(guān)注于遷移性能,但大部分文獻(xiàn)僅考慮了集群單方面的均衡,而忽略了集群間遷移作業(yè)的負(fù)載均衡性。文中我們首先結(jié)合現(xiàn)有需求給出數(shù)據(jù)遷移的抽象模型并分析影響遷移性能的因素;其次,基于上述模型從作業(yè)層面提出一種負(fù)載均衡的數(shù)據(jù)遷移算法;最后,通過大量實(shí)驗(yàn)?zāi)M分析了該算法的均衡效果。
1 數(shù)據(jù)遷移模型
我們將數(shù)據(jù)源構(gòu)成的集合記作DS={D1, D2,…, DM},其中M代表數(shù)據(jù)源的個(gè)數(shù),|Di|為數(shù)據(jù)源的規(guī)模;將遷移作業(yè)構(gòu)成的集合記作JS={J1, J2,…, JN},其中N代表遷移作業(yè)的個(gè)數(shù);將每個(gè)遷移作業(yè)需要訪問的數(shù)據(jù)源構(gòu)成的集合記作DSj={D1j, D2j,…, DMjj},其中Mj代表Jj需要訪問的數(shù)據(jù)源個(gè)數(shù),DSj?DS,遷移作業(yè)的規(guī)模|Jj|=∑|Dij|;將Jj從Di拉取數(shù)據(jù)的遷移任務(wù)記作P(Di, Jj),所用時(shí)間記為Tij。
遷移策略好壞最直觀的衡量方式是性能,而時(shí)間是性能的最好表征,我們首先給出遷移性能的評(píng)估函數(shù),見式(1)。其中,CJS是包含所有串行執(zhí)行的作業(yè)集合中執(zhí)行最慢的那些遷移作業(yè),CDSj是Jj中包含最后結(jié)束的P(Di, Jj)的、串行運(yùn)行的數(shù)據(jù)集集合,Tj表示Jj的運(yùn)行時(shí)間。
從性能評(píng)估函數(shù)中可以看出:影響遷移性能的因素有CJS、CDSj和Tij,而并發(fā)度和負(fù)載均衡又是影響這三者的因素。遷移并發(fā)度越高,|CJS|和|CDS|越小,同時(shí)遷移的數(shù)據(jù)量就越多,Tij越短;數(shù)據(jù)遷移的負(fù)載越均衡,任務(wù)相互等待的時(shí)間越短,從而降低遷移作業(yè)的運(yùn)行時(shí)間。
2 負(fù)載均衡策略
基于前面給出的數(shù)據(jù)遷移模型以及對(duì)性能影響因素的分析,我們設(shè)計(jì)了如圖1所示的數(shù)據(jù)遷移系統(tǒng),包括數(shù)據(jù)源層、作業(yè)調(diào)度層以及遷移目標(biāo)層。
數(shù)據(jù)源層將不同類型的數(shù)據(jù)源水平擴(kuò)展成分布式數(shù)據(jù)源;作業(yè)調(diào)度層使用MapReduce框架作為分布式程序的基礎(chǔ),使用YARM精確控制數(shù)據(jù)遷移使用的資源;遷移目標(biāo)層使用分布式文件存儲(chǔ)系統(tǒng)將目標(biāo)集群虛擬為一個(gè)整體存儲(chǔ)系統(tǒng)。
從上述架構(gòu)中可以看出,提高遷移效率可從兩方面著手:在數(shù)據(jù)源層和遷移目標(biāo)層內(nèi)部進(jìn)行數(shù)據(jù)移動(dòng)以充分利用閑置資源,從數(shù)據(jù)角度避免訪問熱點(diǎn);在作業(yè)調(diào)度層設(shè)計(jì)實(shí)現(xiàn)負(fù)載均衡的遷移策略,從作業(yè)角度避免對(duì)同一塊數(shù)據(jù)的熱點(diǎn)訪問。對(duì)于前者,一種稱作間接遷移[18]的技術(shù)可用來實(shí)現(xiàn)集群內(nèi)部的負(fù)載均衡,這種技術(shù)已被證明在閑置資源較多的環(huán)境中能夠有效提高性能。此外,數(shù)據(jù)源層和遷移目標(biāo)層的優(yōu)化還可通過Sharding技術(shù)[19-20]直接保證數(shù)據(jù)的均衡分布,為高效率的數(shù)據(jù)遷移提供保證。因此,文章中我們著重研究第2種方法,通過合理調(diào)度作業(yè)盡可能錯(cuò)開訪問同一數(shù)據(jù)源任務(wù)的執(zhí)行時(shí)間。
2.1 問題定義
基于第1節(jié)給出的遷移模型,本節(jié)對(duì)遷移任務(wù)層的負(fù)載均衡問題進(jìn)行形式化描述。
對(duì)給定的JS和DS,矩陣A=[aij]M×N描述Di和Jj的對(duì)應(yīng)關(guān)系,矩陣B=[bjk]N×C描述Jj和Pk的對(duì)應(yīng)關(guān)系,計(jì)算方法見式(2)和(3);定義Pk的熱度hk為Pk中作業(yè)運(yùn)行時(shí)需要訪問的所有Di中的熱度最大值,Di的熱度hik計(jì)算見式(4)。負(fù)載均衡的目標(biāo)為尋找JS上的一個(gè)劃分P_JS={Pk}并且使其滿足以下約束條件:[?k∈{1,2,…,C}, Jj∈Pk|Jj|≤Ω],且[1Chk]最小,其中Ω為目標(biāo)集群的容量。
然而通過進(jìn)一步分析我們發(fā)現(xiàn):保證P_JS的熱度總和最小并不能等價(jià)保證執(zhí)行時(shí)間最短。這是因?yàn)闊狳c(diǎn)訪問會(huì)帶來明顯的性能下降。執(zhí)行時(shí)間T與訪問并發(fā)數(shù)b之間具有以下關(guān)聯(lián)特征:T隨b的增大而增大;T增長的速度隨b的增大而增大。那么,必然存在一個(gè)臨界點(diǎn)b0,使得當(dāng)b>b0時(shí)并發(fā)執(zhí)行的總時(shí)間大于串行執(zhí)行b次的總時(shí)間,也即T>b×T0,其中T0為b=1時(shí)的執(zhí)行時(shí)間。根據(jù)本文研究對(duì)象的特點(diǎn),數(shù)據(jù)源的吞吐量是被嚴(yán)格限制的,又由于遷移作業(yè)的容器分配了足夠的資源,因此b0≤1,這一結(jié)論在實(shí)際業(yè)務(wù)環(huán)境中得到了驗(yàn)證。
因此,P_JS還需滿足以下條件:Pk包含的任意一個(gè)Jj涉及的Di的熱度為1。由此可得hk=1且P_JS的熱度總和[1Chk]=C。此外,鑒于遷移任務(wù)是高度并行的,且數(shù)據(jù)源又通過已有技術(shù)保證是均衡分布的,設(shè)單個(gè)遷移作業(yè)的執(zhí)行時(shí)間為T0,則遷移作業(yè)的執(zhí)行總時(shí)間T=C×T0,其中C=|P_JS|。至此,優(yōu)化目標(biāo)最終等價(jià)轉(zhuǎn)換為尋找JS的一個(gè)包含元素個(gè)數(shù)最小的劃分P_JS,該劃分滿足以下約束條件:
P_JS的最優(yōu)解獲取問題(記為Q0)可以歸約到一個(gè)經(jīng)典的NP完全(NPC)問題(均分問題),也即該問題至少是一個(gè)NP-hard問題,無法在可接受的時(shí)間范圍內(nèi)求解,因此文章提出Astraea近似求解算法。
2.2 近似求解
Q0的最優(yōu)解需要滿足式(5)中的3個(gè)條件,近似求解算法Astraea則滿足了前2個(gè)條件,放寬了條件③的約束。為了量化解的近似性,文章基于數(shù)據(jù)源的訪問熱度與運(yùn)行時(shí)間之間的關(guān)聯(lián)關(guān)系給出一個(gè)近似評(píng)價(jià)函數(shù)Approxi(P_JS),見式(6)。
其中,hik為Pk中作業(yè)涉及到的Di的訪問熱度,hk為Pk的熱度。這里,之所以選擇(e-1)作為時(shí)間隨熱度的增速是因?yàn)樗染€性增長快(與事實(shí)相符)又不至于過快而影響到解的準(zhǔn)確性。
通過對(duì)問題Q0的解空間進(jìn)行分析,發(fā)現(xiàn)該問題并不適合采用絕大多數(shù)傳統(tǒng)的啟發(fā)式優(yōu)化算法求解,因此我們提出了Astraea近似求解算法,它運(yùn)用了貪婪算法的思想,利用每一步Set Packing結(jié)果的評(píng)價(jià)值對(duì)結(jié)果集進(jìn)行過濾,并使用一個(gè)樹形結(jié)構(gòu)對(duì)每一次Set Packing的結(jié)果進(jìn)行記錄,不斷迭代直至算法結(jié)束,再從樹中取出最優(yōu)結(jié)果。
Astraea將Q0看成C次Set Packing問題,每次求得矩陣B的一列。實(shí)際運(yùn)行環(huán)境中,大部分情況下|DS|比較大,但|JS|比較小,因此我們采用簡單的蠻力算法解決Set Packing問題。
運(yùn)行過程中,Astraea構(gòu)造一個(gè)B的解空間搜索樹,并對(duì)樹中每個(gè)節(jié)點(diǎn)進(jìn)行搜索。節(jié)點(diǎn)可以找到其父節(jié)點(diǎn)和子節(jié)點(diǎn)集合,通過序列號(hào)記錄其所在層級(jí)(Pk的下標(biāo)),保存第k次Set Packing得到的Pk(記作node.p,即node.k和node.p構(gòu)成了Pk),記錄其是否為最終節(jié)點(diǎn)及其評(píng)分。當(dāng)前節(jié)點(diǎn)到根節(jié)點(diǎn)的路徑上的所有p構(gòu)成了當(dāng)前解X。
Astraea的求解過程就是構(gòu)造“B的解空間搜索樹”的迭代過程,包含以下7步:
(1)對(duì)于任意葉子節(jié)點(diǎn),根據(jù)當(dāng)前節(jié)點(diǎn)到根節(jié)點(diǎn)上的所有p,構(gòu)造當(dāng)前調(diào)度計(jì)劃X;
(2)根據(jù)X和node.p判斷是否每個(gè)作業(yè)都被分配,若是則標(biāo)明節(jié)點(diǎn)結(jié)束;否則,進(jìn)入下一步;
(3)遍歷所有可能的Pk,并結(jié)合X判斷其是否滿足條件②,保留滿足條件的Pk,記為List_P。其中,Pk遍歷過程的復(fù)雜度已被充分降低,后文會(huì)詳細(xì)解釋,條件①也在這里滿足;
(4)按公式(7)計(jì)算Pk評(píng)分,Pk的熱度越低越好,包含的作業(yè)個(gè)數(shù)越多越好;
(5)采用加權(quán)貪婪策略,保留前[γ]×size(List_P)個(gè)Score最大的Pk,其中[γ]是過濾參數(shù);
(6)將剩余的Pk構(gòu)造成新節(jié)點(diǎn)添加到當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)中;
(7)返回第(1)步,對(duì)所有子節(jié)點(diǎn)進(jìn)行迭代。
迭代過程結(jié)束時(shí),Astraea得到一棵B的解空間搜索樹,其葉子節(jié)點(diǎn)全為結(jié)束狀態(tài)。這時(shí),任意葉子節(jié)點(diǎn)通往根節(jié)點(diǎn)的路徑上的Pk都可以構(gòu)造一個(gè)完整的調(diào)度計(jì)劃X。Astraea對(duì)所有X進(jìn)行評(píng)估,近似度最高的X就是所求解。
Astraea的輸入為A=[aij]M×N、可行解的過濾比例[γ]以及目標(biāo)集群能容納的任務(wù)數(shù)量[?];輸出為最優(yōu)的近似解X。第(3)步的Pk遍歷過程,是指在當(dāng)前調(diào)度計(jì)劃X的基礎(chǔ)上,遍歷下一個(gè)批次的作業(yè)集合Pk所有可能情況的過程。構(gòu)造List_P實(shí)際上就是構(gòu)造Pk所有可能的取值,并排除不滿足條件的取值。一方面,條件①要求已分配的作業(yè)不能再次分配,因此Pk可以填入1的位置組成的集合可以通過對(duì)當(dāng)前調(diào)度計(jì)劃X的分析得到;另一方面,Pk中1的總數(shù)就是本次調(diào)度的作業(yè)數(shù)量。由于資源限制,每次最多處理[?]個(gè)數(shù)據(jù)集,所以Astraea可以得到當(dāng)前調(diào)度計(jì)劃X下最少還需要運(yùn)行min個(gè)批次的作業(yè)。min個(gè)Pk中至少有一個(gè)包含的作業(yè)個(gè)數(shù)≤|NS_JS|/min,其中NS_JS為當(dāng)前調(diào)度計(jì)劃X下未被分配的作業(yè)集合。因?yàn)锽各個(gè)列的順序與最終運(yùn)行時(shí)間無關(guān),Astraea可以將當(dāng)前的作業(yè)批次包含的作業(yè)數(shù)量的上限設(shè)置為|NS_JS|/min。
3 實(shí)驗(yàn)驗(yàn)證
針對(duì)第2節(jié)提出的Astraea近似求解算法,本節(jié)設(shè)計(jì)大量實(shí)驗(yàn)進(jìn)行驗(yàn)證分析。
測試用例設(shè)計(jì)如表1所示,包含3個(gè)變量:作業(yè)個(gè)數(shù)|JS|、數(shù)據(jù)源個(gè)數(shù)|DS|以及算法中影響解的近似性的參數(shù)γ。其中,|JS|取值為3、4、…、 8;|DS|取值為10、 20、…、100;γ取值為0.2、0.4、0.6、0.8和1。|JS|、|DS|和γ均能夠影響Astraea所求解的近似性以及算法性能,我們通過控制它們的變化來分析算法的有效性。
3.1 3個(gè)因素對(duì)解的近似性的影響
本實(shí)驗(yàn)主要分析|JS|、|DS|和γ對(duì)Astraea所求解的近似性的影響。當(dāng)γ=1時(shí),需對(duì)整個(gè)解空間進(jìn)行遍歷,此時(shí)Astraea所求解即是最優(yōu)解。文中我們采用近似解與最優(yōu)解執(zhí)行時(shí)間之間的比值來衡量解的近似度,該比值越小越近似。此外,鑒于實(shí)驗(yàn)數(shù)量較多,僅選取具有代表性的幾組進(jìn)行展示。
圖2分別展示了5組γ設(shè)置下, |DS|和|JS|對(duì)Astraea所求解的近似性的影響。在圖2(a),分別固定|JS|的值為3、5和8,研究|DS|取值為20、60和100時(shí)對(duì)解的近似性的影響。從圖中可以看出:當(dāng)|JS|較小時(shí)(取值為3),無論|DS|取值多少,Astraea獲取的解都是最優(yōu)解(近似度為1);當(dāng)|JS|取值為5時(shí),解的近似程度隨著|DS|的增大而變小,但最多都在γ=0.4的時(shí)候取得最優(yōu)解;當(dāng)|JS|較大時(shí)(取值為8),解的近似程度也隨著|DS|的增大而變小,但最多都在γ=0.6的時(shí)候取得最優(yōu)解。在圖2(b),分別固定|DS|的值為20、60和100,研究|JS|取值為3、5和8時(shí)對(duì)解的近似性的影響。從圖中可以看出:當(dāng)|DS|較小時(shí)(取值為20),解的近似程度隨著|JS|的增大而變小,但最多都在γ=0.4的時(shí)候取得最優(yōu)解;當(dāng)|DS|取值為60和100時(shí),解的近似程度也隨著|JS|的增大而變小,但最多都在γ=0.6的時(shí)候取得最優(yōu)解。
綜上所述,Astraea算法獲取的解與最優(yōu)解之間的差距主要取決于|JS|、|DS|和γ3個(gè)因素,當(dāng)|JS|和|DS|較大時(shí),要獲取較優(yōu)的近似解就需要設(shè)置更大的γ。
3.2 3個(gè)因素對(duì)算法性能的影響
本實(shí)驗(yàn)主要分析|JS|、|DS|和γ對(duì)Astraea算法性能的影響。衡量性能最常用的指標(biāo)是時(shí)間,因此本節(jié)選取算法在不同實(shí)驗(yàn)設(shè)置下的執(zhí)行時(shí)間來衡量Astraea的性能。同樣,僅選取具有代表性的幾組進(jìn)行展示。
圖3分別展示了5組γ設(shè)置下,|DS|和|JS|對(duì)Astraea算法性能的影響,圖中的縱坐標(biāo)采取對(duì)數(shù)坐標(biāo)軸。在圖3(a)中,分別固定|JS|的值為3、5和8,研究|DS|取值為20、60和100時(shí)對(duì)Astraea算法性能的影響。從圖中可以看出:算法的執(zhí)行時(shí)間均隨|DS|以及γ的增加而增大,并且|JS|越大,這種增長效果越明顯。在圖3(b)中,分別固定|DS|的值為20、60和100,研究|JS|取值為3、5和8時(shí)對(duì)Astraea算法性能的影響。從圖中可以看出:算法的執(zhí)行時(shí)間均隨|JS|以及γ的增加而增大,并且|DS|越大,這種增長效果越明顯。此處,γ是影響解的近似性的重要因素,當(dāng)對(duì)Astraea算法求解的近似性越高時(shí),γ的值就需要設(shè)置越大,進(jìn)而執(zhí)行的時(shí)間就越長。
綜上所述,Astraea算法的性能主要取決于|JS|、|DS|和γ3個(gè)因素,|JS|和|DS|較大時(shí),獲取較優(yōu)的近似解就需要設(shè)置更大的γ值,需要更長的執(zhí)行時(shí)間。
4 結(jié)束語
大數(shù)據(jù)時(shí)代,高效地從數(shù)據(jù)中發(fā)現(xiàn)知識(shí)已經(jīng)成為企業(yè)重要的競爭力之一,而存儲(chǔ)系統(tǒng)間的數(shù)據(jù)遷移則是知識(shí)發(fā)現(xiàn)的一個(gè)基礎(chǔ)環(huán)節(jié)。我們首先給出數(shù)據(jù)遷移模型并對(duì)遷移性能影響因素進(jìn)行分析,接著基于遷移模型從遷移任務(wù)層面提出負(fù)載均衡的優(yōu)化方法,最后通過實(shí)驗(yàn)驗(yàn)證提出的優(yōu)化方法的有效性。遷移任務(wù)層的優(yōu)化方法主要通過調(diào)控遷移任務(wù)的執(zhí)行順序使得包含同一數(shù)據(jù)源的作業(yè)盡可能避免在同一時(shí)間執(zhí)行,盡可能避免遷移時(shí)的數(shù)據(jù)訪問熱點(diǎn),從而提高遷移任務(wù)的并行性,改善遷移效率。作業(yè)調(diào)度的最優(yōu)解獲取問題可以證明是一個(gè)NP-hard問題,因此文中提出Astraea近似的求解算法來獲取一個(gè)可接受范圍內(nèi)的問題解。
本中提出的負(fù)載均衡的數(shù)據(jù)遷移方法能夠應(yīng)用到很多系統(tǒng)中,例如淘寶商品搜索的索引數(shù)據(jù)存儲(chǔ)處理系統(tǒng),該系統(tǒng)的輸入數(shù)據(jù)往往來自于多個(gè)存儲(chǔ)系統(tǒng),不同存儲(chǔ)系統(tǒng)組成了一個(gè)擁有海量數(shù)據(jù)的數(shù)據(jù)源集群,需要該系統(tǒng)同步這些數(shù)據(jù)到Hadoop分布式文件系統(tǒng)(HDFS)、HBase等分布式存儲(chǔ)系統(tǒng)。數(shù)據(jù)同步過程中,該系統(tǒng)一方面要保證數(shù)據(jù)的同步性能,同時(shí)還要盡可能降低對(duì)數(shù)據(jù)源系統(tǒng)查詢性能的影響。文中提出的負(fù)載均衡的數(shù)據(jù)遷移方法能夠成功地避開數(shù)據(jù)源的熱點(diǎn)訪問問題,從而實(shí)現(xiàn)系統(tǒng)的上述目標(biāo)。
參考文獻(xiàn)
[1] GANTZ J, REINSEL D. The Digital Universe in 2020: Big Data, Bigger Digital Shadows, and Biggest Growth in the Far East [EB/OL].[2012-03-22]. www.emc.com/leadership/digital-universe/index.htm
[2] AHMAD R W, GANI A, HAMID S, et al. A Survey on Virtual Machine Migration and Server Consolidation Frameworks for Cloud Data Centers[J]. Journal of Network and Computer Applications, 2015, 52: 11-25
[3] DERBEKO P, NATANZON A, EYAL A, et al. System and Method for Live Migration of a Virtual Machine with Dedicated Cache: US Patent 8,930,947[P], 2015
[4] FORSMAN M, GLAD A, LUNDERG L, et al. Algorithms for Automated Live Migration of Virtual Machines [J]. Journal of Systems and Software, 2015, 101: 110-126
[5] LI C. Transforming Relational Database into HBase: A Case Sudy [C]// 2010 IEEE International Conference on Software Engineering and Service Sciences (ICSESS). USA: IEEE, 2010: 683-687
[6] LIU C, FU Z, YANG Z, et al. General Research on Database Migration from RDBMS to Hbase[C]// 2015 International Symposium on Computers & Informatics. French: Atlantis Press, 2015: 124-237
[7] VUKOTIC A, FOX D, Partner J, et al. Neo4j in Action [M]. USA: Manning Publications, 2014
[8] SHIRAZI M N, KUAN H C, DOLATABADI H. Design Patterns to Enable Data Portability between Clouds Databases[J]. Computational Science and Its Applications (ICCSA), 2012: 117-120
[9] PANT P, THAKUR S. Data Migration Across the Clouds [J]. International Journal of Soft Computing and Engineering (IJSCE), 2013, 3(2):14-21
[10] LONEY K. Oracle Database 10g: the Complete Reference [M]. USA: McGraw-Hill/Osborne, 2004
[11] MADELL T. Disk and File Management Tasks on HP-UX [M]. USA: Prentice-Hall, 1997
[12] ZHENG W, ZHANG G. FastScale: Accelerate RAID Scaling by Minimizing Data Migration [J]. FAST, 2011: 149-161
[13] KING A, CHIU D C. Efficient Fault-Tolerant Preservation of Data Integrity During Dynamic RAID Data Migration: US Patent 6,530,004[P]. 2003
[14] Chodorow K. MongoDB: the definitive guide [M], 2nd Edition. USA: OReilly Media, 2013
[15] CHANG F, DEAN J, GHEMAWAT S, et al. Bigtable: A Distributed Storage System for Structured Data [J]. ACM Transactions on Computer Systems (TOCS), 2008, 26(2): 4
[16] GEORGE L. HBase: the Definitive Guide [M]. USA: OReilly Media, 2011
[17] ANDERSON JC, LEHNARDT J, SLATER N. CouchDB: the Definitive Guide [M]. USA: OReilly Media, 2010
[18] ANDERSON E, HALL J, HARTLINE J, et al. An Experimental Study of Data Migration Algorithms [M]. British: Springer, 2001
[19] BAGUI S, NGUYEN L T. Database Sharding: To Provide Fault Tolerance and Scalability of Big Data on the Cloud [J]. International Journal of Cloud Application Computing, 2015, 5(2):36-52. http://dx.doi.org/10.4018/IJCAC.2015040103
[20] LIU Y, WANG Y, JIN Y. Research on the improvement of MongoDB Auto-Sharding in Cloud Environment[C]// 2012 7th International Conference on Computer Science & Education (ICCSE). USA: IEEE, 2012: 851-854