欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種隨機訪問識別方法及系統(tǒng)與流程

文檔序號:11285644閱讀:337來源:國知局
一種隨機訪問識別方法及系統(tǒng)與流程

本發(fā)明屬于高性能計算中的輸入/輸出(input/output,i/o)子系統(tǒng)領(lǐng)域,更具體地,涉及一種隨機訪問識別方法及系統(tǒng)。



背景技術(shù):

高性能計算(highperformancecomputing,hpc)朝著百億億次級發(fā)展時,i/o性能仍然是一個主要的瓶頸,尤其是在數(shù)據(jù)密集型的科學(xué)應(yīng)用中體現(xiàn)得非常明顯。當(dāng)前大多數(shù)領(lǐng)域,如氣象領(lǐng)域、物理領(lǐng)域、地球科學(xué)領(lǐng)域等,這些領(lǐng)域的應(yīng)用主要包括數(shù)據(jù)模擬。這種以數(shù)據(jù)模擬為主的應(yīng)用通常會階段性地向并行文件系統(tǒng)輸出大量中間結(jié)果或者周期性地寫檢查點文件。這種應(yīng)用特征會產(chǎn)生大量的寫請求,并且這種周期性的寫請求會給文件系統(tǒng)帶來巨大壓力。

與此同時,以機械硬盤(harddiskdrive,hdd)為主的存儲介質(zhì),由于其大容量,低廉的價格以及在訪問大塊連續(xù)數(shù)據(jù)時較高的帶寬等特點,通常被高性能計算機系統(tǒng)作為主要的存儲設(shè)備。新型的存儲設(shè)備固態(tài)硬盤(solidstatedrives,ssd)由于其幾乎為0的訪問延遲以及對隨機訪問不敏感等特性,已經(jīng)被廣泛應(yīng)用在高性能計算環(huán)境當(dāng)中。但由于計算能力激增而導(dǎo)致的數(shù)據(jù)量爆發(fā)性增長,使用ssd作為主要存儲介質(zhì)依然代價高昂。并且由于ssd的寫入次數(shù)有限等缺點也使其無法作為穩(wěn)定的主要存儲介質(zhì),因此當(dāng)前的主流做法依然是使用ssd和hdd結(jié)合的混合存儲方案。

一方面,針對科學(xué)應(yīng)用的i/o瓶頸問題,尤其是寫性能瓶頸,一種被稱為突發(fā)緩沖(burstbuffer)的混合存儲方案被提出。burstbuffer使用ssd作為hdd的緩沖,來處理突發(fā)的寫請求,解決中間結(jié)果的快速寫出問題。在burstbuffer的設(shè)計中,數(shù)據(jù)首先被寫入到快速的設(shè)備,如ssd中,并在隨后的計算階段被刷新到慢速的設(shè)備,如hdd中。但是burstbuffer依然存在弊端:不甄別地緩沖所有中間數(shù)據(jù),沒有充分利用ssd和hdd的各自的優(yōu)勢,在高性能計算應(yīng)用規(guī)模增長,數(shù)據(jù)量激增的趨勢下,緩沖所有數(shù)據(jù)會導(dǎo)致出現(xiàn)ssd容量不足的情況或者為了能容納所有的中間數(shù)據(jù)使用大量的ssd而極大地增加系統(tǒng)建造成本。

另一方面,現(xiàn)有的高性能計算領(lǐng)域隨機請求識別方法都是在客戶端以進程為粒度進行隨機請求識別。這種以進程為粒度的識別方法存在的缺陷是只能從單個進程的視圖識別某一個階段的i/o請求之間的順序性/隨機性。然而隨著高性能計算集群的規(guī)模以及應(yīng)用并發(fā)規(guī)模的增長,很多訪問模式都會導(dǎo)致隨機訪問的發(fā)生。例如,當(dāng)客戶端進程的數(shù)目遠大于數(shù)據(jù)服務(wù)器的數(shù)量時,會導(dǎo)致大量進程同時訪問一個或者少數(shù)幾個數(shù)據(jù)節(jié)點的情況,這些進程之間的競爭會導(dǎo)致數(shù)據(jù)節(jié)點的磁頭來回移動,依然會導(dǎo)致隨機訪問的產(chǎn)生。此時從每個進程的視圖來看,其所訪問的請求依然是連續(xù)的,而在數(shù)據(jù)節(jié)點的訪問順序卻是隨機的,顯然以進程為粒度的隨機識別方法無法識別這種情況下的隨機訪問。

