本發明涉及一種加速云計算數據中心查詢的數據調度方法,屬于分布式計算和云計算技術領域。
背景技術:
21世紀初,互聯網發展迅速,計算機技術在各個行業廣泛使用。隨著互聯網的迅猛發展,信息量也快速增加,網站等業務系統所需要處理的業務量快速增長。為了快速處理大幅增加的信息量,使信息得到及時的反饋,并使用信息為自身服務,云計算應運而生。
云計算是由分布式計算、并行處理、網格計算發展來的,是一種新興的計算模型。云計算的計算能力強大,應用范圍廣泛,它不僅提供傳統意義的it資源和應用服務,而且將支持包括it、通信、電視、移動和物聯網等一切互聯網技術融合后的資源使用和業務應用。云計算發展的關鍵技術主要有統一交換構架、統一虛擬化和統一計算系統。
云計算模式具有許多優點:超大規模,虛擬化,通用型,廉價等。但是云計算也存在一些不足,現有的網絡帶寬、存儲數據的可靠性和安全性,是目前限制云計算技術進一步發展的關鍵因素。隨著云計算的發展,數據中心建立在各個位置,在云計算數據中心進行數據分析變成了一個重要工作。分析內容包括查詢用戶日志來選擇廣告投放策略,查詢網絡日志探測dos攻擊,查詢系統日志建立錯誤預測模型等等。為了使查詢能夠得到較快的響應,數據的放置方法便顯得尤為重要。
目前,在云計算數據中心對數據進行分析主要是通過把各個數據中心的數據傳輸到一個數據中心,所有的查詢任務也發送到這個數據中心進行處理,但由于各個線路帶寬的不同,數據傳輸的速度也不同,帶寬很小的線路會大大延長數據的傳輸速度,從而使數據查詢的反應時間很大。這種數據放置方法,同時還會造成大量帶寬的消耗,極大的增加了查詢的成本。除此之外,對于隱私的保護也使得在一個數據中心放置數據的方法不能長久發展。
技術實現要素:
本發明所要解決的技術問題是提供一種能夠有效降低數據存儲成本,提高數據傳輸效率的加速云計算數據中心查詢的數據調度方法。
本發明為了解決上述技術問題采用以下技術方案:本發明設計了一種加速云計算數據中心查詢的數據調度方法,用于針對瓶頸網點上的放置數據進行調度,其中,獲取云計算數據中心dk<o或uk<o的各個網點,作為瓶頸網點,k∈{1,…,k},k表示云計算數據中心中網點的數量,dk表示第k個網點的下載速度,uk表示第k個網點的上傳速度,o表示預設云計算數據中心傳輸數據最小帶寬值;針對各個瓶頸網點,分別執行如下調度方法:
步驟a.獲取云計算數據中心dk>o'且uk>o'的各個網點,作為各個待選網點,然后進入步驟b,其中,o'表示預設云計算數據中心待接收數據網點的最小帶寬值;
步驟b.分別獲得各個待選網點的數據存儲成本,并進一步獲得低于預設網點數據存儲成本閾值的各個數據存儲成本,針對該各個數據存儲成本分別所對應的待選網點,構建待傳輸網點集合s,然后進入步驟c;
步驟c.從待傳輸網點集合s中隨機取出一個網點,作為待傳輸網點,并從待傳輸網點集合s中刪除該待傳輸網點,并獲取該待傳輸網點的放置數據的大小,以及初始化m為預設移動數據量大小,然后進入步驟d;
步驟d.若m≤該待傳輸網點的放置數據的大小,則獲取或更新假設由瓶頸網點中最高優先級數據集中移出m大小的數據至該待傳輸網點后所對應的查詢時間t1,然后進入步驟e;若m>該待傳輸網點的放置數據的大小,則進入步驟f;
步驟e.待經過預設t0時長,獲得或更新基于步驟d中假設數據移動后所對應的查詢時間t2,判斷t2是否小于t1,是則采用(m+預設移動數據增量)針對m進行更新,并返回步驟d;否則將t1作為瓶頸網點向該待傳輸網點移動數據后所對應的最小查詢時間,并記錄最小查詢時間所對應的移動數據大小,然后進入步驟f;
步驟f.判斷待傳輸網點集合s中是否存在網點,是則返回步驟c;否則進入步驟g;
步驟g.針對各個最小查詢時間,獲得其中最小值所對應的待傳輸網點和移動數據大小,將該待傳輸網點作為目標網點,將該移動數據大小作為目標移動數據大小,由瓶頸網點中最高優先數據集中移出目標移動數據大小的數據至該目標網點。
作為本發明的一種優選技術方案,所述步驟b中,根據如下公式:
costq=nq*(cost'q+cost”q)+xq*cost”'q
分別獲得各個待選網點的數據存儲成本costq,其中,q∈{1,…,q},q表示待選網點的數量,costq表示各個待選網點中第q個待選網點數據存儲成本,cost'q表示各個待選網點中第q個待選網點存儲數據的單位成本,cost”q表示各個待選網點中第q個待選網點的單位傳輸成本,cost”'q表示各個待選網點中第q個待選網點的數據請求成本,nq表示各個待選網點中第q個待選網點所需的數據存儲量,xq表示各個待選網點中第q個待選網點的請求次數。
作為本發明的一種優選技術方案,所述步驟d中,所述瓶頸網點中最高優先級數據集,根據如下過程獲得:
首先分別針對瓶頸網點中的各個數據集,獲得數據集的查詢q,對數據集的查詢次數c,數據集所引起中間數據傳輸延遲的改善j,數據集移動所引起最大查詢時間的減少t',以及數據集移動所需的成本cost;然后分別針對瓶頸網點中的各個數據集,獲得各個數據集的價值,并根據數據集價值與數據集移動所需成本的比值,獲得各個數據集的得分,根據得分由高到低的順序,排列各個數據集優先級由高至低。
作為本發明的一種優選技術方案,所述步驟e中的預設移動數據增量為10mb。
本發明所述一種加速云計算數據中心查詢的數據調度方法采用以上技術方案與現有技術相比,具有以下技術效果:本發明所設計加速云計算數據中心查詢的數據調度方法,在靠近數據的數據中心存儲數據可以大大減小帶寬的消耗,減少數據傳輸對引起的查詢響應的延遲,不必建立一個存儲量極大,對計算性能要求很高的中心數據中心;不論哪個數據中心是瓶頸網點,帶寬很小,都可以確保數據查詢的反應時間較小;根據存儲成本選擇數據中心,可以在兼顧查詢反應時間的情況下使數據的存儲成本較低。
附圖說明
圖1是本發明所設計加速云計算數據中心查詢的數據調度方法的流程示意圖。
具體實施方式
下面結合說明書附圖對本發明的具體實施方式作進一步詳細的說明。
在云計算數據中心進行數據查詢時,往往是把所有數據傳輸到一個數據中心,查詢任務也是發送到這個數據中心進行處理,使用目前的數據中心間的分析框架進行分析,由于這些框架在有些帶寬相對較小的線路下不能很好的工作,查詢的反應時間較長;與此同時,把數據傳輸到一個數據中心進行處理,會消耗很大的帶寬。針對這些問題,本發明提出了一種基于云計算數據中心的數據放置方法。
本發明所設計一種加速云計算數據中心查詢的數據調度方法,在應用時可以降低對單個數據中心的存儲容量和計算能力的要求;在目前的數據分析框架下可以減少任務查詢的反應時間,減少對網絡帶寬的消耗,同時降低數據存儲的成本。其原理是把數據放到附近的數據中心進行存儲,在考慮數據中心存儲成本的情況下,根據網點帶寬大小和查詢任務的特點來改變數據放置的位置,最終選擇存儲價格合適的數據查詢時間最小的數據中心即網點。
如圖1所示,本發明設計了一種加速云計算數據中心查詢的數據調度方法,用于針對瓶頸網點上的放置數據進行調度,其中,獲取云計算數據中心dk<o或uk<o的各個網點,作為瓶頸網點,k∈{1,…,k},k表示云計算數據中心中網點的數量,dk表示第k個網點的下載速度,uk表示第k個網點的上傳速度,o表示預設云計算數據中心傳輸數據最小帶寬值;實際應用中,針對各個瓶頸網點,分別具體執行如下調度方法:
步驟a.獲取云計算數據中心dk>o'且uk>o'的各個網點,作為各個待選網點,然后進入步驟b,其中,o'表示預設云計算數據中心待接收數據網點的最小帶寬值。
步驟b.根據如下公式:
costq=nq*(cost'q+cost”q)+xq*cost”'q
分別獲得各個待選網點的數據存儲成本costq,其中,q∈{1,…,q},q表示待選網點的數量,costq表示各個待選網點中第q個待選網點數據存儲成本,cost'q表示各個待選網點中第q個待選網點存儲數據的單位成本,cost”q表示各個待選網點中第q個待選網點的單位傳輸成本,cost”'q表示各個待選網點中第q個待選網點的數據請求成本,nq表示各個待選網點中第q個待選網點所需的數據存儲量,xq表示各個待選網點中第q個待選網點的請求次數,并進一步獲得低于預設網點數據存儲成本閾值的各個數據存儲成本,針對該各個數據存儲成本分別所對應的待選網點,構建待傳輸網點集合s,然后進入步驟c。
步驟c.從待傳輸網點集合s中隨機取出一個網點,作為待傳輸網點,并從待傳輸網點集合s中刪除該待傳輸網點,并獲取該待傳輸網點的放置數據的大小,以及初始化m為預設移動數據量大小,然后進入步驟d。
步驟d.若m≤該待傳輸網點的放置數據的大小,則獲取或更新假設由瓶頸網點中最高優先級數據集中移出m大小的數據至該待傳輸網點后所對應的查詢時間t1,然后進入步驟e;若m>該待傳輸網點的放置數據的大小,則進入步驟f。
其中步驟d中,所述瓶頸網點中最高優先級數據集,根據如下過程獲得:
首先分別針對瓶頸網點中的各個數據集,獲得數據集的查詢q,對數據集的查詢次數c,數據集所引起中間數據傳輸延遲的改善j,數據集移動所引起最大查詢時間的減少t',以及數據集移動所需的成本cost;然后分別針對瓶頸網點中的各個數據集,獲得各個數據集的價值,并根據數據集價值與數據集移動所需成本的比值,獲得各個數據集的得分,根據得分由高到低的順序,排列各個數據集優先級由高至低。
步驟e.待經過預設t0時長,獲得或更新基于步驟d中假設數據移動后所對應的查詢時間t2,判斷t2是否小于t1,是則采用(m+預設移動數據增量)針對m進行更新,并返回步驟d;否則將t1作為瓶頸網點向該待傳輸網點移動數據后所對應的最小查詢時間,并記錄最小查詢時間所對應的移動數據大小,然后進入步驟f,實際應用中,針對預設移動數據增量,具體設計采用10mb作為移動數據增量。
步驟f.判斷待傳輸網點集合s中是否存在網點,是則返回步驟c;否則進入步驟g。
步驟g.針對各個最小查詢時間,獲得其中最小值所對應的待傳輸網點和移動數據大小,將該待傳輸網點作為目標網點,將該移動數據大小作為目標移動數據大小,由瓶頸網點中最高優先數據集中移出目標移動數據大小的數據至該目標網點。
上述技術方案所設計加速云計算數據中心查詢的數據調度方法,在靠近數據的數據中心存儲數據可以大大減小帶寬的消耗,減少數據傳輸對引起的查詢響應的延遲,不必建立一個存儲量極大,對計算性能要求很高的中心數據中心;不論哪個數據中心是瓶頸網點,帶寬很小,都可以確保數據查詢的反應時間較小;根據存儲成本選擇數據中心,可以在兼顧查詢反應時間的情況下使數據的存儲成本較低。
上面結合附圖對本發明的實施方式作了詳細說明,但是本發明并不限于上述實施方式,在本領域普通技術人員所具備的知識范圍內,還可以在不脫離本發明宗旨的前提下做出各種變化。