一種基于性能預(yù)估的客戶端緩存分配方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于性能預(yù)估的客戶端緩存分配方法,包括以下過程:首先是統(tǒng)計并行文件系統(tǒng)中不同數(shù)據(jù)節(jié)點的負載,于此同時收集并行文件系統(tǒng)中網(wǎng)絡(luò)速度,磁盤讀寫速度等信息,統(tǒng)計和收集到的信息將用以對不同系統(tǒng)客戶端緩存分配策略進行性能預(yù)估,根據(jù)性能預(yù)估結(jié)果,系統(tǒng)將會選擇能夠帶來最大性能的客戶端緩存分配策略,根據(jù)選擇的客戶端緩存分配策略,不同的寫請求被賦予不同的優(yōu)先級,客戶端緩存將被分配給優(yōu)先級較高的寫請求,而優(yōu)先級較低的寫請求將會直接被寫入磁盤中。本發(fā)明能夠解決現(xiàn)有并行文件系統(tǒng)客戶端分配策略存在的高優(yōu)先級和低效率的問題,最大化了有限的客戶端緩存能夠帶來的性能提升。
【專利說明】一種基于性能預(yù)估的客戶端緩存分配方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于分布式計算模型領(lǐng)域,更具體地,涉及一種基于性能預(yù)估的客戶端緩存分配方法和系統(tǒng)。
【背景技術(shù)】
[0002]在大數(shù)據(jù)的時代背景下,數(shù)據(jù)密集型計算面臨著新的機遇與挑戰(zhàn)。傳統(tǒng)的單機文件系統(tǒng)在大數(shù)據(jù)的需求面前顯得力不從心,而并行文件系統(tǒng)由于其高吞吐率,能夠滿足大數(shù)據(jù)帶來的高速讀寫需求。然而,在高并發(fā)的數(shù)據(jù)請求下,數(shù)據(jù)節(jié)點的負載會呈現(xiàn)不均衡狀態(tài),造成并行文件系統(tǒng)的性能急劇下降。因此,提高并行文件系統(tǒng)性能就成為了一個重要的研究課題。
[0003]在并行文件系統(tǒng)中,文件寫策略是提高性能的主要因素。傳統(tǒng)的分布式文件系統(tǒng)寫策略主要分為寫通過策略和寫回法策略。寫通過策略在返回寫操作前會直接更新后端數(shù)據(jù)節(jié)點的磁盤數(shù)據(jù)和前端的緩存數(shù)據(jù),該策略通過同步更新磁盤數(shù)據(jù)提供了最嚴格的數(shù)據(jù)一致性,卻降低了寫操作速度。寫回法緩存通過在前端緩存一部分臟數(shù)據(jù),降低寫操作時前端計算節(jié)點和后端存儲節(jié)點的網(wǎng)絡(luò)優(yōu)先級,被廣泛采用來提高文件系統(tǒng)吞吐率。但在性能提升的同時,寫回法策略卻占用了大量的緩存資源,同時引入了一致性問題。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種基于性能預(yù)估的客戶端緩存分配方法和系統(tǒng),其目的在于,解決現(xiàn)有方法中存在的寫操作速度慢、占用了大量的緩存資源從而導(dǎo)致客戶端緩存低效率的技術(shù)問題。
[0005]為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種基于性能預(yù)估的客戶端緩存分配方法,包括以下步驟:
[0006](I)周期性地獲取并行文件系統(tǒng)客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,并實時獲取不同數(shù)據(jù)節(jié)點上的負載情況,即不同數(shù)據(jù)節(jié)點上等待被服務(wù)的文件請求的總大?。?br>
[0007](2)根據(jù)步驟(I)得到的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度以及不同數(shù)據(jù)節(jié)點上的負載情況計算客戶端上不同進程的開銷;
[0008](3)根據(jù)步驟(2)獲得的不同進程的開銷為進程分配優(yōu)先級,并根據(jù)優(yōu)先級次序?qū)⒖蛻舳司彺娣峙浣o對應(yīng)的進程;
[0009](4)將沒有被分配到客戶端緩存的進程上的數(shù)據(jù)直接寫入數(shù)據(jù)節(jié)點;
[0010](5)將被分配到客戶端緩存的進程上的數(shù)據(jù)寫到客戶端緩存中;
[0011](6)被分配到客戶端緩存的進程進入計算階段,將被寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。
[0012]優(yōu)選地,步驟(2)是采用以下公式:
[0013]t = S/r S/d + p/d[0014]其中S表示客戶端的進程上待讀寫的數(shù)據(jù)量大小,F(xiàn)表示客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度J表示數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,P表示當前數(shù)據(jù)節(jié)點上的負載情況,t是客戶端上進程的開銷。
[0015]優(yōu)選地,步驟(3)具體為,開銷最大的進程將被分配最高的優(yōu)先級,同時將最優(yōu)先的獲得分配的緩存,…,以此類推,開銷最小的進程將被分配最低的優(yōu)先級,同時將最后獲得分配的緩存。
[0016]優(yōu)選地,步驟(6)中,當進程在進行計算時,利用線程機制將寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。
[0017]按照本發(fā)明的另一方面,提供了一種基于性能預(yù)估的客戶端緩存分配系統(tǒng),包括:
[0018]第一模塊,用于周期性地獲取并行文件系統(tǒng)客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,并實時獲取不同數(shù)據(jù)節(jié)點上的負載情況,即不同數(shù)據(jù)節(jié)點上等待被服務(wù)的文件請求的總大小;
[0019]第二模塊,用于根據(jù)第一模塊得到的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度以及不同數(shù)據(jù)節(jié)點上的負載情況計算客戶端上不同進程的開銷;
[0020]第三模塊,用于根據(jù)第二模塊獲得的不同進程的開銷為進程分配優(yōu)先級,并根據(jù)優(yōu)先級次序?qū)⒖蛻舳司彺娣峙浣o對應(yīng)的進程;
[0021]第四模塊,用于將沒有被分配到客戶端緩存的進程上的數(shù)據(jù)直接寫入數(shù)據(jù)節(jié)點;
[0022]第五模塊,用于將被分配到客戶端緩存的進程上的數(shù)據(jù)寫到客戶端緩存中;
[0023]第六模塊,用于被分配到客戶端緩存的進程進入計算階段,將被寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。
[0024]總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
[0025](I)寫操作速度快,占用了緩存資源低,從而提高客戶端緩存的效率:因為采用了步驟(3)至(5),并行文件系統(tǒng)中的客戶端緩存資源將會得到最優(yōu)化的分配,由于高優(yōu)先級的文件寫請求只占所有請求的小部分,所需要的緩存資源非常少,很符合客戶端緩存稀缺的特性,有效的提升了客戶端緩存的執(zhí)行效率;
[0026](2)使用方便:本發(fā)明結(jié)合現(xiàn)有開源并行文件系統(tǒng)平臺和科學(xué)計算并行庫,對原有系統(tǒng)的修改較少,且模塊劃分清晰,利于后期的開發(fā)和維護;
[0027](3)可擴展:本緩存很好地繼承了并行文件系統(tǒng)易于擴展的特性,當計算平臺需要對計算節(jié)點或者存儲節(jié)點進行擴展時,并不需要對我們的客戶端緩存系統(tǒng)進行太大調(diào)整,只需要按照步驟在新增節(jié)點安裝我們的緩存系統(tǒng)即可。
【專利附圖】
【附圖說明】
[0028]圖1是本發(fā)明基于性能預(yù)估的客戶端緩存分配方法的流程圖。
[0029]圖2是本發(fā)明基于性能預(yù)估的客戶端緩存分配系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】·
[0030]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0031]本發(fā)明的整體思路在于提供一個全新的文件系統(tǒng)寫策略,該策略首選結(jié)合數(shù)據(jù)節(jié)點負載情況,通過建模預(yù)測數(shù)據(jù)訪問請求的完成時間。基于數(shù)據(jù)訪問模型,該緩存策略有選擇的緩存那些優(yōu)先級較高的寫請求。當程序從數(shù)據(jù)讀寫階段進入到計算階段時,緩存中的臟數(shù)據(jù)以后臺讀寫的方式發(fā)送到數(shù)據(jù)節(jié)點。
[0032]如圖1所示,本發(fā)明基于性能預(yù)估的客戶端緩存分配方法包括以下步驟:
[0033](I)周期性地獲取并行文件系統(tǒng)客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,并實時獲取不同數(shù)據(jù)節(jié)點上的負載情況,即不同數(shù)據(jù)節(jié)點上等待被服務(wù)的文件請求的總大??;這些負載情況在每次文件寫請求被服務(wù)之前被收集到客戶端上并得到統(tǒng)計,統(tǒng)計的結(jié)果將會用來進行客戶端緩存分配策略的性能預(yù)估。
[0034]本步驟的優(yōu)點在于,周期性的獲取網(wǎng)絡(luò)通訊速度和磁盤的讀寫文件速度保證了在不影響程序正常運行的前提下,保證獲取信息的實時性。(2)根據(jù)步驟(1)得到的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度以及不同數(shù)據(jù)節(jié)點上的負載情況計算客戶端上不同進程的開銷;
[0035]具體而言,是采用以下公式:
[0036]t = S/r+S/d+p/d
[0037]其中S表示客戶端的進程上待讀寫的數(shù)據(jù)量大小,F(xiàn)表示客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度,j表示數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,盧表示當前數(shù)據(jù)節(jié)點上的負載情況,t是客戶端上進程的開銷。
[0038]本步驟的優(yōu)點在于,充分的考慮網(wǎng)絡(luò),磁盤,數(shù)據(jù)節(jié)點負載等因素可以極大的提升開銷預(yù)測的準確性。
[0039](3)根據(jù)步驟(2)獲得的不同進程的開銷為進程分配優(yōu)先級,并根據(jù)優(yōu)先級次序?qū)⒖蛻舳司彺娣峙浣o對應(yīng)的進程;具體而言,開銷最大的進程將被分配最高的優(yōu)先級,同時將最優(yōu)先的獲得分配的緩存,…,以此類推,開銷最小的進程將被分配最低的優(yōu)先級,同時將最后獲得分配的緩存;
[0040]本步驟的優(yōu)點在于,基于進程的開銷分配優(yōu)先級,可以有效地降低那些開銷較大的進程的運行時間。
[0041](4)將沒有被分配到客戶端緩存的進程上的數(shù)據(jù)直接寫入數(shù)據(jù)節(jié)點;
[0042]本步驟的優(yōu)點在于,開銷較低的進程不會占用客戶端緩存資源。
[0043](5)將被分配到客戶端緩存的進程上的數(shù)據(jù)寫到客戶端緩存中;
[0044](6)被分配到客戶端緩存的進程進入計算階段,將被寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。具體來說,當這些進程在進行計算時,利用線程機制將寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。
[0045]本步驟的優(yōu)點在于,能夠有效的保證進程中數(shù)據(jù)的讀寫不會影響到程序計算的運行時間。
[0046]如圖2所示,本發(fā)明基于性能預(yù)估的客戶端緩存分配系統(tǒng)包括:[0047]第一模塊,用于周期性地獲取并行文件系統(tǒng)客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,并實時獲取不同數(shù)據(jù)節(jié)點上的負載情況,即不同數(shù)據(jù)節(jié)點上等待被服務(wù)的文件請求的總大?。贿@些負載情況在每次文件寫請求被服務(wù)之前被收集到客戶端上并得到統(tǒng)計,統(tǒng)計的結(jié)果將會用來進行客戶端緩存分配策略的性能預(yù)估。
[0048]具體而言,是采用以下公式:
【權(quán)利要求】
1.一種基于性能預(yù)估的客戶端緩存分配方法,其特征在于,包括以下步驟: (1)周期性地獲取并行文件系統(tǒng)客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,并實時獲取不同數(shù)據(jù)節(jié)點上的負載情況,即不同數(shù)據(jù)節(jié)點上等待被服務(wù)的文件請求的總大??; (2)根據(jù)步驟(1)得到的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度以及不同數(shù)據(jù)節(jié)點上的負載情況計算客戶端上不同進程的開銷; (3)根據(jù)步驟(2)獲得的不同進程的開銷為進程分配優(yōu)先級,并根據(jù)優(yōu)先級次序?qū)⒖蛻舳司彺娣峙浣o對應(yīng)的進程; (4)將沒有被分配到客戶端緩存的進程上的數(shù)據(jù)直接寫入數(shù)據(jù)節(jié)點; (5)將被分配到客戶端緩存的進程上的數(shù)據(jù)寫到客戶端緩存中; (6)被分配到客戶端緩存的進程進入計算階段,將被寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。
2.根據(jù)權(quán)利要求1所述的客戶端緩存分配方法,其特征在于,步驟(2)是采用以下公式: t= Sn +Sld + pld 其中S表示客戶端的進程上待讀寫的數(shù)據(jù)量大小,F(xiàn)表示客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度,^表示數(shù)據(jù)節(jié) 點磁盤的讀寫文件速度,f表示當前數(shù)據(jù)節(jié)點上的負載情況,t是客戶端上進程的開銷。
3.根據(jù)權(quán)利要求1所述的客戶端緩存分配方法,其特征在于,步驟(3)具體為,開銷最大的進程將被分配最高的優(yōu)先級,同時將最優(yōu)先的獲得分配的緩存,…,以此類推,開銷最小的進程將被分配最低的優(yōu)先級,同時將最后獲得分配的緩存。
4.根據(jù)權(quán)利要求1所述的客戶端緩存分配方法,其特征在于,步驟(6)中,當進程在進行計算時,利用線程機制將寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。
5.一種基于性能預(yù)估的客戶端緩存分配系統(tǒng),其特征在于,包括: 第一模塊,用于周期性地獲取并行文件系統(tǒng)客戶端與數(shù)據(jù)節(jié)點之間的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度,并實時獲取不同數(shù)據(jù)節(jié)點上的負載情況,即不同數(shù)據(jù)節(jié)點上等待被服務(wù)的文件請求的總大??; 第二模塊,用于根據(jù)第一模塊得到的網(wǎng)絡(luò)通訊速度、數(shù)據(jù)節(jié)點磁盤的讀寫文件速度以及不同數(shù)據(jù)節(jié)點上的負載情況計算客戶端上不同進程的開銷; 第三模塊,用于根據(jù)第二模塊獲得的不同進程的開銷為進程分配優(yōu)先級,并根據(jù)優(yōu)先級次序?qū)⒖蛻舳司彺娣峙浣o對應(yīng)的進程; 第四模塊,用于將沒有被分配到客戶端緩存的進程上的數(shù)據(jù)直接寫入數(shù)據(jù)節(jié)點; 第五模塊,用于將被分配到客戶端緩存的進程上的數(shù)據(jù)寫到客戶端緩存中; 第六模塊,用于被分配到客戶端緩存的進程進入計算階段,將被寫入客戶端緩存中的數(shù)據(jù)并行地寫入數(shù)據(jù)節(jié)點。
【文檔編號】H04L29/08GK103685544SQ201310720078
【公開日】2014年3月26日 申請日期:2013年12月24日 優(yōu)先權(quán)日:2013年12月24日
【發(fā)明者】金海 , 石宣化, 黃亞寧, 吳松, 陸路 申請人:華中科技大學(xué)