同時現(xiàn)有技術(shù)并未考慮針對多個文件的請求的處理,不同文件中,請求的原始偏移地址可能是相同的,當(dāng)不同文件中的請求同時到達數(shù)據(jù)節(jié)點時,若不考慮不同文件的差別,將會造成識別有誤。

綜上,現(xiàn)有隨機訪問識別方法以客戶端的單個進程為粒度,且并未考慮多個文件的情況,不能準確反映數(shù)達到據(jù)節(jié)點后請求的隨機性,以及現(xiàn)有技術(shù)不甄別地緩沖所有中間數(shù)據(jù),沒有充分利用ssd和hdd的各自的優(yōu)勢。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于解決現(xiàn)有技術(shù)以客戶端的單個進程為粒度,且并未考慮多個文件的情況,不能準確反映數(shù)達到據(jù)節(jié)點后請求的隨機性的技術(shù)問題。

為實現(xiàn)上述目的,第一方面,本發(fā)明提供了一種隨機訪問識別方法,該方法包括以下步驟:確定n個文件的請求組成的請求集合;第k個文件包括mk個請求,每個請求對應(yīng)其原始偏移地址信息和請求大小信息;根據(jù)第k個文件包括mk個請求中每個請求的原始偏移地址信息和請求大小信息確定第k個文件的隨機性tk;根據(jù)每個文件的隨機性,確定請求集合的隨機性;根據(jù)請求集合的隨機性和當(dāng)前數(shù)據(jù)流向,確定將請求集合定位到機械硬盤hdd或固態(tài)硬盤ssd中的一個,其中,當(dāng)前數(shù)據(jù)流向指的是當(dāng)前數(shù)據(jù)正在被寫入hdd或sdd中的一個,將請求集合定位到hdd或sdd中的一個,指的是將請求集合中每個請求對應(yīng)的數(shù)據(jù)寫入hdd或sdd中的一個;其中,n為文件的總數(shù)目,n為正整數(shù),k為文件的序號數(shù),1≤k≤n,k為正整數(shù),mk為第k個文件包括的請求數(shù)目,mk為正整數(shù)。

其中,上述n個文件以及n個文件包括的請求來自至少一個進程,至少一個進程來自至少一個客戶端。

本發(fā)明實施例通過將來自不同進程的請求組織成請求集合,請求集合中分別對應(yīng)不同文件的“請求流”,可以判斷出單個進程中某一個階段的i/o請求之間的隨機性以及多個進程之間由于競爭引起的隨機訪問。使用快速設(shè)備ssd緩沖隨機請求可以使隨機請求得到快速處理且有效減少隨機訪問在hdd中引起的尋道延遲。

本發(fā)明實施例克服了傳統(tǒng)方法在客戶端以進程為粒度來識別隨機訪問的缺陷,能夠準確識別由多種訪問模式導(dǎo)致的隨機訪問問題。

在一個可選的實施例中,根據(jù)每個文件的隨機性,確定請求集合的隨機性,通過以下公式得到:其中,s為請求集合的隨機性。

具體地,本發(fā)明實施例考慮不同文件,可以綜合全面考慮某一個階段不同進程組成的請求集合的隨機性。分別考慮不同文件的隨機性以及不同文件組成的請求集合的隨機性,提高了請求集合隨機性計算的準確性。

在一個可選的實施例中,根據(jù)第k個文件包括mk個請求中每個請求的原始偏移地址信息和請求大小信息確定第k個文件的隨機性tk,包括:將mk個請求按照原始偏移地址進行從小到大排序;根據(jù)每個請求的原始偏移地址信息和請求大小信息確定排序后的mk個請求中相鄰兩個請求的隨機因子;根據(jù)排序后的mk個請求中相鄰兩個請求的隨機因子,確定第k個文件的隨機性tk。

具體地,通過排序操作可以模擬出完全公平調(diào)度器(completelyfairqueuing,cfq)調(diào)度器的對請求做出的排序優(yōu)化,篩選出無法被cfq調(diào)度器優(yōu)化的請求,即真正引起hdd隨機訪問的請求。

