基本介紹
- 中文名:協同快取
- 外文名:Cooperative cache
- 定義:提升Web服務的性能
- 模組:信息搜尋、快取管理、預取
- 系統:計算機
- 套用學科:計算機原理
程式簡介,協同快取系統中的基本操作,現有的協作式快取系統,基於分散式管理的合作快取系統,基於集中式管理的合作快取系統,
程式簡介
為了提升Web服務的性能,簡單且兼具協同性的快取系統被廣泛套用於網際網路中。一般來說,Web快取系統由客戶端、快取代理和Web伺服器組成。快取代理置於伺服器和客戶端之間,它們合作為客戶端提供快取。當客戶端請求一個Web頁面時,它會先檢查自己的快取情況。如果失敗,它將向其中一個快取代理髮送頁面請求。如果所請求的頁面沒有在該代理處找到,它將向其協同代理髮送請求。如果在這些代理中部未找到所請求的頁面,請求將被傳送至遠程Web伺服器以獲得原始頁面。Web快取系統降低了頻寬的使用、Web伺服器的工作負擔和客戶端的查詢延遲。
Web快取系統在很大程度上提升了Web服務的性能。但是由MANET的移動性和資源約束,這種方案並不能直接套用於MANET環境中。MANET中的所有節點都是移動的,網路拓撲也隨之頻繁更換,所以在MANET中建立快取代理幾乎是不可能的。岡此,為實現MANET環境中的協同快取系統,必須要採用一種不同的方法。近來,學術界已提出一些用於在MANET中套用協同快取的方法。在這些方法中,每個移動節點都具備一定數量的快取空間,這些空間可以被自身或相鄰節點訪問。各個節點不僅能夠從自身的快取空問獲得請求數據,還能從其相鄰節點的快取空間中獲得。通過這種方法,每個節點就擁有了比它本身更大的快取空間。
協同快取系統中的基本操作
協同快取系統包括以下模組。
信息搜尋(或快取分辨):該模組用於處理客戶端尋找請求數據項的操作。返回的數據可能來自數據源的原始數據或移動節點的快取副本。
快取管理:包括三個子模組:快取準入控制,它決定是否快取所接收的數據項;快取替換,在快取空間已滿但還有新的數據項必須被快取時,它決定快取空間移除哪個快取項;快取一致性,它負責快取數據項與數據源的原始數據項同步。絕大多數方法都是採用基於生存時間(TTL,Time-to-live)的快取一致性策略,這裡給每個數據項指定一個TTL值,該值表示數據項存於快取空間的時間,快取數據項在TTL逝去前被視為是有效的。
預取:它負責決定哪個數據項應從數據源中預先取出以備將來使用。
現有的協作式快取系統
按照快取信息的保存位置。將協作式快取系統分為兩種:基於分散式管理的合作快取系統和基於集中式管理的合作快取系統。
基於分散式管理的合作快取系統
Harvest,Squid是基於分散式管理的合作快取系統,它們採用ICP協定,通稱為ICPS系統,其結構如圖1所示。其基本思想是如果一個請求在本地代理快取上得不到滿足,那么本地代理伺服器就向其兄弟和父親節點發出查詢命令,如果還不能命中。則繼續向上級節點查詢,直到在指定的有效時間內命中為止。它採用層次結構,簡單易行,但有兩個致命的缺點:其一,隨著相互協作的代理數目的增加,由查詢帶來的網路流量和時間延遲十分可觀;其二,ICP根本沒有協調每個代理快取的內容,在最壞情況下,所有的代理快取中的快取內容是一致的,最終使得協同快取系統沒有發揮出任何的優勢。