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