專利名稱:一種機(jī)群文件系統(tǒng)中緩存管理的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)領(lǐng)域,尤其涉及一種機(jī)群文件系統(tǒng)中緩存管理的 方法及系統(tǒng)。
背景技術(shù):
機(jī)群(cluster)系統(tǒng)由互相連接的多個(gè)獨(dú)立計(jì)算機(jī)所組成,該計(jì)算機(jī)可 以是單機(jī)或多處理器系統(tǒng),例如PC (個(gè)人計(jì)算機(jī))、工作站或SMP (對(duì)稱多處 理系統(tǒng)),每個(gè)計(jì)算機(jī)都有自己的存儲(chǔ)器、1/0(輸入/輸出)設(shè)備和操作系統(tǒng)。 機(jī)群系統(tǒng)對(duì)用戶和應(yīng)用來(lái)說(shuō)是一個(gè)單一的系統(tǒng),能夠提供低價(jià)高效的高性能 環(huán)境和快速可靠的服務(wù)。由于機(jī)群系統(tǒng)具有高性價(jià)比的優(yōu)勢(shì),其已成為高性 能計(jì)算機(jī)的主流結(jié)構(gòu)。
在機(jī)群系統(tǒng)中,通常存儲(chǔ)服務(wù)器配備有大容量的存儲(chǔ)設(shè)備,在機(jī)群系統(tǒng) 運(yùn)作時(shí),需要對(duì)這些存儲(chǔ)設(shè)備進(jìn)行管理。同時(shí),機(jī)群系統(tǒng)還需要為不同客戶 端的用戶提供的文件共享服務(wù)。機(jī)群文件系統(tǒng)為機(jī)群系統(tǒng)提供了上述服務(wù), 它將機(jī)群系統(tǒng)中的所有存儲(chǔ)設(shè)備整合起來(lái),建立一個(gè)統(tǒng)一的名字空間(文件 和目錄的組織結(jié)構(gòu))。各個(gè)客戶端看到目錄結(jié)構(gòu)一致的文件系統(tǒng),不同節(jié)點(diǎn)(客 戶端)的用戶可以采用透明的方式訪問(wèn)相同的文件。機(jī)群文件系統(tǒng)中的數(shù)據(jù) 通常不存儲(chǔ)在本客戶端的磁盤中,而是存儲(chǔ)在存儲(chǔ)服務(wù)器上,因而通常都會(huì) 設(shè)有專用的存儲(chǔ)服務(wù)器。以寫為例,應(yīng)用進(jìn)程通過(guò)機(jī)群文件系統(tǒng)的客戶端寫 數(shù)據(jù)時(shí),客戶端首先將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳送到存儲(chǔ)服務(wù)器端,存儲(chǔ)服務(wù)器再將 接收到的數(shù)據(jù)寫到存儲(chǔ)服務(wù)器的存儲(chǔ)設(shè)備中。
緩存技術(shù)是一種有效提升計(jì)算機(jī)性能的優(yōu)化技術(shù)。文件緩存指的是在計(jì) 算機(jī)系統(tǒng)的內(nèi)存中暫時(shí)保留一些磁盤文件數(shù)據(jù)的副本,利用存儲(chǔ)訪問(wèn)的局部 性原理,減少對(duì)磁盤設(shè)備的訪問(wèn)次數(shù),從而達(dá)到提高性能的目的。
伴隨新的存儲(chǔ)結(jié)構(gòu)的誕生以及機(jī)群文件系統(tǒng)的發(fā)展,緩存結(jié)構(gòu)也發(fā)生了 新的變化。為了改善性能,機(jī)群文件系統(tǒng)存儲(chǔ)服務(wù)器端和客戶端都會(huì)使用大
容量的主存來(lái)緩存文件數(shù)據(jù)。這些緩存構(gòu)成了多級(jí)緩存體系結(jié)構(gòu),如圖l所 示。文件數(shù)據(jù)既可能緩存在客戶端中又可能緩存在服務(wù)器中,但如果沒(méi)有對(duì) 多級(jí)緩存進(jìn)行有效地管理,即使增大緩存的空間,緩存所帶來(lái)的性能提升也 不會(huì)成比例地增長(zhǎng)。
機(jī)群文件系統(tǒng)中,應(yīng)用程序?qū)ξ募l(fā)起順序讀訪問(wèn)時(shí),文件系統(tǒng)的客戶 端和存儲(chǔ)服務(wù)器的順序預(yù)取機(jī)制都會(huì)被觸發(fā)。預(yù)取數(shù)據(jù)首先被從服務(wù)器端的 磁盤預(yù)取到服務(wù)器的內(nèi)存,然后再通過(guò)網(wǎng)絡(luò)傳遞到客戶端的內(nèi)存。由于文件
緩存往往采用LRU (Least Recently Used,最近最少使用)替換策略。所以, 預(yù)取數(shù)據(jù)既會(huì)被緩存在客戶端的內(nèi)存中,又會(huì)被緩存在存儲(chǔ)服務(wù)器的內(nèi)存中。 假設(shè)在被真正訪問(wèn)之前,預(yù)取數(shù)據(jù)都會(huì)被緩存在內(nèi)存中而不會(huì)被提前替換。 那么,這兩級(jí)緩存的內(nèi)容是完全重復(fù)的,如圖2所示客戶端將預(yù)取的數(shù)據(jù), 圖中AB對(duì)應(yīng)數(shù)據(jù),緩存在內(nèi)存中,服務(wù)器也會(huì)將預(yù)取的數(shù)據(jù),A' B'對(duì)應(yīng)數(shù) 據(jù),緩存在內(nèi)存中,AB和A, B,的內(nèi)容完全重復(fù)。如果預(yù)取數(shù)據(jù)在客戶端的 內(nèi)存中命中,那么將不會(huì)再向存儲(chǔ)服務(wù)器發(fā)起新的請(qǐng)求。如果預(yù)取數(shù)據(jù)沒(méi)有 在客戶端內(nèi)存中命中,那么它也不會(huì)在存儲(chǔ)服務(wù)器端的內(nèi)存中命中。所以, 在上面的假設(shè)條件成立的情況下,服務(wù)器端緩存的預(yù)取數(shù)據(jù)將永遠(yuǎn)不會(huì)命中。 存儲(chǔ)服務(wù)器的該部分內(nèi)存實(shí)際上緩存了無(wú)效的數(shù)據(jù)。只有預(yù)取數(shù)據(jù)被提前從 客戶端內(nèi)存中替換時(shí),存儲(chǔ)服務(wù)器端緩存的數(shù)據(jù)才可能命中。然而,該種情 況通常不會(huì)出現(xiàn)。因?yàn)閱蝹€(gè)存儲(chǔ)服務(wù)器通常為多個(gè)客戶端服務(wù)。而且,機(jī)群 文件系統(tǒng)中的存儲(chǔ)服務(wù)器一般是由普通的PC (個(gè)人計(jì)算機(jī))構(gòu)成。所以存儲(chǔ) 服務(wù)器端的內(nèi)存比客戶端更加稀缺。
機(jī)群文件系統(tǒng)中的緩存體系結(jié)構(gòu)主要存在兩個(gè)問(wèn)題。問(wèn)題一,存儲(chǔ)服務(wù) 器低級(jí)緩存與客戶端高級(jí)緩存有著不同的訪問(wèn)特征。存儲(chǔ)服務(wù)器內(nèi)存訪問(wèn)的 通常為客戶端高級(jí)緩存不命中的數(shù)據(jù),所以存儲(chǔ)服務(wù)器內(nèi)存訪問(wèn)的局部性較 弱。傳統(tǒng)的基于局部性原理的緩存替換策略如LRU不適用于存儲(chǔ)服務(wù)器端的 緩存。問(wèn)題二,如果沒(méi)有將不同級(jí)級(jí)緩存管理聯(lián)系起來(lái),則在各級(jí)緩存中會(huì) 緩存大量重復(fù)的數(shù)據(jù),低級(jí)緩存的命中率低和緩存空間利用率。
為了優(yōu)化緩存的效果,在"An Effective Buffer Cache Management Scheme to Exploit Both Temporal and Spatial Locality. In .'Proceedings of the Second USENIX Conference on File and Storage Technologies (FAST
2005) , San Francisco, CA, December 2005."中最早提出利用數(shù)據(jù)訪問(wèn)的空間 局部性來(lái)改善緩存的性能,并利用這一原理提出了DULO算法。因?yàn)榇疟P的順 序訪問(wèn)性能要遠(yuǎn)高于隨機(jī)訪問(wèn)性能,所以,如果數(shù)據(jù)被訪問(wèn)的頻率相同,在 內(nèi)存中優(yōu)先緩存隨機(jī)訪問(wèn)的數(shù)據(jù),可以大大減少磁盤訪問(wèn)中磁頭移動(dòng)的次數(shù)。 該算法主要基于單級(jí)緩存結(jié)構(gòu),主要解決單級(jí)緩存中的問(wèn)題。在管理單級(jí)緩 存的過(guò)程中的確比傳統(tǒng)的LRU替換策略有明顯優(yōu)勢(shì)。然而,這種管理策略不
能把機(jī)群系統(tǒng)中的各級(jí)緩存管理聯(lián)系起來(lái),不適用于機(jī)群文件系統(tǒng)緩存體系 結(jié)構(gòu)。
現(xiàn)有的機(jī)群文件系統(tǒng)緩存管理技術(shù)可以分為兩大類對(duì)客戶端透明的緩 存管理策略和需要客戶端參與緩存管理策略。對(duì)客戶端透明的緩存管理策略 保持原有的I/0訪問(wèn)接口,管理過(guò)程對(duì)存儲(chǔ)軟件的客戶端完全透明。只是在 存儲(chǔ)服務(wù)器端挖掘訪問(wèn)信息來(lái)實(shí)現(xiàn)統(tǒng)一的管理。管理過(guò)程中不需要客戶端任 何提示信息的幫助。這類管理策略的典型管理算法包括"Web Search for a Planet: The Google Cluster Architecture, IEEE Micro, Vol. 23,
No. 2, March 2003, pp. 22-28."中的MQ替換算法,"The Google File System. In: Larry P, eds. Proceedings of the 19th ACM Symposium on
Operating Systems Principles. NewYork: ACM Press, 2003. 19-22."
中基于高級(jí)緩存替換信息(eviction-based)的管理算法以及"The multi-queue replacement algorithm for second level buffer caches. In Proceedings of the 2001 USENIX Annual Technical Conference, pages 91-104, June 2001."中X-RAY管理策略,需要客戶端參與的緩存管理策略 通過(guò)犧牲透明性來(lái)?yè)Q取高的性能。該種管理策略需要對(duì)傳統(tǒng)1/0訪問(wèn)接口進(jìn) 行拓展,需要修改存儲(chǔ)系統(tǒng)的客戶端軟件來(lái)將多級(jí)緩存的管理統(tǒng)一起來(lái)。
現(xiàn)有技術(shù)未解決機(jī)群文件系統(tǒng)中,存儲(chǔ)服務(wù)器緩存命中率低,順序預(yù)取 數(shù)據(jù)在各級(jí)內(nèi)存中重復(fù)緩存的問(wèn)題。
發(fā)明內(nèi)容
為解決上述問(wèn)題,本發(fā)明提供了一種機(jī)群文件系統(tǒng)中緩存管理的方法及 系統(tǒng),用以提高存儲(chǔ)服務(wù)器端緩存命中率,避免順序預(yù)取數(shù)據(jù)在各級(jí)內(nèi)存中 重復(fù)緩存。
本發(fā)明公開了一種機(jī)群文件系統(tǒng)中緩存管理的方法,包括客戶端接收應(yīng) 用層的文件訪問(wèn)請(qǐng)求,將所述文件訪問(wèn)請(qǐng)求封裝到讀請(qǐng)求消息中,所述方法 還包括
步驟1,所述客戶端識(shí)別所述讀請(qǐng)求對(duì)應(yīng)的訪問(wèn)模式信息;
步驟2,所述客戶端將所述訪問(wèn)模式信息封裝到所述讀請(qǐng)求消息中,將
所述讀請(qǐng)求消息發(fā)送給存儲(chǔ)服務(wù)器;
步驟3,所述存儲(chǔ)服務(wù)器接收所述讀請(qǐng)求消息,從所述存儲(chǔ)服務(wù)器的磁
盤讀取所述讀請(qǐng)求消息要從所述存儲(chǔ)服務(wù)器訪問(wèn)的數(shù)據(jù),通過(guò)應(yīng)答消息將所
述數(shù)據(jù)發(fā)送給所述客戶端;
步驟4,所述存儲(chǔ)服務(wù)器依據(jù)所述讀請(qǐng)求消息中訪問(wèn)模式信息判斷所述
客戶端的訪問(wèn)模式類型是否為順序訪問(wèn),如果是,則將被訪問(wèn)的數(shù)據(jù)從所述
存儲(chǔ)服務(wù)器的內(nèi)存中釋放,否則,繼續(xù)緩存被訪問(wèn)的數(shù)據(jù)。 所述客戶端設(shè)置有順序計(jì)數(shù)器,所述步驟1進(jìn)一步包括 步驟21,判斷所述文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的起始位置是否為所述文件
上次被訪問(wèn)的結(jié)束位置,如果是,則將所述順序計(jì)數(shù)器加1,否則,將所述
順序計(jì)數(shù)器清零;
步驟22,判斷所述順序計(jì)數(shù)器是否大于2,如果是,則所述訪問(wèn)類型為 所述順序訪問(wèn),否則,所述訪問(wèn)類型為隨機(jī)訪問(wèn)。 所述步驟21和所述步驟22間還包括
步驟31,記錄所述文件訪問(wèn)請(qǐng)求對(duì)所述文件訪問(wèn)的起始位置和所述訪問(wèn) 的訪問(wèn)粒度。
所述步驟21前進(jìn)一步包括,根據(jù)記錄的所述文件上次被訪問(wèn)的起始位置 和訪問(wèn)粒度計(jì)算所述文件上次被訪問(wèn)的結(jié)束位置。
步驟3中讀取所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)進(jìn)一步包括
步驟51,判斷所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)是否在所述存儲(chǔ)服務(wù)器的內(nèi) 存中,如果不是,則執(zhí)行步驟52;
步驟52,將所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)從所述存儲(chǔ)服務(wù)器的磁盤讀到 所述存儲(chǔ)服務(wù)器的內(nèi)存中。
本發(fā)明還公開了一種機(jī)群文件系統(tǒng)中緩存管理的系統(tǒng),包括具有磁盤的 存儲(chǔ)服務(wù)器和客戶端,所述客戶端包括用于接收應(yīng)用層的文件訪問(wèn)請(qǐng)求并將
所述文件訪問(wèn)請(qǐng)求封裝到讀請(qǐng)求消息中的封裝模塊, 所述客戶端還包括訪問(wèn)類型識(shí)別模塊,
所述訪問(wèn)類型識(shí)別模塊,用于識(shí)別所述讀請(qǐng)求對(duì)應(yīng)的訪問(wèn)模式信息; 所述封裝模塊,還用于將所述訪問(wèn)模式信息封裝到所述讀請(qǐng)求消息中, 將所述讀請(qǐng)求消息發(fā)送給所述存儲(chǔ)服務(wù)器;
所述存儲(chǔ)服務(wù)器包括數(shù)據(jù)訪問(wèn)模塊和緩存管理模塊,
所述數(shù)據(jù)訪問(wèn)模塊,用于接收所述讀請(qǐng)求消息,從所述磁盤讀取所述讀 請(qǐng)求消息要從所述存儲(chǔ)服務(wù)器訪問(wèn)的數(shù)據(jù),通過(guò)應(yīng)答消息將所述數(shù)據(jù)發(fā)送給 所述客戶端;
所述緩存管理模塊,用于依據(jù)所述讀請(qǐng)求消息中訪問(wèn)模式信息判斷所述 客戶端的訪問(wèn)模式類型是否為順序訪問(wèn),如果是,則將被訪問(wèn)的數(shù)據(jù)從所述 存儲(chǔ)服務(wù)器的內(nèi)存中釋放,否則,繼續(xù)緩存所述被訪問(wèn)的數(shù)據(jù)。
所述客戶端設(shè)置有順序計(jì)數(shù)器,
所述訪問(wèn)類型識(shí)別模塊,進(jìn)一步用于在所述文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的 起始位置為所述文件上次被訪問(wèn)的結(jié)束位置時(shí),將所述順序計(jì)數(shù)器加1,在 所述文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的起始位置不為所述文件上次被訪問(wèn)的結(jié)束位 置時(shí),將所述順序計(jì)數(shù)器清零;并且判斷所述順序計(jì)數(shù)器是否大于2,如果 是,則確定所述訪問(wèn)類型為順序訪問(wèn),否則,確定所述訪問(wèn)類型為隨機(jī)訪問(wèn)。
所述訪問(wèn)類型識(shí)別模塊還用于記錄所述文件訪問(wèn)請(qǐng)求對(duì)所述文件訪問(wèn)的 起始位置和所述訪問(wèn)的訪問(wèn)粒度。
所述訪問(wèn)類型識(shí)別模塊進(jìn)一步用于根據(jù)記錄的所述文件上次被訪問(wèn)的起 始位置和訪問(wèn)粒度計(jì)算所述文件上次被訪問(wèn)的結(jié)束位置。
所述數(shù)據(jù)訪問(wèn)模塊進(jìn)一步用于在所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)未在所述 存儲(chǔ)服務(wù)器的內(nèi)存中時(shí),將所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)從所述存儲(chǔ)服務(wù)器 的磁盤讀到所述存儲(chǔ)服務(wù)器的內(nèi)存中。
本發(fā)明的有益效果在于,通過(guò)實(shí)現(xiàn)預(yù)取數(shù)據(jù)在客戶端的單級(jí)緩存,釋放 存儲(chǔ)服務(wù)器的內(nèi)存空間,避免各級(jí)緩存數(shù)據(jù)重合,增大緩存空間的整體利用 率;通過(guò)在存儲(chǔ)服務(wù)器端的內(nèi)存中緩存隨機(jī)數(shù)據(jù),有利于利用數(shù)據(jù)訪問(wèn)的空 間局部性原理,減少磁盤隨機(jī)訪問(wèn)的比例,增加磁盤順序訪問(wèn)比例和粒度, 充分發(fā)揮磁盤訪問(wèn)性能。
圖1是機(jī)群文件系統(tǒng)中緩存體系結(jié)構(gòu)示意圖2是機(jī)群文件系統(tǒng)中預(yù)取時(shí)數(shù)據(jù)重復(fù)緩存問(wèn)題示意圖3是本發(fā)明的系統(tǒng)結(jié)構(gòu)圖4是本發(fā)明的方法流程圖5是本發(fā)明客戶端識(shí)別訪問(wèn)模式信息的方法流程圖; 圖6是本發(fā)明存儲(chǔ)服務(wù)器讀取數(shù)據(jù)的方法流程圖。
具體實(shí)施例方式
下面結(jié)合附圖,對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。
本發(fā)明的系統(tǒng)結(jié)構(gòu)圖如圖3所示。
本發(fā)明的系統(tǒng)包括具有磁盤的存儲(chǔ)服務(wù)器302和客戶端301。 客戶端301包括封裝模塊311和訪問(wèn)類型識(shí)別模塊312 。 封裝模塊311,用于接收應(yīng)用層的文件訪問(wèn)請(qǐng)求,將該文件訪問(wèn)請(qǐng)求封 裝到讀請(qǐng)求消息中,并將訪問(wèn)類型識(shí)別模塊312識(shí)別出的訪問(wèn)模式信息封裝 到讀請(qǐng)求消息中,將該讀請(qǐng)求消息發(fā)送給存儲(chǔ)服務(wù)器302。
訪問(wèn)類型識(shí)別模塊312,用于識(shí)別讀請(qǐng)求消息對(duì)應(yīng)的訪問(wèn)模式信息。 訪問(wèn)模式信息包含訪問(wèn)類型,訪問(wèn)類型分為順序訪問(wèn)和隨機(jī)訪問(wèn)兩種。 客戶端301設(shè)置有順序計(jì)數(shù)器。
訪問(wèn)類型識(shí)別模塊312,進(jìn)一步用于根據(jù)記錄的被訪問(wèn)文件上次被訪問(wèn) 的起始位置和訪問(wèn)粒度計(jì)算該文件上次被訪問(wèn)的結(jié)束位置;在本次文件訪問(wèn) 請(qǐng)求對(duì)該文件訪問(wèn)的起始位置為該文件上次被訪問(wèn)的結(jié)束位置時(shí),將順序計(jì) 數(shù)器加1,在本次文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的起始位置不為該文件上次被訪 問(wèn)的結(jié)束位置時(shí),將順序計(jì)數(shù)器清零;并且判斷順序計(jì)數(shù)器是否大于2,如 果是,則確定訪問(wèn)類型為順序訪問(wèn),否則,確定訪問(wèn)類型為隨機(jī)訪問(wèn);并記 錄本次文件訪問(wèn)請(qǐng)求對(duì)該文件訪問(wèn)的起始位置和本次訪問(wèn)的訪問(wèn)粒度。 存儲(chǔ)服務(wù)器302包括數(shù)據(jù)訪問(wèn)模塊321和緩存管理模塊322。 數(shù)據(jù)訪問(wèn)模塊321,用于接收讀請(qǐng)求消息,從存儲(chǔ)服務(wù)器302的磁盤讀 取該讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù),通過(guò)應(yīng)答消息將該數(shù)據(jù)發(fā)送給客戶端301。
數(shù)據(jù)訪問(wèn)模塊321進(jìn)一步用于在讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)未在存儲(chǔ)服務(wù) 器302的內(nèi)存中時(shí),將該讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)從存儲(chǔ)服務(wù)器302的磁盤 讀到存儲(chǔ)服務(wù)器302的內(nèi)存中。
緩存管理模塊322,用于依據(jù)讀請(qǐng)求消息中訪問(wèn)模式信息判斷客戶端301 的訪問(wèn)模式類型是否為順序訪問(wèn),如果是,則將被訪問(wèn)的數(shù)據(jù)從存儲(chǔ)服務(wù)器 302的內(nèi)存中釋放,否則,繼續(xù)緩存被訪問(wèn)的數(shù)據(jù)。
本發(fā)明的方法流程如圖4所示。
歩驟S401,客戶端接收應(yīng)用層的文件訪問(wèn)請(qǐng)求,將該文件訪問(wèn)請(qǐng)求封裝 到讀請(qǐng)求消息中。
步驟S402,客戶端識(shí)別讀請(qǐng)求消息對(duì)應(yīng)的訪問(wèn)模式信息。 步驟S402的具體實(shí)施方式
如圖5所示。
訪問(wèn)模式信息包含訪問(wèn)類型,訪問(wèn)類型分為順序訪問(wèn)和隨機(jī)訪問(wèn)兩種。 客戶端設(shè)置有順序計(jì)數(shù)器。
步驟S501,根據(jù)記錄的文件訪問(wèn)請(qǐng)求所訪問(wèn)的文件上次被訪問(wèn)的起始位 置和訪問(wèn)粒度計(jì)算該文件上次被訪問(wèn)的結(jié)束位置。
步驟S502,判斷文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的起始位置是否為文件上次被 訪問(wèn)的結(jié)束位置,如果是,執(zhí)行步驟S503,否則,執(zhí)行步驟S504。
步驟S503,將順序計(jì)數(shù)器加l。
步驟S504,將順序計(jì)數(shù)器清零。
步驟S505,記錄文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的起始位置和訪問(wèn)粒度。 步驟S506,判斷順序計(jì)數(shù)器是否大于2,如果是,執(zhí)行步驟S507,否則, 執(zhí)行步驟S508。
步驟S507,確定訪問(wèn)類型為順序訪問(wèn)。 步驟S508,確定訪問(wèn)類型為隨機(jī)訪問(wèn)。
步驟S403,客戶端將訪問(wèn)模式信息封裝到讀請(qǐng)求消息中,將該讀請(qǐng)求消 息發(fā)送給存儲(chǔ)服務(wù)器。
步驟S404,存儲(chǔ)服務(wù)器接收讀請(qǐng)求消息,讀取該讀請(qǐng)求消息所訪問(wèn)的數(shù) 據(jù),通過(guò)應(yīng)答消息將數(shù)據(jù)發(fā)送給客戶端。
步驟S404的具體實(shí)施方式
如圖6所示。
步驟S601,判斷讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)是否在存儲(chǔ)服務(wù)器的內(nèi)存中, 如果是,執(zhí)行步驟S603,否則,執(zhí)行步驟S602。
步驟S602,將該讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)從存儲(chǔ)服務(wù)器的磁盤讀到存儲(chǔ) 服務(wù)器的內(nèi)存中。
步驟S603,通過(guò)應(yīng)答消息將讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)從存儲(chǔ)服務(wù)器的內(nèi) 存?zhèn)魉偷娇蛻舳说膬?nèi)存。
步驟S405,存儲(chǔ)服務(wù)器從讀請(qǐng)求消息中解析出訪問(wèn)模式信息,根據(jù)該訪 問(wèn)模式信息管理讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)在服務(wù)器端內(nèi)存中的緩存。
存儲(chǔ)服務(wù)器從讀請(qǐng)求消息中解析客戶端負(fù)載的訪問(wèn)模式類型,如果是順 序訪問(wèn)則將讀請(qǐng)求消息所訪問(wèn)數(shù)據(jù)從存儲(chǔ)服務(wù)器的內(nèi)存中釋放,不在存儲(chǔ)服 務(wù)器上緩存;否則,繼續(xù)在存儲(chǔ)服務(wù)器上緩存該數(shù)據(jù)。
本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書確定的本發(fā)明的精神和范圍的條 件下,還可以對(duì)以上內(nèi)容進(jìn)行各種各樣的修改。因此本發(fā)明的范圍并不僅限 于以上的說(shuō)明,而是由權(quán)利要求書的范圍來(lái)確定的。
權(quán)利要求
1. 一種機(jī)群文件系統(tǒng)中緩存管理的方法,包括客戶端接收應(yīng)用層的文件訪問(wèn)請(qǐng)求,將所述文件訪問(wèn)請(qǐng)求封裝到讀請(qǐng)求消息中,其特征在于,所述方法還包括步驟1,所述客戶端識(shí)別所述讀請(qǐng)求對(duì)應(yīng)的訪問(wèn)模式信息;步驟2,所述客戶端將所述訪問(wèn)模式信息封裝到所述讀請(qǐng)求消息中,將所述讀請(qǐng)求消息發(fā)送給存儲(chǔ)服務(wù)器;步驟3,所述存儲(chǔ)服務(wù)器接收所述讀請(qǐng)求消息,從所述存儲(chǔ)服務(wù)器的磁盤讀取所述讀請(qǐng)求消息要從所述存儲(chǔ)服務(wù)器訪問(wèn)的數(shù)據(jù),通過(guò)應(yīng)答消息將所述數(shù)據(jù)發(fā)送給所述客戶端;步驟4,所述存儲(chǔ)服務(wù)器依據(jù)所述讀請(qǐng)求消息中訪問(wèn)模式信息判斷所述客戶端的訪問(wèn)模式類型是否為順序訪問(wèn),如果是,則將被訪問(wèn)的數(shù)據(jù)從所述存儲(chǔ)服務(wù)器的內(nèi)存中釋放,否則,繼續(xù)緩存被訪問(wèn)的數(shù)據(jù)。
2. 如權(quán)利要求1所述的機(jī)群文件系統(tǒng)中緩存管理的方法,其特征在于, 所述客戶端設(shè)置有順序計(jì)數(shù)器,所述步驟1進(jìn)一步包括步驟21,判斷所述文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的起始位置是否為所述文件 上次被訪問(wèn)的結(jié)束位置,如果是,則將所述順序計(jì)數(shù)器加1,否則,將所述 順序計(jì)數(shù)器清零-,步驟22,判斷所述順序計(jì)數(shù)器是否大于2,如果是,則所述訪問(wèn)類型為 所述順序訪問(wèn),否則,所述訪問(wèn)類型為隨機(jī)訪問(wèn)。
3. 如權(quán)利要求2所述的機(jī)群文件系統(tǒng)中緩存管理的方法,其特征在于, 所述歩驟21和所述步驟22間還包括步驟31,記錄所述文件訪問(wèn)請(qǐng)求對(duì)所述文件訪問(wèn)的起始位置和所述訪問(wèn) 的訪問(wèn)粒度。
4. 如權(quán)利要求3所述的機(jī)群文件系統(tǒng)中緩存管理的方法,其特征在于, 所述步驟21前進(jìn)一步包括,根據(jù)記錄的所述文件上次被訪問(wèn)的起始位置和訪問(wèn)粒度計(jì)算所述文件上次被訪問(wèn)的結(jié)束位置。
5. 如權(quán)利要求4所述的機(jī)群文件系統(tǒng)中緩存管理的方法,其特征在于, 步驟3中讀取所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)進(jìn)一步包括步驟51,判斷所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)是否在所述存儲(chǔ)服務(wù)器的內(nèi) 存中,如果不是,則執(zhí)行步驟52;歩驟52,將所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)從所述存儲(chǔ)服務(wù)器的磁盤讀到所述存儲(chǔ)服務(wù)器的內(nèi)存中。
6. —種機(jī)群文件系統(tǒng)中緩存管理的系統(tǒng),包括具有磁盤的存儲(chǔ)服務(wù)器和 客戶端,所述客戶端包括用于接收應(yīng)用層的文件訪問(wèn)請(qǐng)求并將所述文件訪問(wèn) 請(qǐng)求封裝到讀請(qǐng)求消息中的封裝模塊,其特征在于,所述客戶端還包括訪問(wèn)類型識(shí)別模塊,所述訪問(wèn)類型識(shí)別模塊,用于識(shí)別所述讀請(qǐng)求對(duì)應(yīng)的訪問(wèn)模式信息;所述封裝模塊,還用于將所述訪問(wèn)模式信息封裝到所述讀請(qǐng)求消息中, 將所述讀請(qǐng)求消息發(fā)送給所述存儲(chǔ)服務(wù)器;所述存儲(chǔ)服務(wù)器包括數(shù)據(jù)訪問(wèn)模塊和緩存管理模塊,所述數(shù)據(jù)訪問(wèn)模塊,用于接收所述讀請(qǐng)求消息,從所述磁盤讀取所述讀 請(qǐng)求消息要從所述存儲(chǔ)服務(wù)器訪問(wèn)的數(shù)據(jù),通過(guò)應(yīng)答消息將所述數(shù)據(jù)發(fā)送給所述客戶端;所述緩存管理模塊,用于依據(jù)所述讀請(qǐng)求消息中訪問(wèn)模式信息判斷所述 客戶端的訪問(wèn)模式類型是否為順序訪問(wèn),如果是,則將被訪問(wèn)的數(shù)據(jù)從所述 存儲(chǔ)服務(wù)器的內(nèi)存中釋放,否則,繼續(xù)緩存所述被訪問(wèn)的數(shù)據(jù)。
7. 如權(quán)利要求8所述的機(jī)群文件系統(tǒng)中緩存管理的系統(tǒng),其特征在于, 所述客戶端設(shè)置有順序計(jì)數(shù)器,所述訪問(wèn)類型識(shí)別模塊,進(jìn)一步用于在所述文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的 起始位置為所述文件上次被訪問(wèn)的結(jié)束位置時(shí),將所述順序計(jì)數(shù)器加1,在 所述文件訪問(wèn)請(qǐng)求對(duì)文件訪問(wèn)的起始位置不為所述文件上次被訪問(wèn)的結(jié)束位 置時(shí),將所述順序計(jì)數(shù)器清零;并且判斷所述順序計(jì)數(shù)器是否大于2,如果 是,則確定所述訪問(wèn)類型為順序訪問(wèn),否則,確定所述訪問(wèn)類型為隨機(jī)訪問(wèn)。
8. 如權(quán)利要求7所述的機(jī)群文件系統(tǒng)中緩存管理的系統(tǒng),其特征在于, 所述訪問(wèn)類型識(shí)別模塊還用于記錄所述文件訪問(wèn)請(qǐng)求對(duì)所述文件訪問(wèn)的起始 位置和所述訪問(wèn)的訪問(wèn)粒度。
9. 如權(quán)利要求8所述的機(jī)群文件系統(tǒng)中緩存管理的系統(tǒng),其特征在于, 所述訪問(wèn)類型識(shí)別模塊進(jìn)一步用于根據(jù)記錄的所述文件上次被訪問(wèn)的起始位置和訪問(wèn)粒度計(jì)算所述文件上次被訪問(wèn)的結(jié)束位置。
10.如權(quán)利要求9所述的機(jī)群文件系統(tǒng)中緩存管理的系統(tǒng),其特征在于, 所述數(shù)據(jù)訪問(wèn)模塊進(jìn)一步用于在所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)未在所述存儲(chǔ)服務(wù)器的內(nèi)存中時(shí),將所述讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)從所述存儲(chǔ)服務(wù)器的磁盤讀到所述存儲(chǔ)服務(wù)器的內(nèi)存中。
全文摘要
本發(fā)明涉及一種機(jī)群文件系統(tǒng)中緩存管理的方法及系統(tǒng),方法包括客戶端接收應(yīng)用層的文件訪問(wèn)請(qǐng)求,將文件訪問(wèn)請(qǐng)求封裝到讀請(qǐng)求消息中,還包括步驟1,客戶端識(shí)別讀請(qǐng)求對(duì)應(yīng)的訪問(wèn)模式信息;步驟2,客戶端將訪問(wèn)模式信息封裝到所述讀請(qǐng)求消息中,將該讀請(qǐng)求消息發(fā)送給存儲(chǔ)服務(wù)器;步驟3,存儲(chǔ)服務(wù)器接收讀請(qǐng)求消息,從所述存儲(chǔ)服務(wù)器的磁盤讀取讀請(qǐng)求消息要從所述存儲(chǔ)服務(wù)器訪問(wèn)的數(shù)據(jù),通過(guò)應(yīng)答消息將該數(shù)據(jù)發(fā)送給客戶端;步驟4,存儲(chǔ)服務(wù)器從讀請(qǐng)求消息中解析出訪問(wèn)模式信息,根據(jù)訪問(wèn)模式信息管理讀請(qǐng)求消息所訪問(wèn)的數(shù)據(jù)在服務(wù)器端內(nèi)存中的緩存。從而,提高存儲(chǔ)服務(wù)器端緩存命中率,并避免順序預(yù)取數(shù)據(jù)在各級(jí)內(nèi)存中重復(fù)緩存。
文檔編號(hào)G06F17/30GK101377788SQ200810223489
公開日2009年3月4日 申請(qǐng)日期2008年9月28日 優(yōu)先權(quán)日2008年9月28日
發(fā)明者岳 劉, 勁 熊 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所