在一個可選的實施例中,根據(jù)每個請求的原始偏移地址信息和請求大小信息確定排序后的mk個請求中相鄰兩個請求的隨機因子,包括:若排序后的mk個請求的相鄰兩個請求中,前一個請求的原始偏移地址與后一個請求的原始偏移地址之差等于前一個請求的請求大小,則將相鄰兩個請求的隨機因子為0,否則為1。

具體地,通過計算隨機因子可以模擬出cfq調(diào)度器的對請求做出的合并優(yōu)化,即如果兩個請求的偏移地址是臨接的,那兩個請求之間的尋道延遲是0,反之如果不臨接,磁盤就需要重新尋道,產(chǎn)生尋道延遲。

在一個可選的實施例中,根據(jù)排序后的mk個請求中相鄰兩個請求的隨機因子,確定第k個文件的隨機性tk,通過以下公式得到:其中,rf為排序后的mk個請求中相鄰兩個請求的隨機因子,mk-1為mk個請求中相鄰請求的總數(shù)目,i為mk-1個相鄰請求中每個相鄰請求的序號。

具體地,現(xiàn)有技術(shù)計算每個請求的隨機性,針對每個請求的隨機性判斷將該請求定位到相應(yīng)的ssd或hdd,其缺點是由于單個請求在到達具體存儲設(shè)備之前會經(jīng)過多層軟件棧,其順序和大小可能因為排序和合并操作而被改變,因此不夠準確。本申請對每個文件中的請求組織成相應(yīng)的“請求流”;計算該請求流的隨機性,可以模擬出底層調(diào)度器對請求可能做出的排序和合并優(yōu)化,篩選出真正引起hdd隨機訪問的請求。另外,由于請求集合中的請求來自于不同的進程,可以識別出由于進程之間競爭引起的隨機訪問。

其中,每個文件對應(yīng)的“請求流”組成請求集合。

在一個可選的實施例中,采用自平衡二叉查找樹avl結(jié)構(gòu)管理緩存在ssd中的數(shù)據(jù),每個avl樹的節(jié)點對應(yīng)一個請求,每個節(jié)點的內(nèi)容包括:請求的原始偏移地址信息、請求在ssd緩沖區(qū)的偏移地址信息以及請求的大小信息,avl樹的節(jié)點按照請求的原始偏移地址進行排序。緩沖請求的同時,根據(jù)請求所在的文件查找對應(yīng)的avl樹,插入對應(yīng)的節(jié)點并更新avl樹。刷新數(shù)據(jù)的過程中,中序遍歷對應(yīng)的avl樹,根據(jù)節(jié)點對應(yīng)的請求在ssd緩沖區(qū)的偏移地址信息和請求大小信息從ssd中讀取相應(yīng)的數(shù)據(jù),根據(jù)請求的原始偏移地址信息和請求大小信息將相應(yīng)的數(shù)據(jù)寫入到hdd。

具體地,通過avl樹維護數(shù)據(jù)刷新過程中的順序性和正確性,通過中序遍歷avl樹來恢復(fù)數(shù)據(jù)原來的順序,使數(shù)據(jù)被順序回寫到hdd中,保證性能的同時避免額外的排序工作。

在一個可選的實施例中,根據(jù)請求集合的隨機性和當(dāng)前數(shù)據(jù)流向,確定將請求集合定位到hdd或ssd中的一個,包括:若當(dāng)前數(shù)據(jù)正在被寫入hdd中,且請求集合的隨機性大于預(yù)設(shè)第一閾值,則將請求集合定位到ssd中,否則定位到hdd中;若當(dāng)前數(shù)據(jù)正在被寫入ssd中,且請求集合的隨機性小于預(yù)設(shè)第二閾值,則將請求集合定位到hdd中,否則定位到ssd中;第二閾值小于第一閾值。

具體地,通過第一閾值和第二閾值可以使數(shù)據(jù)的流向會在某一個狀態(tài)維持一段時間,從而避免數(shù)據(jù)流向的頻繁變化,保護數(shù)據(jù)的空間局部性,例如,只有足夠的隨機數(shù)據(jù)被緩沖到ssd中時,數(shù)據(jù)在經(jīng)過排序后刷新到hdd時的空間局部性和性能才會更好。

