專利名稱:一種處理數(shù)據(jù)只讀訪問(wèn)請(qǐng)求的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)系統(tǒng)技術(shù)領(lǐng)域,具體來(lái)說(shuō)涉及一種在可以在服務(wù)器端高速處理數(shù)據(jù)只讀操作的方法。
背景技術(shù):
在存儲(chǔ)領(lǐng)域中,由于客戶端較多,且數(shù)據(jù)的讀寫請(qǐng)求最終通過(guò)數(shù)據(jù)服務(wù)器完成,數(shù)據(jù)服務(wù)器往往面臨著較大的壓力,尤其是存在熱點(diǎn)對(duì)象時(shí),大量請(qǐng)求涌入一臺(tái)或幾臺(tái)數(shù)據(jù)服務(wù)器,這時(shí)的數(shù)據(jù)服務(wù)器性能決定了存儲(chǔ)系統(tǒng)的性能。相比與提高硬件性能,在軟件系統(tǒng)上使用合適的方法,提高軟件的處理速度更為可行。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種快速的響應(yīng)只讀請(qǐng)求的方法。一種處理數(shù)據(jù)只讀訪問(wèn)請(qǐng)求的方法,把服務(wù)器端數(shù)據(jù)分為頁(yè)緩存數(shù)據(jù)和磁盤數(shù)據(jù),存儲(chǔ)系統(tǒng)管理頁(yè)緩存,接收到只讀請(qǐng)求后,由緩存查詢線程查詢請(qǐng)求是否完全命中緩存,如果成功且頁(yè)面全部有效,立即應(yīng)答客戶端;否則分配不存在的頁(yè)面,加入緩存中,并將請(qǐng)求提交至磁盤處理線程,磁盤處理線程執(zhí)行磁盤IO操作,磁盤IO完成后,數(shù)據(jù)寫入新分配的頁(yè)面,標(biāo)記頁(yè)面有效,并應(yīng)答客戶端請(qǐng)求。優(yōu)選的,所述磁盤處理線程在每次讀取磁盤前,將取到的全部請(qǐng)求進(jìn)行合并后提交至磁盤。優(yōu)選的,所述服務(wù)器根據(jù)緩存的訪問(wèn)情況與緩存壓力,動(dòng)態(tài)的調(diào)整頁(yè)面的回收時(shí)間。與傳統(tǒng)的只讀請(qǐng)求處理過(guò)程相比,本發(fā)明具有以下特點(diǎn)。1.完全命中緩存的請(qǐng)求可以直接應(yīng)答,響應(yīng)間隔短。2.相同頁(yè)面僅存在一份緩存,減少了多次拷貝帶來(lái)的性能損失及內(nèi)存占用。3.聚合了磁盤操作,提高了磁盤的使用率。4.減少了線程數(shù)量,避免了線程切換帶來(lái)的性能損失。
圖1為系統(tǒng)的交互模型工作過(guò)程圖。圖2為本發(fā)明模型具體工作方式。
具體實(shí)施例方式數(shù)據(jù)服務(wù)器主動(dòng)管理對(duì)象在內(nèi)存中頁(yè)面,接收到只讀請(qǐng)求后,由緩存查詢線程查詢請(qǐng)求是否完全命中緩存,如果成功且頁(yè)面全部有效,立即應(yīng)答客戶端。否則分配不存在的頁(yè)面,加入緩存中,并將請(qǐng)求提交至磁盤處理線程,磁盤處理線程執(zhí)行磁盤IO等操作,磁盤IO完成后,數(shù)據(jù)寫入新分配的頁(yè)面,標(biāo)記頁(yè)面有效,并應(yīng)答客戶端請(qǐng)求。磁盤處理線程在每次讀取磁盤前,將取到的全部請(qǐng)求進(jìn)行合并后提交至磁盤,以提高磁盤IO性能。數(shù)據(jù)服務(wù)器根據(jù)緩存的訪問(wèn)情況與緩存壓力,動(dòng)態(tài)的調(diào)整頁(yè)面的回收時(shí)間,以提高緩存的命中率。
查詢緩存過(guò)程全部是內(nèi)存操作,少量線程即可完成此類操作。磁盤IO過(guò)程中,每一個(gè)磁盤對(duì)應(yīng)一個(gè)線程,就可以使磁盤IO達(dá)到最大,也避免了多個(gè)線程對(duì)一個(gè)磁盤的競(jìng)爭(zhēng)所帶來(lái)的IO損耗。此方法使用的線程數(shù)量較少,避免了線程切換所帶來(lái)的性能損耗,線程負(fù)載均勻,盡可能的使用了磁盤10。
權(quán)利要求
1.一種處理數(shù)據(jù)只讀訪問(wèn)請(qǐng)求的方法,其特征在于把服務(wù)器端數(shù)據(jù)分為頁(yè)緩存數(shù)據(jù)和磁盤數(shù)據(jù),存儲(chǔ)系統(tǒng)管理頁(yè)緩存,接收到只讀請(qǐng)求后,由緩存查詢線程查詢請(qǐng)求是否完全命中緩存,如果成功且頁(yè)面全部有效,立即應(yīng)答客戶端;否則分配不存在的頁(yè)面,加入緩存中,并將請(qǐng)求提交至磁盤處理線程,磁盤處理線程執(zhí)行磁盤IO操作,磁盤IO完成后,數(shù)據(jù)寫入新分配的頁(yè)面,標(biāo)記頁(yè)面有效,并應(yīng)答客戶端請(qǐng)求。
2.如權(quán)利要求1所述的方法,其特征在于所述磁盤處理線程在每次讀取磁盤前,將取到的全部請(qǐng)求進(jìn)行合并后提交至磁盤。
3.如權(quán)利要求1所述的方法,其特征在于所述服務(wù)器根據(jù)緩存的訪問(wèn)情況與緩存壓力,動(dòng)態(tài)的調(diào)整頁(yè)面的回收時(shí)間。
全文摘要
本發(fā)明提供了一種處理數(shù)據(jù)只讀訪問(wèn)請(qǐng)求的方法,把服務(wù)器端數(shù)據(jù)分為頁(yè)緩存數(shù)據(jù)和磁盤數(shù)據(jù),存儲(chǔ)系統(tǒng)管理頁(yè)緩存,接收到只讀請(qǐng)求后,由緩存查詢線程查詢請(qǐng)求是否完全命中緩存,如果成功且頁(yè)面全部有效,立即應(yīng)答客戶端;否則分配不存在的頁(yè)面,加入緩存中,并將請(qǐng)求提交至磁盤處理線程,磁盤處理線程執(zhí)行磁盤IO操作,磁盤IO完成后,數(shù)據(jù)寫入新分配的頁(yè)面,標(biāo)記頁(yè)面有效,并應(yīng)答客戶端請(qǐng)求。
文檔編號(hào)G06F3/06GK102495710SQ20111032830
公開日2012年6月13日 申請(qǐng)日期2011年10月25日 優(yōu)先權(quán)日2011年10月25日
發(fā)明者付根希, 姜國(guó)梁, 彭成, 苗艷超 申請(qǐng)人:曙光信息產(chǎn)業(yè)(北京)有限公司