專利名稱:基于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器的分布式Cache系統(tǒng)及其工作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到Cache技術(shù),特別涉及到分布式Cache策略中動態(tài)流水線網(wǎng)絡(luò)服務(wù)器中分布式Cache系統(tǒng)及其工作方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,單個機(jī)器上的內(nèi)存已經(jīng)越來越不能夠滿足請求的內(nèi)存需求,特別是對Cache而言,內(nèi)存空間嚴(yán)重不足。在這種情況下,基于分布式的Cache策略成為了 Cache的主流,這樣,更多的用戶都可以訪問存儲于地理分布的站點(diǎn)上的大量信息。對于分布式Cache,申請?zhí)枮椤?00810174890. 2”的專利申請文件中提出了一種基于CACHE的數(shù)據(jù)處理系統(tǒng)及其方法,該發(fā)明揭示了一種基于CACHE的數(shù)據(jù)處理系統(tǒng),至少具有CACHE客戶端;分布式CACHE服務(wù)器,用于接收客戶端的數(shù)據(jù)請求并在CACHE數(shù)據(jù)存儲裝置中查詢CACHE數(shù)據(jù);CACHE數(shù)據(jù)存儲裝置;以及數(shù)據(jù)源,用于保存數(shù)據(jù)。該發(fā)明也揭示了一種數(shù)據(jù)處理方法,該方法包括=CACHE客戶端接收數(shù)據(jù)請求并轉(zhuǎn)發(fā)至分布式CACHE服務(wù)器;該分布式CACHE服務(wù)器查詢數(shù)據(jù),若CACHE命中,則將數(shù)據(jù)返回至CACHE客戶端;若 CACHE未命中,則CACHE客戶端向數(shù)據(jù)源發(fā)送請求。采用該發(fā)明的系統(tǒng)及其方法,不僅配有 CACHE數(shù)據(jù)存儲裝置以將海量的CACHE數(shù)據(jù)分布到多臺CACHE數(shù)據(jù)中心,而且為CACHE列表類數(shù)據(jù)提供了優(yōu)化的算法,大大提高了 CACHE命中率。此外,該系統(tǒng)可以實(shí)時更新CACHE數(shù)據(jù)。而對于本發(fā)明而言,本發(fā)明是針對基于虛擬化技術(shù)的流水線服務(wù)器專用Cache,更加的細(xì)粒度,因而有更好的性能。此夕卜,在“JHANGS T, JHON C S, KffAK J W, HAN S Y, Multi-processor system of multi-cache structure including remote cache and remote-cache replacement
method thereof, KR2006037505-A ;KR617875-B1”專利中也提到了一種分布式 cache-包
括遠(yuǎn)程cache和遠(yuǎn)程替換方法的多cache結(jié)構(gòu)的多處理器系統(tǒng),其中cache文件也采用分布式存儲。該發(fā)明中,文件存儲到各個操作節(jié)點(diǎn),形成一個全局地址空間,對存儲在遠(yuǎn)程的 cache文件而言,本地有一個可以查到遠(yuǎn)程信息的查找表,可將遠(yuǎn)程cache看作本地cache 的L2CaChe。當(dāng)文件不在本地時,由應(yīng)用層通過查找表獲取遠(yuǎn)程文件信息。而本發(fā)明中,三級流水級分別作為不同的Cache層次,后一級流水級作為前一級流水級的L2Cache,這樣形成全局多級Cache機(jī)制。并且在某一級沒有在Cache中找到對應(yīng)文件時,不是從遠(yuǎn)程機(jī)器中將文件調(diào)回本地,而是繼續(xù)進(jìn)行HTTP處理邏輯到下一流水級進(jìn)行相應(yīng)的請求處理和Cache 查詢工作。該方案與常規(guī)的Cache實(shí)現(xiàn)基本一致,本發(fā)明采用了多級Cache的思想,并且考慮了數(shù)據(jù)訪問的2/8效應(yīng),減少了 Cache的內(nèi)存開銷,而性能卻不受影響。"HAGERSTEN E, HARIDI S, WARREN DHD, WARREN D H, Multiprocessor system with hierarchical cache memory system-has bus controllers which manage data items and move them to different memories as required, W09000283-A1; EP424432-A1 ;W09000283-A ;SE461813-B ;EP424432-A ; JP3505793-W ;EP424432-B1 ;DE68928454-E,US7509391-B”專利中提到了一種分層次的cache。該發(fā)明中采用層次化結(jié)構(gòu),數(shù)據(jù)的移動和復(fù)制等可以通過同級總線來進(jìn)行。總線連接配置相似的處理器、cache內(nèi)存或者控制器。數(shù)據(jù)可通過總線進(jìn)行移植、復(fù)制和替換。而本發(fā)明中,系統(tǒng)中查找Cache的時機(jī)是由請求到達(dá)時機(jī)決定的,并且層次化是整個系統(tǒng)的三個Cache等級層次,其間的數(shù)據(jù)傳遞采用TCP/IP協(xié)議,與該發(fā)明中的層次通過總線傳輸是不同的概念。
“CHAUVEL G, DINVERNO DBJ, LASSERRE S, Multi-processor processing system, has external shared memory to be accessed by set of multi-processor units with respective dedicated memory management unit for translating virtual memory address to physical memory addresses,,專利中提到了一禾中全局 cache。該系統(tǒng)中有一個額外的共享內(nèi)存,該內(nèi)存可以被一系列的多核單元通過各自專屬的內(nèi)存管理單元來訪問,這些內(nèi)存管理單元翻譯虛擬內(nèi)存地址,這些虛擬地址被多核處理器單元內(nèi)部利用來通過訪問共享內(nèi)存中的地址,從而訪問到與之相關(guān)的物理內(nèi)存地址。一個全局統(tǒng)一的內(nèi)存管理系統(tǒng)將共享內(nèi)存分配給一系列的執(zhí)行在多核處理器單元上的任務(wù),從向給這些任務(wù)分配共享內(nèi)存區(qū)域,這些內(nèi)存區(qū)域從共享內(nèi)存的地址空間中分隔。該系統(tǒng)允許獨(dú)立的應(yīng)用程序來查看分配的內(nèi)存,無需擔(dān)心影響系統(tǒng)中正在運(yùn)行的應(yīng)用,并且能夠使外部存儲器靈活分配。該系統(tǒng)可以共享的內(nèi)存空間,以有效地控制了數(shù)字信號處理器,協(xié)處理器和加工單元操作。該系統(tǒng)主要是針對多核系統(tǒng)提出的共享內(nèi)存機(jī)制,而本發(fā)明中提出的全局Cache, 是針對一個包含多個虛擬機(jī)的網(wǎng)路服務(wù)器系統(tǒng)提出的,其中維護(hù)全局一致性的模塊是網(wǎng)絡(luò)服務(wù)器控制器(Web Server Controller,簡稱“WSC”),但該模塊不作為共享內(nèi)存單元。"HOOVER R D, WILLIS J C, BALDUS D F, ZIEGLER F J, LIU L, Multiprocessor data processing system with local cache storage with global control unit-has multiple processors with private cache and shared memory space for records and interconnection system and coherency controller tracking owned records, EP640923-A ;EP640923-A1 ;US5604882-A”專利中提到了一種全局cache。多核處理器包含多個處理單元,每個處理單元中有一個本地私有cache。第一個全局存儲控制單元為多個處理單元的訪問提供一個共享存儲空間來存儲多個記錄。這些處理單元和全局控制單元之間的一個連接系統(tǒng)為這些處理單元和控制單元之間提供數(shù)據(jù)和同步通信。全局存儲控制單元里的一致性控制器跟蹤每個處理單元中本地cache中的每個實(shí)例。空的通知從處理單元傳到全局存儲控制單元,確定從本地cache中清除實(shí)例。該發(fā)明可以最小化多處理器的互聯(lián)系統(tǒng)中的一致性交互,從而提高性能。該發(fā)明中主要是針對多核處理器,該系統(tǒng)中有一個全局存儲控制單元,該全局存儲控制單元為多個處理單元的訪問提供一個共享存儲空間來存儲多個記錄。而在本發(fā)明中,其維護(hù)全局一致性的WSC除了網(wǎng)絡(luò)服務(wù)器本身所需的維護(hù)虛擬機(jī)信息外,還起到了維護(hù)Cache —致性的作用,但不用于存儲訪問記錄。"D0UG B, SANJEEV K, HARRY C L, JASON S, PETER V, Finding a Needle in Haystack :Facebook' s Photo Storage, The proceeding of 9th Usenix Symposium on Operating Systems Design and Implementation, 2010.,,論文中描述了 Haystack系統(tǒng),一種為Facebook照片應(yīng)用優(yōu)化的基于對象的存儲系統(tǒng)。Facebook目前存儲了超過2600億張照片(相當(dāng)于20petabyteS),而每周用戶還在上傳超過一百萬張照片。為此,Haystack 能夠在主存中實(shí)現(xiàn)對全部元數(shù)據(jù)的操作而大為降低系統(tǒng)對慢速而代價昂貴的磁盤的訪問。Haystack的體現(xiàn)結(jié)構(gòu)如圖1所示,它與本發(fā)明圖3提出的網(wǎng)絡(luò)服務(wù)器體系結(jié)構(gòu)非常相似。但是Haystack沒有實(shí)現(xiàn)基于虛擬機(jī)的多級HTTP流水線機(jī)制,其Cache機(jī)制僅處理元數(shù)據(jù),而沒有實(shí)現(xiàn)分布式數(shù)據(jù)存儲,沒有實(shí)現(xiàn)目錄和Cache的統(tǒng)一,不能通過Cache來優(yōu)化Haystack store.而本發(fā)明恰好能夠解決這些問題。 "JEREMY S, YAIR S, IRENE Ζ, XAVID P, JINYANG L, Μ. FRANS K, ROBERT Μ, Flexible,Wide-Area Storage for Distributed Systems with WheelFS,The proceedings of 6th USENIX Symposium on Networked Systems Design and Implementation,2009. ”論文中描述了一個廣域分布式存儲系統(tǒng)WheelFS,它可用于幫助多站點(diǎn)應(yīng)用程序共享數(shù)據(jù),并且進(jìn)行容錯。WheelFS采用具有POSIX接口的分布式文件系統(tǒng)。它允許應(yīng)用程序調(diào)整其它站點(diǎn)的即時可見更新和在失敗或長延遲下站點(diǎn)獨(dú)立運(yùn)作的能力二者之間的權(quán)衡。WheelFS允許通過語義線索進(jìn)行這些調(diào)整,這就提供了應(yīng)用控制的一致性、故障處理以及文件和副本的部署。WheelFS作為一個用戶級的文件系統(tǒng)實(shí)現(xiàn)。三個應(yīng)用程序(一個分布式Web cache, 一個郵件服務(wù)和一個大文件分布)表明,通過允許現(xiàn)有的軟件重用,WheelFS文件系統(tǒng)接口簡化了分布式應(yīng)用程序的構(gòu)建。其中,分布式Web cache的主要目標(biāo)是減少原始服務(wù)器對熱門頁面的訪問負(fù)載。每個參與的站點(diǎn)運(yùn)行Web代理和一個分布式存儲系統(tǒng)的一部分。當(dāng) Web代理接收到來自瀏覽器的請求時,首先檢查存儲系統(tǒng)中是否有該請求對應(yīng)網(wǎng)頁的副本。 如果有,則代理從存儲系統(tǒng)(有可能在其它站點(diǎn)上)中讀出這個頁面并返回給瀏覽器。否貝U,代理從原始的Web server上獲取該頁面,并將它的一個副本插入到存儲系統(tǒng)中(這樣其它代理也能找到),然后再發(fā)送給瀏覽器。其中,代理對數(shù)據(jù)的響應(yīng)要非???。該存儲系統(tǒng)無需保持一致性,只要保證能找到文件的最新存儲版本即可,因?yàn)镠TTP頭允許代理評估緩存的副本是否有效。在這個系統(tǒng)的Web cache中,雖然進(jìn)行了分布式Cache存儲,但是它沒有實(shí)現(xiàn)基于虛擬機(jī)的多級HTTP流水線機(jī)制,并且即使在同一存儲系統(tǒng)中,遠(yuǎn)程讀取的概率也較大,此外在Cache —致性上也存在不足?!癈HENTA0 W, XUBIN H, QIANG C, CHANGSHENG X, Hint-K :An Efficient Multi-level Cache Using K—step Hints, Proceedings of the 39th International Conference on Parallel Processing(ICPP),September 13-16,2010, San Diego, CA, USA.,,論文中提出了一種新型多級cache,它采用K步提示機(jī)制來提高分布式系統(tǒng)中的I/ 0性能。其基本思路是,基于某block的前K步升級或降級操作,對其block從低層到更高層升級,或者反之降級,稱之為K步提示。該機(jī)制在不同的1/0工作量下,都比現(xiàn)有的多級 cache機(jī)制具有更好的性能表現(xiàn)。在該系統(tǒng)的設(shè)計目的是,從應(yīng)用程序的視角,通過將更多活躍的數(shù)據(jù)放在離應(yīng)用程序更近的層次(即更高一層)上,來提高整體的cache性能。該論文中提出了一個多級cache管理機(jī)制,它在該block前K步信息的基礎(chǔ)上,決定給一個data block升級還是降級,但是這個方式依賴于特定的應(yīng)用模式,其對block位置的放置不適合 Web server對HTTP請求處理邏輯的劃分,并且在虛擬化技術(shù)的使用上也存在不足。隨著云計算的發(fā)展,虛擬技術(shù)被運(yùn)用得越來越廣泛,上述機(jī)制都沒有考慮到在虛擬化技術(shù)基礎(chǔ)之上的Cache系統(tǒng)及實(shí)現(xiàn)方法。此外,網(wǎng)絡(luò)服務(wù)器經(jīng)歷了從多進(jìn)程模式、多線程模式、單進(jìn)程事件驅(qū)動模式、多進(jìn)程異步事件驅(qū)動模式、流水線模式的發(fā)展,結(jié)合分布式系統(tǒng)的應(yīng)用,如何充分利用虛擬化技術(shù)的有效隔離優(yōu)勢,有必要在如圖2所示的分布式流水線網(wǎng)絡(luò)服務(wù)器系統(tǒng)(Multi-Virtual-Machine Dynamic-Pipeline,簡稱MVMDP)中實(shí)現(xiàn)全分布式cache系統(tǒng),解決上述工作中存在的不足之處。 圖2為現(xiàn)有MVMDP的整體結(jié)構(gòu)圖。MVMDP將HTTP處理邏輯分為三個階段接受連接和讀請求、解析文件路徑、讀文件三個階段,分別稱為PhaSel、PhaSe2和Phase3,每個Phase 分別包裝到不同的虛擬機(jī)上執(zhí)行,每個Phase可能對應(yīng)多個虛擬機(jī)。每個Phase處理HTTP 處理的一個邏輯,各個Phase構(gòu)成HTTP處理邏輯的業(yè)務(wù)流水。同時,將每一個Phase放在一個單獨(dú)的執(zhí)行實(shí)體里面來執(zhí)行,這里的“執(zhí)行實(shí)體”就是虛擬機(jī)(Virtual Machine,簡稱 “VM”)。Phase和VM捆綁在一起構(gòu)成一個流水級,三個階段的流水級共同構(gòu)成一條完整的業(yè)務(wù)流水線。MVMDP中具有多條業(yè)務(wù)流水線。通過上述機(jī)制,使HTTP各處理邏輯脫離了傳統(tǒng)結(jié)構(gòu)中的緊耦合關(guān)系,而處于一種松耦合關(guān)系。每個流水級由虛擬機(jī)(運(yùn)行精簡的Linux 操作系統(tǒng))和運(yùn)行于其上的流水級服務(wù)程序構(gòu)成,虛擬化技術(shù)提供了流水級之間可靠的隔離以及流水級之間的能力流動。業(yè)務(wù)流水線負(fù)責(zé)HTTP請求的處理,HTTP請求從接入點(diǎn)進(jìn)入系統(tǒng)后在多條流水線上被處理,最后以HTTP響應(yīng)的形式從流水線發(fā)回客戶端Client。流水線被劃分成若干階段,每一階段專門處理一類HTTP處理邏輯(如接受連接、接收請求、解析請求、查詢cache、 讀取數(shù)據(jù)、發(fā)送數(shù)據(jù)等),被稱作流水級。在流水線內(nèi)部,每個流水級從前一級接收請求(第一流水級從Client接收請求),在本級完成處理后,按照調(diào)度策略選擇下一階段的流水級將HTTP請求發(fā)送出去。HTTP請求按照這種方式在流水線上流動,并最終完成處理。MVMDP 中實(shí)現(xiàn)了動態(tài)流水線結(jié)構(gòu),可以實(shí)現(xiàn)HTTP請求跨流水線的流動。具體而言,MVMDP網(wǎng)絡(luò)服務(wù)器主要由三部分構(gòu)成虛擬云計算平臺用于提供分布資源如CPU、內(nèi)存、磁盤、網(wǎng)卡等部件的虛擬化,建立統(tǒng)一的資源空間,創(chuàng)建和管理虛擬機(jī),從而實(shí)現(xiàn)計算資源在部件級的虛擬化,進(jìn)而實(shí)現(xiàn)資源和能力在虛擬機(jī)間的流動,在服務(wù)器內(nèi)的流動。對于網(wǎng)絡(luò)服務(wù)器系統(tǒng)而言是提供各流水級虛擬機(jī)以及提供虛擬機(jī)相關(guān)信息的接口。網(wǎng)絡(luò)服務(wù)器控制器WSC利用這些接口重啟虛擬機(jī),獲取虛擬機(jī)等等。網(wǎng)絡(luò)服務(wù)器控制器WSC 整個流水線Web Server系統(tǒng)的管理器,包括動態(tài)流水線策略的實(shí)現(xiàn)、系統(tǒng)可靠性等。具體來說,它負(fù)責(zé)接收虛擬機(jī)的啟動和可用信息,檢測虛擬機(jī)故障,維護(hù)可用的虛擬機(jī)列表;根據(jù)虛擬機(jī)發(fā)來的請求下一級流水線的請求,運(yùn)用調(diào)度策略,選擇可用的下一級虛擬機(jī),將其返回給請求的虛擬機(jī);收集來自第三流水級的熱點(diǎn)文件信息并廣播給所有第一流水級,維護(hù)Cache —致性。虛擬機(jī)(Virtual Machine,簡稱“VM”)其主要作用是業(yè)務(wù)流水線的執(zhí)行,連接可靠性的管理。具體來說,每個虛擬機(jī)實(shí)現(xiàn)的功能主要有兩個,一個是正常的流水線業(yè)務(wù)邏輯,執(zhí)行請求處理的一部分,另一個是基于流水線ACK機(jī)制的可靠性相關(guān)保證。其中,對于選擇下一個流水級,以及對于可靠性部分的保障,都要與WSC中的相關(guān)模塊交互。此外,它還要定期向WSC發(fā)送heartbeat消息,以表明自己可用。
發(fā)明內(nèi)容
本發(fā)明的一目的在于提供一種基于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器的分布式Cache系統(tǒng)及其工作方法,用于解決現(xiàn)有技術(shù)無法實(shí)現(xiàn)同級流水級Cache —致性以及流水級間數(shù)據(jù)傳輸?shù)难訒r的問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器中分布式 Cache系統(tǒng),動態(tài)流水線網(wǎng)絡(luò)服務(wù)器包括網(wǎng)絡(luò)服務(wù)器控制器、虛擬機(jī)、虛擬云計算平臺,其特征在于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器將HTTP處理邏輯分為第一流水級、第二流水級、第三流水級,并分別包裝在不同的虛擬機(jī)中運(yùn)行,每個流水級有對應(yīng)的Cache,下一流水級的Cache 為上一流水級的后備Cache,用于緩存上一流水級被替換出的文件;本流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP請求進(jìn)行Cache查詢,若該 HTTP請求的文件在本流水級的Cache中,則返回HTTP響應(yīng)給客戶端,否則進(jìn)行本流水級的 HTTP處理邏輯,并在處理結(jié)束后通過調(diào)度策略將該HTTP請求發(fā)送到下一級流水級處理。所述的分布式Cache系統(tǒng),其中,當(dāng)本流水級為第一流水級時,第一流水級接收客戶端發(fā)送的HTTP請求,并對該 HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在第一流水級的Cache中,則返回HTTP響應(yīng)給客戶端,若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該HTTP請求發(fā)送到第二流水級處理。所述的分布式Cache系統(tǒng),其中,當(dāng)本流水級為第二流水級時,第二流水級接收客戶端發(fā)送的HTTP請求,并對該 HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在第二流水級的Cache中,則通過第一流水級返回HTTP響應(yīng)給客戶端;若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該HTTP請求發(fā)送到第三流水級處理。所述的分布式Cache系統(tǒng),其中,當(dāng)本流水級為第三流水級時,第三流水級接收客戶端發(fā)送的HTTP請求,并對該 HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在第三流水級的Cache中,則通過第一流水級返回HTTP響應(yīng)給客戶端;若不在,則從磁盤中讀取該HTTP請求的文件到,并通過第一流水級返回HTTP響應(yīng)給客戶端。所述的分布式Cache系統(tǒng),其中,該網(wǎng)絡(luò)服務(wù)器控制器還用于對同一流水級的虛擬機(jī)中的Cache信息維護(hù)一致。所述的分布式Cache系統(tǒng),其中,該第三流水級統(tǒng)計該HTTP請求的文件的訪問頻率得到熱點(diǎn)文件,并將該熱點(diǎn)文件的文件路徑和文件內(nèi)容發(fā)送給該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器將該熱點(diǎn)文件的文件路徑和文件內(nèi)容廣播給該第一流水級。所述的分布式Cache系統(tǒng),其中,該第一流水級還用于維護(hù)熱點(diǎn)文件的相關(guān)信息,且第一流水級的Cache采用的替換策略為LRU ;當(dāng)?shù)谝涣魉壍腃ache從該網(wǎng)絡(luò)服務(wù)器控制接收到信息后,若該第一流水級的 Cache已飽和,則通過LRU替換策略將該熱點(diǎn)文件替換出的文件放入第二流水級的Cache 中。所述的分布式Cache系統(tǒng),其中,該第三流水級中還設(shè)置一本地文件Cache系統(tǒng),該本地文件Cache系統(tǒng)由元數(shù)據(jù) Cache和文件內(nèi)容Cache組成,該元數(shù)據(jù)Cache以Hash表的形式組織,用于存儲文件名、文件大小、修改時間、引用計數(shù)和塊計數(shù),該文件內(nèi)容Cache以Chunk的方式組織,用于存儲文件內(nèi)容。所述的分布式Cache系統(tǒng),其中,該第三流水級中還設(shè)置一時鐘、一閾值;該第三流水級當(dāng)該時鐘每經(jīng)一固定的時間間隔,將所有文件的訪問計數(shù)減一,并當(dāng)文件的訪問頻率超過該閾值時將對應(yīng)文件的文件路徑和文件內(nèi)容發(fā)送至該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器周期性地將該對應(yīng)文件廣播給該第一流水級,該第一流水級接收該對應(yīng)文件并更新本地的對應(yīng)文件訪問信息列表。
為了實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種基于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器的分布式 Cache系統(tǒng)的工作方法,其特征在于,包括步驟一,由動態(tài)流水線網(wǎng)絡(luò)服務(wù)器將HTTP處理邏輯分為第一流水級、第二流水級、第三流水級,并分別包裝在不同的虛擬機(jī)中運(yùn)行,每個流水級有對應(yīng)的Cache,下一流水級的Cache為上一流水級的后備Cache,用于緩存上一流水級被替換出的文件;步驟二,本流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在本流水級的Cache中,則返回HTTP響應(yīng)給客戶端,否則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后通過調(diào)度策略將該HTTP請求發(fā)送到下一級流水級處理。所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括當(dāng)本流水級為第一流水級時,該第一流水級接收客戶端發(fā)送的HTTP請求,并對該 HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在該第一流水級的Cache中,則直接返回 HTTP響應(yīng)給客戶端,若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該HTTP 請求發(fā)送到該第二流水級處理。所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括當(dāng)本流水級為第二流水級時,該第二流水級接收客戶端發(fā)送的HTTP請求,并對該 HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在該第二流水級的Cache中,則通過第一流水級返回HTTP響應(yīng)給客戶端;若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該HTTP請求發(fā)送到該第三流水級處理。所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括當(dāng)本流水級為第三流水級時,該第三流水級接收客戶端發(fā)送的HTTP請求,并對該 HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在該第三流水級的Cache中,則通過該第一流水級返回HTTP響應(yīng)給客戶端;若不在,則從磁盤中讀取該HTTP請求的文件到該第三流水級的Cache中,并通過該第一流水級返回HTTP響應(yīng)給客戶端。所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括通過該網(wǎng)絡(luò)服務(wù)器控制器對同一流水級的虛擬機(jī)中的Cache信息維護(hù)一致。
所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括該第三流水級統(tǒng)計該HTTP請求的文件的訪問頻率得到熱點(diǎn)文件,并將該熱點(diǎn)文件的文件路徑和文件內(nèi)容發(fā)送給該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器將該熱點(diǎn)文件的文件路徑和文件內(nèi)容廣播給該第一流水級。所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括
該第一流水級還用于維護(hù)熱點(diǎn)文件的相關(guān)信息,且該第一流水級的Cache采用的替換策略為LRU ;當(dāng)該第一流水級的Cache從該網(wǎng)絡(luò)服務(wù)器控制接收到信息后,若該第一流水級的 Cache已飽和,則通過LRU替換策略將該熱點(diǎn)文件替換出的文件放入該第二流水級的Cache 中。 所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括在該第三流水級中還設(shè)置一本地文件Cache系統(tǒng),該本地文件Cache系統(tǒng)由元數(shù)據(jù)Cache和文件內(nèi)容Cache組成,該元數(shù)據(jù)Cache以Hash表的形式組織,用于存儲文件名、 文件大小、修改時間、引用計數(shù)和塊計數(shù),該文件內(nèi)容Cache以Chunk的方式組織,用于存儲文件內(nèi)容。所述的分布式Cache系統(tǒng)的工作方法,其中,所述步驟二中,還包括在該第三流水級中設(shè)置一時鐘、一閾值;該第三流水級當(dāng)該時鐘每經(jīng)一固定的時間間隔,將所有文件的訪問計數(shù)減一,并當(dāng)文件的訪問頻率超過該閾值時將對應(yīng)文件的文件路徑和文件內(nèi)容發(fā)送至該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器周期性地將該對應(yīng)文件廣播給該第一流水級,該第一流水級接收該對應(yīng)文件并更新本地的對應(yīng)文件訪問信息列表。本發(fā)明的有益技術(shù)效果與現(xiàn)有技術(shù)相比,本發(fā)明依托MVMDP的高吞吐量和高可靠性的優(yōu)勢,充分利用虛擬化技術(shù)的有效隔離優(yōu)勢,提出了一個動態(tài)流水線網(wǎng)絡(luò)服務(wù)器中的Cache系統(tǒng)及其工作方法,并利用WSC解決了同級流水級Cache —致性的問題,該方法能夠盡可能多地減少流水級間數(shù)據(jù)傳遞傳輸造成的延時,盡量多地在全局Cache系統(tǒng)中存放熱點(diǎn)文件,從而提高響應(yīng)速率。
圖1是現(xiàn)有Haystack的體現(xiàn)結(jié)構(gòu)圖;圖2是現(xiàn)有MVMDP的整體結(jié)構(gòu)圖;圖3是本發(fā)明基于MVMDP的全局分布式Cache系統(tǒng)結(jié)構(gòu)圖;圖4是本發(fā)明基于MVMDP的全局分布式Cache系統(tǒng)的Cache替換機(jī)制。
具體實(shí)施例方式以下結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的限定。如圖3所示,為本發(fā)明基于MVMDP的全局分布式Cache系統(tǒng)結(jié)構(gòu)圖。該全局分布式Cache系統(tǒng)結(jié)構(gòu)中,包括網(wǎng)絡(luò)服務(wù)器控制器WSC、虛擬機(jī)VM、虛擬云計算平臺。在基于虛擬技術(shù)的動態(tài)流水線網(wǎng)絡(luò)服務(wù)器MVMDP的基礎(chǔ)之上,構(gòu)建一個全局分布式Cache。MVMDP將HTTP處理邏輯分為三個階段,成為三個流水級,分別包裝在不同的虛擬機(jī)中運(yùn)行,三個流水級構(gòu)成一條完整的業(yè)務(wù)流水線,每個流水級可以有多個不同的虛擬機(jī)。 在三級流水級中,每個流水級都有其自身的Cache,第二流水級的Cache是第一流水級的 L2Cache (相當(dāng)于后備Cache,用于存儲上一流水級被替換掉的文件)。下一流水級的Cache作為上一流水級Cache的后備,用于緩存上一流水級被替換掉的文件。也就是說,三個流水級的Cache組成一個全局協(xié)作的Cache策略。上一流水級的Cache緩存更活躍的文件,確保熱點(diǎn)文件的快速響應(yīng)。當(dāng)HTTP請求進(jìn)入系統(tǒng)后,首先在本流水級(可以是第一流水級、第二流水級或第三流水級)進(jìn)行Cache查詢,如果HTTP請求的文件在該流水級的Cache中,則直接返回HTTP 響應(yīng)給客戶端,否則進(jìn)行正常的本流水級處理邏輯,處理結(jié)束后通過調(diào)度策略將請求發(fā)送到下一流水級處理。虛擬云計算平臺,用于提供分布資源(如CPU、內(nèi)存、磁盤、網(wǎng)卡等部件)的虛擬化, 建立統(tǒng)一的資源空間,創(chuàng)建和管理虛擬機(jī),從而實(shí)現(xiàn)計算資源在部件級的虛擬化,進(jìn)而實(shí)現(xiàn)資源和能力在虛擬機(jī)間的流動,在服務(wù)器內(nèi)的流動。對于網(wǎng)絡(luò)服務(wù)器系統(tǒng)而言,虛擬云計算平臺是提供各流水級虛擬機(jī)以及提供虛擬機(jī)相關(guān)信息的接口。網(wǎng)絡(luò)服務(wù)器控制器WSC利用這些接口控制虛擬機(jī)。但是,網(wǎng)絡(luò)服務(wù)器控制器WSC并不依賴于特定虛擬云計算平臺,只要具備虛擬化控制接口即可。在Cache系統(tǒng)中,同一流水級的虛擬機(jī)中維護(hù)的Cache信息一致,其一致性維護(hù)由 MVMDP中的網(wǎng)絡(luò)服務(wù)器控制器WSC進(jìn)行,WSC除了維護(hù)系統(tǒng)中的虛擬機(jī)信息外,還負(fù)責(zé)全局分布式Cache —致性的維護(hù)。其中,第三流水級統(tǒng)計文件的訪問頻率,并定期將熱點(diǎn)文件的文件路徑和文件內(nèi)容發(fā)送給WSC,WSC定期將其廣播給第一流水級。第一流水級維護(hù)熱點(diǎn)文件的相關(guān)信息,其中的Cache替換策略為LRU,其被替換出的文件放入第二流水級的Cache 中。對進(jìn)入系統(tǒng)的HTTP請求,采用如上結(jié)構(gòu)進(jìn)行的具體實(shí)施過程如下步驟1,首先在Phasel查詢該進(jìn)入系統(tǒng)的請求是否在Phasel自身的Cache中,如果在,則直接向客戶端返回響應(yīng),否則進(jìn)入步驟2 ;步驟2,在Phasel解析URL并進(jìn)入Phase2,在Phase2查詢該進(jìn)入系統(tǒng)的請求是否在Phase2自身的Cache中,如果在,則通過Phasel向客戶端返回響應(yīng)(只有Phasel才具有到客戶端的socket),否則進(jìn)入步驟3 ;步驟3,在Phase2解析文件路徑并進(jìn)入Phase3,在Phase3中查詢該進(jìn)入系統(tǒng)的請求是否在Phase3自身的Cache中,如果在,則通過Phasel向客戶端返回響應(yīng),否則進(jìn)入步驟4;步驟4,從磁盤中讀出文件到Cache中,再通過Phasel向客戶端返回響應(yīng)。如圖4所示,為本發(fā)明基于MVMDP的全局分布式Cache系統(tǒng)的Cache替換機(jī)制。對Phase3而言,Phase3的HTTP處理邏輯主要是從磁盤讀取文件。為了減少頻繁的磁盤I/O操作,Phase3中有一個本地文件Cache系統(tǒng)。這個Cache系統(tǒng)由元數(shù)據(jù)Cache 和文件內(nèi)容Cache組成。其中,元數(shù)據(jù)Cache存儲文件名、文件大小、修改時間、引用計數(shù)和塊計數(shù)。元數(shù)據(jù) Cache以Hash表的形式組織,每一個entry (Hash表中的一個表項(xiàng))對應(yīng)一個文件。當(dāng)一個新的文件被訪問時,則根據(jù)該文件的相應(yīng)屬性生成一個新的entry并加入Hash表中。當(dāng)文件對應(yīng)的引用計數(shù)為零時,將該entry替換掉。其中,文件內(nèi)容Cache存儲具體的文件內(nèi)容,它以Chunk的方式組織,同一個文件可能擁有多個Chunk。根據(jù)元數(shù)據(jù)Cache中entry對文件的描述結(jié)構(gòu)體,本發(fā)明可以找到文件對應(yīng)的Chunk。Chunk采用LRU替換策略替換,組織一個LRU鏈表,每當(dāng)訪問一個文件時,先進(jìn)行加鎖操作(把Chunk從LRU鏈表中拿掉),再進(jìn)行解鎖操作(把Chunk重新加到 LRU鏈表的頭),當(dāng)需要替換Chunk的時候,從LRU鏈表的尾部摘下一個Chunk,用于描述替換過程。 對Phasel而言,Phasel維護(hù)Phase3提供的熱點(diǎn)文件訪問信息列表。該列表記錄元數(shù)據(jù)Cache中每個文件的文件路徑和文件內(nèi)容。在Phase3中,對每個文件設(shè)定一個統(tǒng)計其訪問頻率的變量,稱為訪問計數(shù)。某文件每被訪問一次,則其訪問計數(shù)加一。在Phase3中有一個時鐘,每經(jīng)過一個固定的時間間隔(如一秒),則將所有文件的訪問計數(shù)減一。本發(fā)明為文件的訪問頻率設(shè)定一個閾值,Phase3定時將訪問頻率超過閾值的文件(熱點(diǎn)文件) 所對應(yīng)的文件路徑和文件內(nèi)容發(fā)送給WSC。WSC周期性地將這些熱點(diǎn)文件的信息廣播給系統(tǒng)中所有的PhaSel,PhaSel據(jù)此更新本地的熱點(diǎn)文件訪問信息列表。當(dāng)一個新的請求到達(dá)時,Phasel解析出其文件路徑,并據(jù)此查看請求對應(yīng)的文件是否在熱點(diǎn)文件訪問信息列表中,如圖3的請求處理步驟所示。Phasel中的Cache系統(tǒng)采用LRU替換機(jī)制,當(dāng)收到WSC的新信息后,如果Phasel 的Cache系統(tǒng)已經(jīng)飽和,則采用LRU替換策略,將替換出的文件發(fā)送給Phase2的Cache系統(tǒng)。本發(fā)明提供了一種基于虛擬化技術(shù)的動態(tài)流水線網(wǎng)絡(luò)服務(wù)器中分布式Cache的方法及系統(tǒng),解決了上述現(xiàn)有技術(shù)中的虛擬化環(huán)境下分布式系統(tǒng)Cache策略方面的不足。本發(fā)明在基于虛擬技術(shù)的動態(tài)流水線網(wǎng)絡(luò)服務(wù)器MVMDP的基礎(chǔ)之上,構(gòu)建一個全局分布式Cache。MVMDP將HTTP處理邏輯分為三個階段,成為三個流水級,分別包裝在不同的虛擬機(jī)中運(yùn)行,三個流水級構(gòu)成一條完整的業(yè)務(wù)流水線,每個流水級可以有多個不同的虛擬機(jī)。在三級流水級中,每個流水級都有其自身的Cache,第二流水級是第一流水級的L2Cache ;以MVMDP為依托,充分利用虛擬化技術(shù)的有效隔離的優(yōu)勢,建立了一個全局 Cache,使得請求查找Cache不再限制在第三流水級,從而加快Cache查詢速度和請求響應(yīng)速率。本發(fā)明當(dāng)請求進(jìn)入系統(tǒng)后,首先在本流水級進(jìn)行Cache查詢,如果請求的文件在該流水級的Cache中,則直接返回響應(yīng)給客戶端,否則進(jìn)行正常的本流水級處理邏輯,處理結(jié)束后通過調(diào)度策略將請求發(fā)送到下一流水級處理;因此對于經(jīng)常被訪問的熱點(diǎn)文件,可以盡快返回響應(yīng),無需經(jīng)過完整的三個流水級,從而減少流水級間數(shù)據(jù)傳輸產(chǎn)生的延遲,提高響應(yīng)速率。本發(fā)明在該Cache系統(tǒng)中,同一流水級的虛擬機(jī)中維護(hù)的Cache信息一致,其一致性維護(hù)由MVMDP中的WSC進(jìn)行,WSC除了維護(hù)系統(tǒng)中的虛擬機(jī)信息外,還負(fù)責(zé)全局分布式 Cache 一致性的維護(hù)。其中,第三流水級統(tǒng)計文件的訪問頻率,并定期將熱點(diǎn)文件的文件路徑和文件內(nèi)容發(fā)送給WSC,WSC定期將其廣播給第一流水級。第一流水級維護(hù)熱點(diǎn)文件的相關(guān)信息,其中的Cache替換策略為LRU,其被替換出的文件放入第二流水級的Cache中。利用系統(tǒng)中原有的WSC,維護(hù)了全局分布式Cache的一致性,使得第一流水級中各個虛擬機(jī)中維護(hù)的Cache信息一致。此外,第二流水級作為第一流水級的Cache,可以保證熱點(diǎn)文件盡量多地存放在系統(tǒng)Cache中,這樣請求對應(yīng)的文件可以不經(jīng)過完整的三級流水級的流動, 從而減少了流水級間數(shù)據(jù)傳輸產(chǎn)生的延遲,提高了響應(yīng)速率。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根 據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種基于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器的分布式Cache系統(tǒng),動態(tài)流水線網(wǎng)絡(luò)服務(wù)器包括網(wǎng)絡(luò)服務(wù)器控制器、虛擬機(jī)、虛擬云計算平臺,其特征在于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器將HTTP處理邏輯分為第一流水級、第二流水級、第三流水級, 并分別包裝在不同的虛擬機(jī)中運(yùn)行,每個流水級有對應(yīng)的Cache,下一流水級的Cache為上一流水級的后備Cache,用于緩存上一流水級被替換出的文件;本流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP請求進(jìn)行Cache查詢,若該HTTP 請求的文件在本流水級的Cache中,則返回HTTP響應(yīng)給客戶端,否則進(jìn)行本流水級的HTTP 處理邏輯,并在處理結(jié)束后通過調(diào)度策略將該HTTP請求發(fā)送到下一級流水級處理。
2.根據(jù)權(quán)利要求1所述的分布式Cache系統(tǒng),其特征在于,當(dāng)本流水級為第一流水級時,第一流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在第一流水級的Cache中,則返回HTTP響應(yīng)給客戶端,若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該HTTP請求發(fā)送到第二流水級處理。
3.根據(jù)權(quán)利要求1所述的分布式Cache系統(tǒng),其特征在于,當(dāng)本流水級為第二流水級時,第二流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP 請求進(jìn)行Cache查詢,若該HTTP請求的文件在第二流水級的Cache中,則通過第一流水級返回HTTP響應(yīng)給客戶端;若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該 HTTP請求發(fā)送到第三流水級處理。
4.根據(jù)權(quán)利要求1所述的分布式Cache系統(tǒng),其特征在于,當(dāng)本流水級為第三流水級時,第三流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在第三流水級的Cache中,則通過第一流水級返回HTTP響應(yīng)給客戶端;若不在,則從磁盤中讀取該HTTP請求的文件到,并通過第一流水級返回HTTP響應(yīng)給客戶端。
5.根據(jù)權(quán)利要求1、2、3或4所述的分布式Cache系統(tǒng),其特征在于,該網(wǎng)絡(luò)服務(wù)器控制器還用于對同一流水級的虛擬機(jī)中的Cache信息維護(hù)一致。
6.根據(jù)權(quán)利要求1、2、3或4所述的分布式Cache系統(tǒng),其特征在于,該第三流水級統(tǒng)計該HTTP請求的文件的訪問頻率得到熱點(diǎn)文件,并將該熱點(diǎn)文件的文件路徑和文件內(nèi)容發(fā)送給該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器將該熱點(diǎn)文件的文件路徑和文件內(nèi)容廣播給該第一流水級。
7.根據(jù)權(quán)利要求6所述的分布式Cache系統(tǒng),其特征在于,該第一流水級還用于維護(hù)熱點(diǎn)文件的相關(guān)信息,且第一流水級的Cache采用的替換策略為LRU ;當(dāng)?shù)谝涣魉壍腃ache從該網(wǎng)絡(luò)服務(wù)器控制接收到信息后,若該第一流水級的Cache 已飽和,則通過LRU替換策略將該熱點(diǎn)文件替換出的文件放入第二流水級的Cache中。
8.根據(jù)權(quán)利要求1、2、3或4所述的分布式Cache系統(tǒng),其特征在于,該第三流水級中還設(shè)置一本地文件Cache系統(tǒng),該本地文件Cache系統(tǒng)由元數(shù)據(jù)Cache和文件內(nèi)容Cache組成,該元數(shù)據(jù)Cache以Hash表的形式組織,用于存儲文件名、文件大小、修改時間、引用計數(shù)和塊計數(shù),該文件內(nèi)容Cache以Chunk的方式組織,用于存儲文件內(nèi)容。
9.根據(jù)權(quán)利要求1、2、3或4所述的分布式Cache系統(tǒng),其特征在于,該第三流水級中還設(shè)置一時鐘、一閾值;該第三流水級當(dāng)該時鐘每經(jīng)一固定的時間間隔,將所有文件的訪問計數(shù)減一,并當(dāng)文件的訪問頻率超過該閾值時將對應(yīng)文件的文件路徑和文件內(nèi)容發(fā)送至該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器周期性地將該對應(yīng)文件廣播給該第一流水級,該第一流水級接收該對應(yīng)文件并更新本地的對應(yīng)文件訪問信息列表。
10.一種基于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器的分布式Cache系統(tǒng)的工作方法,其特征在于,包括 步驟一,由動態(tài)流水線網(wǎng)絡(luò)服務(wù)器將HTTP處理邏輯分為第一流水級、第二流水級、第三流水級,并分別包裝在不同的虛擬機(jī)中運(yùn)行,每個流水級有對應(yīng)的Cache,下一流水級的 Cache為上一流水級的后備Cache,用于緩存上一流水級被替換出的文件;步驟二,本流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在本流水級的Cache中,則返回HTTP響應(yīng)給客戶端,否則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后通過調(diào)度策略將該HTTP請求發(fā)送到下一級流水級處理。
11.根據(jù)權(quán)利要求10所述的分布式Cache系統(tǒng)的工作方法,其特征在于,所述步驟二中,還包括當(dāng)本流水級為第一流水級時,該第一流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP 請求進(jìn)行Cache查詢,若該HTTP請求的文件在該第一流水級的Cache中,則直接返回HTTP 響應(yīng)給客戶端,若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該HTTP請求發(fā)送到該第二流水級處理。
12.根據(jù)權(quán)利要求10所述的分布式Cache系統(tǒng)的工作方法,其特征在于,所述步驟二中,還包括當(dāng)本流水級為第二流水級時,該第二流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP 請求進(jìn)行Cache查詢,若該HTTP請求的文件在該第二流水級的Cache中,則通過第一流水級返回HTTP響應(yīng)給客戶端;若不在,則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后將該HTTP請求發(fā)送到該第三流水級處理。
13.根據(jù)權(quán)利要求10所述的分布式Cache系統(tǒng)的工作方法,其特征在于,所述步驟二中,還包括當(dāng)本流水級為第三流水級時,該第三流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP 請求進(jìn)行Cache查詢,若該HTTP請求的文件在該第三流水級的Cache中,則通過該第一流水級返回HTTP響應(yīng)給客戶端;若不在,則從磁盤中讀取該HTTP請求的文件到該第三流水級的Cache中,并通過該第一流水級返回HTTP響應(yīng)給客戶端。
14.根據(jù)權(quán)利要求10、11、12或13所述的分布式Cache系統(tǒng)的工作方法,其特征在于, 所述步驟二中,還包括通過該網(wǎng)絡(luò)服務(wù)器控制器對同一流水級的虛擬機(jī)中的Cache信息維護(hù)一致。
15.根據(jù)權(quán)利要求10、11、12或13所述的分布式Cache系統(tǒng)的工作方法,其特征在于, 所述步驟二中,還包括該第三流水級統(tǒng)計該HTTP請求的文件的訪問頻率得到熱點(diǎn)文件,并將該熱點(diǎn)文件的文件路徑和文件內(nèi)容發(fā)送給該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器將該熱點(diǎn)文件的文件路徑和文件內(nèi)容廣播給該第一流水級。
16.根據(jù)權(quán)利要求15所述的分布式Cache系統(tǒng)的工作方法,其特征在于,所述步驟二中,還包括該第一流水級還用于維護(hù)熱點(diǎn)文件的相關(guān)信息,且該第一流水級的Cache采用的替換策略為LRU ;當(dāng)該第一流水級的Cache從該網(wǎng)絡(luò)服務(wù)器控制接收到信息后,若該第一流水級的 Cache已飽和,則通過LRU替換策略將該熱點(diǎn)文件替換出的文件放入該第二流水級的Cache 中。
17.根據(jù)權(quán)利要求10、11、12或13所述的分布式Cache系統(tǒng)的工作方法,其特征在于, 所述步驟二中,還包括在該第三流水級中還設(shè)置一本地文件Cache系統(tǒng),該本地文件Cache系統(tǒng)由元數(shù)據(jù) Cache和文件內(nèi)容Cache組成,該元數(shù)據(jù)Cache以Hash表的形式組織,用于存儲文件名、文件大小、修改時間、引用計數(shù)和塊計數(shù),該文件內(nèi)容Cache以Chunk的方式組織,用于存儲文件內(nèi)容。
18.根據(jù)權(quán)利要求10、11、12或13所述的分布式Cache系統(tǒng)的工作方法,其特征在于, 所述步驟二中,還包括在該第三流水級中設(shè)置一時鐘、一閾值;該第三流水級當(dāng)該時鐘每經(jīng)一固定的時間間隔,將所有文件的訪問計數(shù)減一,并當(dāng)文件的訪問頻率超過該閾值時將對應(yīng)文件的文件路徑和文件內(nèi)容發(fā)送至該網(wǎng)絡(luò)服務(wù)器控制器,由該網(wǎng)絡(luò)服務(wù)器控制器周期性地將該對應(yīng)文件廣播給該第一流水級,該第一流水級接收該對應(yīng)文件并更新本地的對應(yīng)文件訪問信息列表。
全文摘要
本發(fā)明有關(guān)于一種基于動態(tài)流水線網(wǎng)絡(luò)服務(wù)器的分布式Cache系統(tǒng)及其工作方法,該系統(tǒng)中,動態(tài)流水線網(wǎng)絡(luò)服務(wù)器將HTTP處理邏輯分為第一流水級、第二流水級、第三流水級,并分別包裝在不同的虛擬機(jī)中運(yùn)行,每個流水級有對應(yīng)的Cache,下一流水級的Cache為上一流水級的后備Cache,用于緩存上一流水級被替換出的文件;本流水級接收客戶端發(fā)送的HTTP請求,并對該HTTP請求進(jìn)行Cache查詢,若該HTTP請求的文件在本流水級的Cache中,則返回HTTP響應(yīng)給客戶端,否則進(jìn)行本流水級的HTTP處理邏輯,并在處理結(jié)束后通過調(diào)度策略將該HTTP請求發(fā)送到下一級流水級處理。本發(fā)明解決了同級流水級Cache一致性的問題,減少了流水級間數(shù)據(jù)傳遞傳輸造成的延時。
文檔編號H04L29/08GK102223418SQ20111017544
公開日2011年10月19日 申請日期2011年6月27日 優(yōu)先權(quán)日2011年6月27日
發(fā)明者孫毓忠, 宋 瑩, 王若倪, 蔡富強(qiáng) 申請人:中國科學(xué)院計算技術(shù)研究所