在一個可選的實施例中,ssd劃分為兩個塊ssd1、ssd2;若ssd1被寫滿,則將請求集合定位到ssd2,同時將ssd1的數(shù)據(jù)刷新到hdd,在ssd1的數(shù)據(jù)刷新結(jié)束之后,新的數(shù)據(jù)被寫入ssd1;若ssd2被寫滿,則將請求集合定位到ssd1,同時將ssd2的數(shù)據(jù)刷新到hdd,在ssd2的數(shù)據(jù)刷新結(jié)束之后,新的數(shù)據(jù)被寫入ssd2。

具體地,通過將ssd分塊以及流水線式管理緩沖與刷新過程,可以避免在ssd空間占滿之后,余下的隨機請求無法被緩沖到ssd的情況,即保證系統(tǒng)有空余的ssd空間來緩沖隨機請求。上述管理模式也可稱為雙緩沖流水線模式。

第二方面,本發(fā)明提供了一種隨機訪問識別系統(tǒng),該系統(tǒng)包括:確定模塊,用于確定n個文件的請求組成的請求集合;第k個文件包括mk個請求,每個請求對應(yīng)其原始偏移地址信息和請求大小信息;隨機性計算模塊,用于根據(jù)第k個文件包括mk個請求中每個請求的原始偏移地址信息和請求大小信息確定第k個文件的隨機性tk;隨機性計算模塊,還用于根據(jù)每個文件的隨機性,確定請求集合的隨機性;定位模塊,用于根據(jù)請求集合的隨機性和當(dāng)前數(shù)據(jù)流向,確定將請求集合定位到機械硬盤hdd或固態(tài)硬盤ssd中的一個,其中,當(dāng)前數(shù)據(jù)流向指的是當(dāng)前數(shù)據(jù)正在被寫入hdd或sdd中的一個。其中,n為文件的總數(shù)目,n為正整數(shù),k為文件的序號數(shù),1≤k≤n,k為正整數(shù),mk為第k個文件包括的請求數(shù)目,mk為正整數(shù)。

在一個可選的實施例中,隨機性計算模塊,具體用于將mk個請求按照原始偏移地址進行從小到大排序;根據(jù)每個請求的原始偏移地址信息和請求大小信息確定排序后的mk個請求中相鄰兩個請求的隨機因子;根據(jù)排序后的mk個請求中相鄰兩個請求的隨機因子,確定第k個文件的隨機性tk。

總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:

(1)本發(fā)明實施例從i/o節(jié)點獲取請求組成的請求集合,請求的到達順序能夠更真實地反映出磁盤的i/o情況。不同于在客戶端以進程為粒度來識別隨機請求,由于數(shù)據(jù)來源于不同的進程,能夠從一個全局的視角反應(yīng)出高性能計算領(lǐng)域中由多種訪問模式導(dǎo)致的隨機訪問問題,并且該方法可以移植到其他并行文件系統(tǒng)之中,具有很強的通用性。

(2)本發(fā)明實施例將不同文件的請求分開,分別考慮不同文件的隨機性以及不同文件組成的請求集合的隨機性,提高了請求集合隨機性計算的準確性。

(3)本發(fā)明實施例定向模塊中的閾值設(shè)定是可配置的參數(shù),可以根據(jù)不同的應(yīng)用在不同實際生產(chǎn)環(huán)境中進行調(diào)優(yōu),具有很強的靈活性。

(4)本發(fā)明實施例選擇性地緩沖請求對應(yīng)的隨機數(shù)據(jù),充分發(fā)揮了ssd和hdd各自的優(yōu)勢,節(jié)約ssd空間。采用雙緩沖流水線模式并行地管理數(shù)據(jù)緩沖過程和數(shù)據(jù)刷新過程,能夠保證ssd的空間保持在一個可用的范圍,即使ssd總?cè)萘啃∮跀?shù)據(jù)總量依然可以緩沖數(shù)據(jù),提升系統(tǒng)的性能,降低了系統(tǒng)構(gòu)建成本。

附圖說明

圖1為本發(fā)明實施例提供的隨機訪問識別方法流程示意圖;

圖2為本發(fā)明實施例提供的隨機性計算方法流程示意圖;

