云計算為公共服務(wù)提供了新的基礎(chǔ)設(shè)施平臺,其強調(diào)在虛擬化環(huán)境中運行大規(guī)模計算的伸縮性和可用性。隨著云計算理論的發(fā)展,公有云計算和面向虛擬組織內(nèi)部的私有云計算成為兩種不同的應(yīng)用范疇,目前企業(yè)級應(yīng)用更關(guān)注的是私有云,其后臺云存儲設(shè)備中數(shù)據(jù)庫數(shù)據(jù)查詢反應(yīng)速率的高低,是體現(xiàn)企業(yè)私有云技術(shù)可擴(kuò)展性和高效性的重要指標(biāo)之一,早期的云計算側(cè)重于互聯(lián)網(wǎng)應(yīng)用,企業(yè)級應(yīng)用較少。隨著企業(yè)私有云概念的發(fā)展,傳統(tǒng)的企業(yè)級應(yīng)用從數(shù)據(jù)中心到中間件、編程模式、數(shù)據(jù)存儲方式都在向云計算平臺遷移,大量的企業(yè)級關(guān)系型數(shù)據(jù)庫遷移到云中將是未來一段時間內(nèi)云計算技術(shù)發(fā)展的趨勢,與分布式數(shù)據(jù)庫中遇到的問題相類似,關(guān)系數(shù)據(jù)庫的ACID特性將使得云中的數(shù)據(jù)庫部分操作性能降低,從企業(yè)級應(yīng)用的數(shù)據(jù)管理的特性而言,增、刪、改、查4個基本操作中,查詢的使用頻率更為顯著,在企業(yè)云存儲環(huán)境下對查詢命令的處理變得至關(guān)重要,如何在降低數(shù)據(jù)傳輸率的情況下同時滿足數(shù)據(jù)多表之間的依賴性成為必須考慮的關(guān)鍵因素,本文通過分析企業(yè)云服務(wù)的3層架構(gòu),在綜合考慮關(guān)鍵因素的情況下,對云存儲中心用戶查詢操作執(zhí)行情況提出一種支持實際應(yīng)用的分布方案。
1 相關(guān)研究背景
1.1企業(yè)私有云背景
企業(yè)私有云是在企業(yè)內(nèi)部構(gòu)建的,基于企業(yè)內(nèi)部動態(tài)業(yè)務(wù)變化的需要,對數(shù)據(jù)和服務(wù)設(shè)置安全有效控制,為企業(yè)內(nèi)部業(yè)務(wù)實施提供服務(wù)平臺,其基礎(chǔ)設(shè)施可設(shè)立在企業(yè)內(nèi)部或主機(jī)托管場所,它能夠為企業(yè)節(jié)省信息化開銷,具有靈活性和安全性的特點,是目前企業(yè)信息化的發(fā)展方向,由于企業(yè)私有云數(shù)據(jù)中心大部分的數(shù)據(jù)庫命令操作是數(shù)據(jù)查詢,本文將從數(shù)據(jù)查詢操作來定義數(shù)據(jù)分布策略。
1.2企業(yè)私有云存儲中心數(shù)據(jù)管理架構(gòu)
在文獻(xiàn)[6]的基礎(chǔ)上,本文提出了一種企業(yè)私有云存儲中心數(shù)據(jù)管理架構(gòu)。企業(yè)云計算存儲中心不同于分布式架構(gòu)下的數(shù)據(jù)中心,它提供公共平臺(PAAS)業(yè)務(wù)的數(shù)據(jù)查詢工作,調(diào)用虛擬化操作系統(tǒng)管理下的數(shù)據(jù)存儲層服務(wù)。在本文的研究中,將企業(yè)私有云數(shù)據(jù)管理架構(gòu)分為3層:1)企業(yè)云服務(wù)器層;2)數(shù)據(jù)節(jié)點層;3)查詢結(jié)果匯總器層。執(zhí)行時用戶通過SQL命令訪問企業(yè)私有云數(shù)據(jù)中心管理系統(tǒng),SQL命令在企業(yè)云服務(wù)器層被預(yù)處理成若干子查詢命令,然后根據(jù)數(shù)據(jù)分布策略將各子查詢命令發(fā)送到數(shù)據(jù)節(jié)點DN1,DN2,?,DNN,各節(jié)點交互執(zhí)行命令,最后由查詢結(jié)果匯總器返回查詢結(jié)果給用戶,具體流程如圖1所示:
圖1 企業(yè)私有云層次結(jié)構(gòu)
1.3數(shù)據(jù)分布策略
在分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫等的研究中已經(jīng)提出了多種數(shù)據(jù)分布策略,主要可以分為集中分布、水平分布、垂直分布以及混合分布等。集中分布是指數(shù)據(jù)庫表傘部內(nèi)容集中存儲在數(shù)據(jù)節(jié)點,典型的算法有Together;水平分布可視為一種選擇操作,將關(guān)系的元組劃分成不同的子集(通常為不相交的子集),分布到不同的節(jié)點,比較典型的水平分布有RoundRobin;垂直分布可視為一種投影操作,從屬性出發(fā),將關(guān)系的屬性集劃分為不同的子集并分布到不同的節(jié)點;混合操作介于水平和垂直分布之間。當(dāng)前實際應(yīng)用水平分布比較多,具有很好的適應(yīng)性,云計算的特性之一是針對海量數(shù)據(jù)的處理,企業(yè)級應(yīng)用中不斷產(chǎn)生大量的數(shù)據(jù),并且涉及到大量的數(shù)據(jù)更新,水平分布的處理上將產(chǎn)生一定的數(shù)據(jù)一致性問題及分布的迭代問題,基于此項考慮,本文的研究中采用混合分布作為出發(fā)點,并且假定不同的子集中的屬性可以冗余,即存儲在不同數(shù)據(jù)節(jié)點的數(shù)據(jù)存在重復(fù),在此假設(shè)下,對不同數(shù)據(jù)節(jié)點承載能力的考慮成為研究的重要關(guān)注點。
2 云存儲數(shù)據(jù)節(jié)點分布策略(CSND)
2.1策略需考慮因素
在研究文獻(xiàn)中常見的數(shù)據(jù)分布思想是自上而下,即從客戶的SQL命令開始分析,將SQL分成若干個子命令再分布到數(shù)據(jù)節(jié)點,執(zhí)行子查詢操作,在設(shè)計的過程中沒有考慮到數(shù)據(jù)節(jié)點本身的執(zhí)行能力.本文結(jié)合自上而下和自下而上兩種分布思想,從客戶輸入的SQL命令和數(shù)據(jù)節(jié)點的承載能力同時著手,綜合考慮數(shù)據(jù)查詢子命令的分布策略。該策略主要從以下3個方面考慮:
2.1.1 SQL查詢命令的執(zhí)行范圍
確定SQL查詢命令的執(zhí)行范圍對企業(yè)云服務(wù)器分配處理客戶指令有重要意義。若查詢是在單表中,則只需分配SQL子命令在含有這一個表的數(shù)據(jù)節(jié)點;如果是多表聯(lián)接操作,要先確定是否有數(shù)據(jù)節(jié)點同時存有這兩個表資源,如果沒有,則需要判斷操作是如何確定那兩個數(shù)據(jù)節(jié)點分配子命令,然后進(jìn)行分別查詢。
2.1.2最近時間周期的查詢次數(shù)
統(tǒng)計在規(guī)定的查詢周期內(nèi)被訪問的表的次數(shù),形成表查詢矩陣,確定單表被查詢次數(shù)和多表同時被查詢次數(shù)。與此同時,設(shè)定頻度閾值,對查詢次數(shù)超過閾值的表進(jìn)行標(biāo)記處理,在分配數(shù)據(jù)節(jié)點時使其具有優(yōu)先分配權(quán)。
2.1.3數(shù)據(jù)節(jié)點的命令處理能力
假設(shè)每個數(shù)據(jù)節(jié)點都具有數(shù)據(jù)存儲和執(zhí)行查詢命令的功能,其存儲和執(zhí)行能力的權(quán)值可以確定其功能的優(yōu)劣,在企業(yè)云服務(wù)器分配子查詢命令時根據(jù)數(shù)據(jù)節(jié)點情況分配。本文設(shè)定數(shù)據(jù)節(jié)點權(quán)值等級計算如式(1)所示,其中數(shù)據(jù)節(jié)點的處理能力是根據(jù)系統(tǒng)資源量確定。
1evel1為節(jié)點最優(yōu)狀態(tài),level2為節(jié)點正常狀態(tài),分布策略將根據(jù)節(jié)點能力分配子查詢;level3為警告狀態(tài),分布策略將拒絕分配子查詢給節(jié)點。實驗指標(biāo)采用木桶原理,例如:存儲能力符合一級指標(biāo),查詢能力符合二級指標(biāo),則此數(shù)據(jù)節(jié)點為二級指標(biāo)。
2.2策略基本思想
從2.1節(jié)可以看出,要改善系統(tǒng)響應(yīng)效率,提高系統(tǒng)查詢性能,需合理分配每個數(shù)據(jù)節(jié)點子查詢,將可能出現(xiàn)連接的表中的屬性進(jìn)行同節(jié)點存放,這樣在減少數(shù)據(jù)傳輸時間的同時提高整個查詢周期時間。本文假定企業(yè)云服務(wù)器將查詢命令進(jìn)行分解時,子命令中最多出現(xiàn)兩個數(shù)據(jù)表連接,其他復(fù)雜連接暫不考慮。算法所需參數(shù)設(shè)置如表1所示:
表1 系統(tǒng)參數(shù)列表
下面假設(shè)系統(tǒng)已有資源及系統(tǒng)參數(shù)設(shè)置如下:
1)企業(yè)私有云中數(shù)據(jù)節(jié)點DN1,DN2,?,DNN;
2)此處為數(shù)據(jù)節(jié)點的能力權(quán)值DNC。,DNC。,DNC3;
3)查詢命令統(tǒng)計周期
2.3算法整體流程
當(dāng)企業(yè)云服務(wù)器接收到用戶的數(shù)據(jù)查詢命令時,算法開始執(zhí)行。首先,生成數(shù)據(jù)庫表查詢矩陣(執(zhí)行算法1得到),生成分布策略(執(zhí)行算法2得到),生成分配策略(執(zhí)行算法3得到);然后,企業(yè)云服務(wù)器根據(jù)分配策略將數(shù)據(jù)查詢命令分配給數(shù)據(jù)節(jié)點,各數(shù)據(jù)節(jié)點執(zhí)行查詢子命令,并將結(jié)果傳給查詢結(jié)果匯總器;最后,查詢結(jié)果匯總器將結(jié)果信息傳給用戶。
2.4算法模型及實現(xiàn)
算法1.SQL查詢命令的執(zhí)行范圍統(tǒng)計和查詢次數(shù)統(tǒng)計。
本算法假設(shè)數(shù)據(jù)庫中每兩個表之間都可能發(fā)生連接操作,根據(jù)子查詢涉及的數(shù)據(jù)表在數(shù)據(jù)節(jié)點中被訪問的次數(shù),統(tǒng)計形成數(shù)據(jù)表查詢矩陣TaInqMatrixI-M][M+1],矩陣的行和列是數(shù)據(jù)表的別名。如果是相同的別名,代表此查詢?yōu)閱伪聿樵儯蝗绻遣煌膭e名,代表查詢?yōu)閮杀磉B接查詢.例如:TaInqMatrix[1][1]的值代表別名為1的表在某個T周期進(jìn)行的查詢次數(shù),TaInqMatrix EliE2]的值代表連接別名為1,2的表示在某個T周期的查詢次數(shù)。
在執(zhí)行過算法1后,形成了TaInqMatrix[M][M+1]矩陣,并在第M+1列統(tǒng)計了每個數(shù)據(jù)表的在某一個T周期的總查詢次數(shù)。接下來算法2將根據(jù)此矩陣的值是否超過規(guī)定閾值(根據(jù)系統(tǒng)運行情況設(shè)置),按查詢的連接表優(yōu)先原則把表別名組放入到分布隊列中。在算法執(zhí)行結(jié)束,將形成丁周期內(nèi)的查詢分布隊列。算法的執(zhí)行以tablePair.next()和singleTable.next()函數(shù)來分別獲取下一個連接操作的表別名組值和單表操作的數(shù)據(jù)表別名值,具體算法如下:
算法2.形成分布隊列。
算法3輸出為分布策略,制定本策略主要考慮因素如下:
1)數(shù)據(jù)節(jié)點當(dāng)前狀態(tài)
由于數(shù)據(jù)節(jié)點的當(dāng)前執(zhí)行能力會根據(jù)設(shè)定的指標(biāo)值,定期被標(biāo)記。所以在算法3執(zhí)行結(jié)束后要修改數(shù)據(jù)節(jié)點的當(dāng)前狀態(tài)。Dn.queryActual表示節(jié)點的當(dāng)前執(zhí)行能力函數(shù),在數(shù)據(jù)節(jié)點得到一次子查詢分配后,Dn.queryActual執(zhí)行加操作,這樣下一輪統(tǒng)計中,數(shù)據(jù)節(jié)點剩余執(zhí)行能力等級狀態(tài)會保持更新。
2)分布策略考慮數(shù)據(jù)節(jié)點當(dāng)前的存儲情況
如果當(dāng)前的子查詢命令涉及到了兩表連接的狀況,首先從數(shù)據(jù)分布隊列中取出數(shù)據(jù)表別名值,然后從當(dāng)前數(shù)據(jù)節(jié)點中遍歷查詢存儲有這兩個數(shù)據(jù)表的節(jié)點,通過函數(shù)getFromDN()形成list()隊列,再逐個判斷數(shù)據(jù)節(jié)點狀態(tài),分配子查詢。
3分析實驗
本文的數(shù)據(jù)分布策略考慮了用戶sQL查詢命令的分配和數(shù)據(jù)節(jié)點的處理能力兩個方面的因素,形成了云計算環(huán)境下云存儲中心數(shù)據(jù)分布策略。算法執(zhí)行結(jié)束企業(yè)云服務(wù)器可根據(jù)DNplan來進(jìn)行SQL子命令的分配,提高了分配的適應(yīng)性,策略的改進(jìn)體現(xiàn)在以下兩個方面:
1)改變了節(jié)點分配不考慮數(shù)據(jù)節(jié)點處理能力,只關(guān)注自上而下分解的分配思想;
2)根據(jù)節(jié)點的處理能力,分配多表到一個數(shù)據(jù)節(jié)點,考慮了數(shù)據(jù)庫連接查詢的情況。
由于構(gòu)建企業(yè)私有云項目還未滿足實驗需求,因此實驗設(shè)計使用一臺PC作為企業(yè)云服務(wù)器(2.0 GCPU,4GB內(nèi)存,Ubuntu操作系統(tǒng)),另外使用3臺PC作為數(shù)據(jù)存儲節(jié)點(一臺為2.0 G CPU,2 GB內(nèi)存,Ubuntu操作系統(tǒng),另外兩臺為1.0G CPU,1GB內(nèi)存,Ubuntu操作系統(tǒng)).關(guān)于3.1.3節(jié)提到的數(shù)據(jù)節(jié)點權(quán)值等級設(shè)置,本實驗擬設(shè)3級標(biāo)準(zhǔn)具體指標(biāo)如表2所示:
表2數(shù)據(jù)節(jié)點3級權(quán)值標(biāo)準(zhǔn)
實驗開始時,主服務(wù)器計算節(jié)點的指標(biāo)等級確定后,將sQL分解成子命令,按CSND策略進(jìn)行數(shù)據(jù)分布。待數(shù)據(jù)分布完成后,在主服務(wù)器上進(jìn)行查詢和匯總,比較數(shù)據(jù)分布策略在I不同數(shù)據(jù)量時數(shù)據(jù)庫的查詢響應(yīng)時間。實驗中對比了集中存儲(together)、輪轉(zhuǎn)劃分(round robin)和數(shù)據(jù)節(jié)點分布劃分(CSND)。結(jié)果如圖2、圖3所示。圖中橫軸為數(shù)據(jù)節(jié)點單表查詢的數(shù)據(jù)量,以100M為單位;縱軸為查詢響應(yīng)時間,以ms為單位。
從圖2中可以明顯看出,CSND分布策略對于數(shù)據(jù)節(jié)點單表查詢的反應(yīng)優(yōu)于Together和RoundRobin分布策略,根據(jù)數(shù)據(jù)量的增加,這種優(yōu)勢更為明顯。
圖2數(shù)據(jù)節(jié)點單表查詢時間統(tǒng)計圖
圖3數(shù)據(jù)節(jié)點多表查詢時間統(tǒng)計圖
根據(jù)數(shù)據(jù)節(jié)點的處理能力分,配的各數(shù)據(jù)節(jié)點單表查詢命令,無需在系統(tǒng)內(nèi)進(jìn)行數(shù)據(jù)傳輸,只需訪問單個數(shù)據(jù)節(jié)點,大大節(jié)省了系統(tǒng)響應(yīng)時間。實驗結(jié)論:改變后的策略具有良好的適應(yīng)性,能夠改善云計算系統(tǒng)的SQL用戶查詢環(huán)境。
單表查詢能力的快慢是企業(yè)云計算響應(yīng)時間的重要測量指標(biāo)。CSND分布策略為企業(yè)云計算數(shù)據(jù)處理減少了響應(yīng)時間。
從圖3可以看出,在進(jìn)行數(shù)據(jù)節(jié)點多表查詢時,仍是CSND分布策略占優(yōu)勢,多表查詢數(shù)據(jù)量的增加優(yōu)勢越來越明顯。實驗結(jié)論:對于多表查詢CSND分布策略,充分考慮數(shù)據(jù)節(jié)點數(shù)據(jù)表的分布情況,更大地減少了數(shù)據(jù)傳輸,數(shù)據(jù)表投影、選擇等操作的反應(yīng)時間。
4 相關(guān)研究現(xiàn)狀
關(guān)于數(shù)據(jù)分布策略國內(nèi)外有許多學(xué)者對此進(jìn)行了研究。早期的數(shù)據(jù)分布策略較多的成果是在分布式和網(wǎng)格環(huán)境下按哈希、范圍、輪轉(zhuǎn)進(jìn)行劃分的,后期進(jìn)行一定的改進(jìn)。其中,按分配的思想進(jìn)行分類,采用自上而下分配策略的有:左利云等人從數(shù)據(jù)庫連續(xù)讀取特性人手,解決了云計算中有部分系統(tǒng)資源閑置的問題;文獻(xiàn)[12]考慮了在多數(shù)據(jù)中心環(huán)境的多表連接查詢,如何提高數(shù)據(jù)庫系統(tǒng)性能的數(shù)據(jù)分布策略。
在云計算的數(shù)據(jù)分布策略上,文獻(xiàn)E12]提出了一種面向查詢數(shù)據(jù)庫數(shù)據(jù)分布策略,作者的研究思路對我們有一定的啟發(fā),但是采用的是自上而下的單一水平分布的基本策略,沒有考慮數(shù)據(jù)節(jié)點的承載能力;文獻(xiàn)研究的是社區(qū)云環(huán)境下的數(shù)據(jù)分布及搜索策略,社區(qū)云本質(zhì)上是企業(yè)私有云的一種表現(xiàn)形式,作者的研究點立足于SaaS層面的業(yè)務(wù)數(shù)據(jù)搜索,以云中服務(wù)節(jié)點的Web服務(wù)為數(shù)據(jù)對象,討論虛擬化數(shù)據(jù)搜索服務(wù)的實現(xiàn)方法;文獻(xiàn)[14]考慮了數(shù)據(jù)存儲節(jié)點的承載能力問題,對異構(gòu)集群中根據(jù)不同節(jié)點計算權(quán)值進(jìn)行了非均勻的數(shù)據(jù)劃分,并對傳統(tǒng)的Range水平分布進(jìn)行了改進(jìn)。
本文提出的是在垂直、非均勻分布的基礎(chǔ)上,針對關(guān)系數(shù)據(jù)庫SQL查詢操作設(shè)計的一種新的數(shù)據(jù)分布思想,考慮了自上而下和自下而上的結(jié)合式分配策略。通過分析數(shù)據(jù)節(jié)點的處理能力,為子查詢命令分配作參考。實驗證明,這種策略具有更高的適應(yīng)性,明顯提高查詢操作的響應(yīng)速率。
5 總結(jié)
本文從企業(yè)私有云的環(huán)境出發(fā),以垂直非均勻分布為基礎(chǔ),考慮了云計算節(jié)點承載能力權(quán)值,設(shè)計了一個綜合考慮自上而下和自下而上的面向云存儲應(yīng)用的數(shù)據(jù)分布策略,根據(jù)企業(yè)云存儲中心的實際應(yīng)用模式進(jìn)行數(shù)據(jù)分布,根據(jù)應(yīng)用頻率分布數(shù)據(jù)表到各個數(shù)據(jù)節(jié)點上,同時為了滿足數(shù)據(jù)節(jié)點的執(zhí)行能力,將根據(jù)訪問頻率搭配數(shù)據(jù)節(jié)點的能力。通過分析及試驗結(jié)果證明,本文的數(shù)據(jù)分布策略可以明顯減少數(shù)據(jù)庫查詢響應(yīng)時間,有效提高企業(yè)私有云訪問效率。
下一步工作的重點在于研究可能產(chǎn)生的數(shù)據(jù)傾斜解決辦法及訪問熱點的數(shù)據(jù)遷移算法等。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://m.kaqidy.com/
本文標(biāo)題:一種面向企業(yè)私有云的數(shù)據(jù)分布策略
本文網(wǎng)址:http://m.kaqidy.com/html/consultation/1083948162.html