圖3為本發(fā)明實施例n個文件對應(yīng)的隨機訪問示意圖;

圖4為本發(fā)明實施例提供的隨機訪問識別系統(tǒng)結(jié)構(gòu)圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

圖1為本發(fā)明實施例提供的隨機訪問識別方法流程示意圖,該方法包括步驟s101至步驟s104。

在步驟s101,確定n個文件的請求組成的請求集合;第k個文件包括mk個請求,每個請求對應(yīng)其原始偏移地址信息和請求大小信息。

其中,n為文件的總數(shù)目,n為正整數(shù),k為文件的序號數(shù),1≤k≤n,k為正整數(shù),mk為第k個文件包括的請求數(shù)目,mk為正整數(shù)。

其中,可設(shè)每個文件的請求組成的相應(yīng)的“請求流”。

在步驟s102,根據(jù)第k個文件包括mk個請求中每個請求的原始偏移地址信息和請求大小信息確定第k個文件的隨機性tk。

其中,可設(shè)第k個文件的隨機性tk為第k個文件中請求組成的“請求流”的隨機性。

將mk個請求按照原始偏移地址進行從小到大排序;根據(jù)每個請求的原始偏移地址信息和請求大小信息確定排序后的mk個請求中相鄰兩個請求的隨機因子;根據(jù)排序后的mk個請求中相鄰兩個請求的隨機因子,確定第k個文件的隨機性tk

若排序后的mk個請求的相鄰兩個請求中,前一個請求的原始偏移地址與后一個請求的原始偏移地址之差等于前一個請求的請求大小,則將相鄰兩個請求的隨機因子為0,否則為1。

具體地,通過排序操作可以模擬出cfq調(diào)度器的對請求做出的排序優(yōu)化,篩選出無法被cfq調(diào)度器優(yōu)化的請求,即真正引起hdd隨機訪問的請求。通過計算隨機因子可以模擬出cfq調(diào)度器的對請求做出的合并優(yōu)化,即如果兩個請求的偏移地址是臨接的,那兩個請求之間的尋道延遲是0,反之如果不臨接,磁盤就需要重新尋道,產(chǎn)生尋道延遲。

在一個可選的實施例中,根據(jù)排序后的mk個請求中相鄰兩個請求的隨機因子,確定第k個文件的隨機性tk,通過以下公式得到:其中,rf為排序后的mk個請求中相鄰兩個請求的隨機因子,mk-1為mk個請求中相鄰請求的總數(shù)目,i為mk-1個相鄰請求中每個相鄰請求的序號。

在步驟s103,根據(jù)每個文件的隨機性,確定請求集合的隨機性。

其中,s為請求集合的隨機性。

由于不同文件包括的請求的原始偏移地址可能相同,若不在請求集合中將不同文件的“請求流”分開考慮隨機性,則可能會引起隨機性計算的不準確,影響i/o性能。

在步驟s104,根據(jù)請求集合的隨機性和當(dāng)前數(shù)據(jù)流向,確定將請求集合定位到hdd或ssd中的一個,其中,當(dāng)前數(shù)據(jù)流向指的是當(dāng)前數(shù)據(jù)正在被寫入hdd或sdd中的一個,將請求集合定位到hdd或sdd中的一個,指的是將請求集合中每個請求對應(yīng)的數(shù)據(jù)寫入hdd或sdd中的一個。

本發(fā)明實施例通過將來自不同進程的請求組織成請求集合,請求集合中分別對應(yīng)不同文件的“請求流”,可以判斷出單個進程中某一個階段的i/o請求之間的隨機性以及多個進程之間由于競爭引起的隨機訪問。使用快速設(shè)備ssd緩沖隨機請求可以使隨機請求得到快速處理且有效減少隨機訪問在hdd中引起的尋道延遲。

本發(fā)明實施例克服了傳統(tǒng)方法在客戶端以進程為粒度來識別隨機訪問的缺陷,能夠準確識別由多種訪問模式導(dǎo)致的隨機訪問問題。

相應(yīng)地,圖2為本發(fā)明實施例提供的隨機性計算方法流程示意圖。如圖2所示,包括步驟s201至步驟s202。

其中,圖2以單個文件的請求組成的“請求流”為例,進行說明。

在步驟s201,在數(shù)據(jù)節(jié)點進行同一文件請求的元數(shù)據(jù)收集與組織,請求的元數(shù)據(jù)收集包括記錄請求的原始偏移地址和請求大小。請求的組織過程是將請求的元數(shù)據(jù)按照其到達數(shù)據(jù)節(jié)點的順序以固定長度組織成一個單位,每個單位稱之為“請求流”。

需要注意的是該“請求流”只包含請求的元數(shù)據(jù)信息,而不包含請求對應(yīng)的實際數(shù)據(jù)?!罢埱罅鳌钡拈L度默認為128,與linux內(nèi)核的cfq的默認隊列長度保持一致,用戶可根據(jù)cfq隊列的長度來靈活調(diào)整“請求流”的長度。

在步驟s202,根據(jù)步驟s201中收集的元數(shù)據(jù)和組織的“請求流”,將“請求流”按照請求的原始偏移地址進行從小到大重新排序。

在步驟s203,根據(jù)步驟s202中得到的重新排序后的“請求流”,計算該“請求流”的“隨機因子”。

再步驟s204,根據(jù)步驟s203中得到的根據(jù)“隨機因子”的比例對該“請求流”的隨機性進行評估。

其中,“隨機因子”的計算方法為:對每一個有序的“請求流”,若“請求流”中相鄰兩個請求的偏移地址之差等于請求大小,將該相鄰兩個請求的“隨機因子”賦值為0;不相等時,將該相鄰兩個請求的“隨機因子”賦值為1。

本發(fā)明實施例在數(shù)據(jù)節(jié)點進行隨機性評估,突破了傳統(tǒng)方法從客戶端識別隨機請求的局限性,無論是應(yīng)用本身的訪問具有隨機性還是由于多進程競爭磁頭導(dǎo)致的隨機訪問,都能夠從一個全局的視角識別出來。因此本發(fā)明實施例是一種能夠應(yīng)對由多種訪問模式導(dǎo)致的隨機訪問問題的方法。

在一個可選的實施例中,可采用自平衡二叉查找樹avl結(jié)構(gòu)管理緩存在ssd中的數(shù)據(jù)。

其中,將請求對應(yīng)的隨機數(shù)據(jù)緩沖在ssd中時,寫在ssd中的緩存文件,對應(yīng)該請求在ssd緩沖區(qū)的偏移地址。

具體地,每個avl樹的節(jié)點對應(yīng)一個請求,每個節(jié)點的內(nèi)容包括:請求的原始偏移地址信息、請求在ssd緩沖區(qū)的偏移地址信息以及請求的大小信息,avl樹的節(jié)點按照請求的原始偏移地址進行排序。緩沖請求的同時,根據(jù)請求所在的文件查找對應(yīng)的avl樹,插入對應(yīng)的節(jié)點并更新avl樹。刷新數(shù)據(jù)的過程中,中序遍歷對應(yīng)的avl樹,根據(jù)節(jié)點對應(yīng)的請求在ssd緩沖區(qū)的偏移地址信息和請求大小信息從ssd中讀取相應(yīng)的數(shù)據(jù),根據(jù)請求的原始偏移地址信息和請求大小信息將相應(yīng)的數(shù)據(jù)寫入到hdd。

具體地,通過avl樹維護數(shù)據(jù)刷新過程中的順序性和正確性,通過中序遍歷avl樹來恢復(fù)數(shù)據(jù)原來的順序,使數(shù)據(jù)被順序回寫到hdd中,保證性能的同時避免額外的排序工作。

在一個可選的實施例中,根據(jù)請求集合的隨機性和當(dāng)前數(shù)據(jù)流向,確定將請求集合定位到hdd或ssd中的一個,包括:若當(dāng)前數(shù)據(jù)正在被寫入hdd中,且請求集合的隨機性大于預(yù)設(shè)第一閾值,則將請求集合定位到ssd中,否則定位到hdd中;若當(dāng)前數(shù)據(jù)正在被寫入ssd中,且請求集合的隨機性小于預(yù)設(shè)第二閾值,則將請求集合定位到hdd中,否則定位到ssd中;第二閾值小于第一閾值。

具體地,系統(tǒng)在最開始執(zhí)行的階段,第一個“請求流”被定向到hdd中。若當(dāng)前數(shù)據(jù)正在被寫入hdd中,且此時“請求流”的隨機性大于預(yù)設(shè)第一閾值時,則認為“請求流”隨機性強,并將接下來的“請求流”定位到ssd中,否則“請求流”的流向不改變,即定位到hdd。若當(dāng)前數(shù)據(jù)正在被寫入ssd中,且此時“請求流”的隨機性小于預(yù)設(shè)第二閾值時,則認為“請求流”隨機性弱,并將接下來的“請求流”定位到hdd中,否則“請求流”的流向不改變,即定位到ssd。上述管理模式也可稱為雙緩沖流水線模式。

具體地,通過第一閾值和第二閾值可以使數(shù)據(jù)的流向會在某一個狀態(tài)維持一段時間,從而避免數(shù)據(jù)流向的頻繁變化,保護數(shù)據(jù)的空間局部性,例如,只有足夠的隨機數(shù)據(jù)被緩沖到ssd中時,數(shù)據(jù)在經(jīng)過排序后刷新到hdd時的空間局部性和性能才會更好。

其中,第二閾值小于第一閾值,這兩個閾值是可配置的參數(shù),可以根據(jù)不同的應(yīng)用以及不同軟硬件環(huán)境進行調(diào)優(yōu)以達到最佳效果。例如,第一閾值為35%,第二閾值為20%。

本發(fā)明實施例區(qū)分請求流的隨機性與順序性,充分地發(fā)揮了ssd和hdd各自的優(yōu)勢。

在一個可選的實施例中,ssd劃分為兩個塊ssd1、ssd2;若ssd1被寫滿,則將請求集合定位到ssd2,同時將ssd1的數(shù)據(jù)刷新到hdd,在ssd1的數(shù)據(jù)刷新結(jié)束之后,新的數(shù)據(jù)被寫入ssd1;若ssd2被寫滿,則將請求集合定位到ssd1,同時將ssd2的數(shù)據(jù)刷新到hdd,在ssd2的數(shù)據(jù)刷新結(jié)束之后,新的數(shù)據(jù)被寫入ssd2。

本發(fā)明實施例通過選擇性地緩存數(shù)據(jù),并且通過準確識別由多種訪問模式導(dǎo)致的隨機訪問,充分發(fā)揮ssd和hdd各自的優(yōu)勢,利用有限的ssd資源提升系統(tǒng)寫性能。采用雙緩沖流水線模式并行地管理數(shù)據(jù)緩沖過程和數(shù)據(jù)刷新過程,能夠保證ssd的空間保持在一個可用的范圍,即使ssd總?cè)萘啃∮跀?shù)據(jù)總量依然可以緩沖數(shù)據(jù),提升系統(tǒng)的性能,降低了系統(tǒng)構(gòu)建成本。

相應(yīng)地,圖3為本發(fā)明實施例提供的n個文件對應(yīng)的隨機訪問示意圖。如圖3所示,i/o節(jié)點接收多個文件發(fā)送的請求,例如圖3中的文件1…文件k等。每個文件可包括多個進程,例如文件1包括進程1和進程2。每個進程可包括多個請求,例如文件1中進程1包括原始偏移地址為1的請求#1和原始偏移地址為2的請求#2,進程1的請求順序是{#1,#2,…},進程2的請求順序是{#33,#64,…}。文件k中進程k包括原始偏移地址為1的請求#1和原始偏移地址為2的請求#2等。由圖3的示例可知,不同文件中,請求的原始偏移地址可能是相同的。

在i/o節(jié)點處,請求到達的順序不同,如圖3所示的,i/o節(jié)點處,按照請求到達的時間順序,請求集合為:#1(文件1)、#33(文件1)、#1(文件k)、#2(文件k)、#64(文件1)、#2(文件1)、#31(文件k)、#16(文件k)…,可知,不同文件中的請求的到達順序存在競爭關(guān)系,且相同文件的不同進程或同一進程下的請求的到達順序也存在競爭關(guān)系。

其中,請求集合包括的請求的長度,可以根據(jù)cfq隊列的長度來靈活調(diào)整。

對i/o節(jié)點處請求集合計算隨機性前,需要先將請求到達的順序按文件和原始偏移地址的大小進行重新排序。如圖3所示,文件1對應(yīng)的請求流為:#1、#2、#33、#64…,其中,請求#2和#33之間的間隔為偏移地址間隔。假設(shè)請求#2和#33之間不存在其他請求時,則請求#2和#33之間的隨機因子通過將#2和#33之間的偏移地址間隔與#2的請求長度做比較得到。具體可參見圖2所示的方法記載,例如:文件1中,請求#1與請求#2之間的偏移地址恰好等于請求大小,因此“隨機因子”為0,請求#2與請求#33之間的“隨機因子”為1。

圖4為本發(fā)明實施例提供的一種隨機訪問識別系統(tǒng)結(jié)構(gòu)示意圖,如圖4所示,進程1、進程2、進程3…對應(yīng)的i/o請求并發(fā)地訪問i/o節(jié)點,其中,進程1、進程2、進程3…可來自n個文件,以及每個進程可包括多個請求。

在圖4中,i/o節(jié)點處可包括確定模塊、隨機性計算模塊以及定向模塊等。確定模塊,用于確定n個文件的請求組成的請求集合;第k個文件包括mk個請求,每個請求對應(yīng)其原始偏移地址信息和請求大小信息;其中,n為文件的總數(shù)目,n為正整數(shù),k為文件的序號數(shù),1≤k≤n,k為正整數(shù),mk為第k個文件包括的請求數(shù)目,mk為正整數(shù)。

隨機性計算模塊,用于根據(jù)第k個文件包括mk個請求中每個請求的原始偏移地址信息和請求大小信息確定第k個文件的隨機性tk。隨機性計算模塊,還用于根據(jù)每個文件的隨機性,確定請求集合的隨機性。

定位模塊,用于根據(jù)請求集合的隨機性和當(dāng)前數(shù)據(jù)流向,確定將請求集合定位到機械硬盤hdd或固態(tài)硬盤ssd中的一個,其中,當(dāng)前數(shù)據(jù)流向指的是當(dāng)前數(shù)據(jù)正在被寫入hdd或sdd中的一個。

如圖4所示,若當(dāng)前數(shù)據(jù)正在被寫入ssd中,且此時請求集合的隨機性小于第二閾值時,則認為請求集合隨機性弱,為順序數(shù)據(jù),將該請求集合定位到hdd中,否則定位到ssd。

若當(dāng)前數(shù)據(jù)正在被寫入hdd中,且此時請求集合的隨機性大于第一閾值時,則認為請求集合隨機性強,為隨機數(shù)據(jù),將該請求集合定位到ssd中,否則定位到hdd。

在一個可選的示例中,隨機性計算模塊,具體用于將mk個請求按照原始偏移地址進行從小到大排序;根據(jù)每個請求的原始偏移地址信息和請求大小信息確定排序后的mk個請求中相鄰兩個請求的隨機因子;根據(jù)排序后的mk個請求中相鄰兩個請求的隨機因子,確定第k個文件的隨機性tk。

另外,當(dāng)將ssd劃分為兩個塊ssd1、ssd2;i/o節(jié)點處對應(yīng)的ssd管理處包括雙緩沖流水線模塊和緩存數(shù)據(jù)管理模塊。

雙緩沖流水線模塊用于并行處理數(shù)據(jù)緩沖階段和刷新階段,并管理一個流水線隊列,維護ssd的緩存空間。緩存數(shù)據(jù)管理模塊用于管理緩存在ssd中的數(shù)據(jù),并維護數(shù)據(jù)刷新過程中的順序性和正確性。

另外,上述各個模塊的功能及方法步驟可參見上述圖1至圖3中的描述,在此不做贅述。

本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
定陶县| 花莲县| 华亭县| 阿鲁科尔沁旗| 丹寨县| 安乡县| 临海市| 会宁县| 武山县| 西乌珠穆沁旗| 永宁县| 泸西县| 峨山| 乐亭县| 枣强县| 长白| 天门市| 定南县| 泰来县| 宽城| 林口县| 曲麻莱县| 武宣县| 柏乡县| 鄂伦春自治旗| 油尖旺区| 石棉县| 临夏县| 黑山县| 通渭县| 黄龙县| 阜城县| 库车县| 古蔺县| 洪湖市| 明光市| 林口县| 乌兰浩特市| 平罗县| 五华县| 青神县|