摘 要: 在分布式存儲中大功率電感器廠家,客戶端的數據訪問請求并非完全隨機,它是由程序或者用戶的行為驅動,因此文件訪問順序是可以預測的;服務器端收到的訪問請求在時間軸上也非平坦分布,因此服務器有時繁忙有時空閑。為此,提出了一種基于文件預測的分布式緩存模型,在客戶端預測將要訪問的文件,并利用服務器空閑時間傳輸預測文件。
關鍵詞: 分布式存儲;文件預測;緩存技術
近年來,數據成爆炸式增長,傳統存儲方式已無法滿足數據增長速度的要求,在此現狀下,分布式存儲技術得到了快速發展。限于成本與科技等原因,多數分布式存儲都是利用大量廉價PC搭建而成[1],與傳統的單機存儲一樣,在分布式存儲系統中I/O也是制約其整體性能的一個瓶頸,因此相繼提出了分布式緩存系統。
典型的分布式緩存系統如Oracle coherence[2]、Memcached[3]、Terracotta[4],在彈性資源供給、可用性與可靠性、敏捷性與自適應性、多承租、數據管理、數據安全與隱私等方面已設計得較為完善,同時也有其不足之處:對數據的遷移是以容量均衡為目標而缺少對熱點數據的處理;訪問頻率低的客戶端緩存數據被換出導致資源劫持等[5]。
熱點數據不均衡造成服務器之間接收到訪問請求的不均衡,而客戶的行為也有時間局域性,例如工作時間訪問工作相關數據多,非工作時間訪電感生產廠家問娛樂數據多,這導致服務器收到的訪問請求在時間上分布不平坦。預取可改善系統I/O的兩個主要性能指標[6]:利用異步預取在程序使用文件之前將文件準備就緒,可對應用程序隱藏磁盤I/O延時;在服務器空閑時間使用預取可以提升服務器的使用率。
數據的訪問請求并非完全隨機,它是由用戶或程序的行為驅動,存在特定的訪問模式。當用戶執行程序訪問數據時,連續訪問的一系列數據之間必然存在一定的關聯[7],因此在客戶端構建文件預測模型對將要使用的文件進行異步預取是可以實現的。為此提出了一種基于文件預測的分布式緩存模型DLSDCM(DLS based Distributed Cache Model),在客戶端建立由經典的文件預測模型LS(Last Successor)改進而成的文件預測模型DLS(Double Last Successor),并利用服務器的空閑時間進行預測請求數據的傳輸。此模型建立在其他分布式緩存系統之上,完善其資源劫持、熱點數據分布不均衡等方面, 同時也可作為單獨的緩存模型使用。
1 文件預測模型
數據的訪問請求并非完全隨機,它是由用戶或程序的行為驅動,用戶執行某種應用程序去訪問數據,連續訪問的不同文件之間必然存在一定的關聯。可構造出一種文件預測模型,通過對數據本體間的內在聯系或者歷史訪問記錄進行分析并構造出預測數據庫,依據預測數據對預測文件進行異步預讀并緩存。當應用程序使用這些數據時,便可大幅度減少數據的訪問延時,同時也減少了服務器空閑時間,提升了網絡使用率。本文主要研究LS預測模型。
1.1 LS文件預測模型
當用戶訪問一系列數據時,或多或少會重復上一次的訪問順序,因此LS模型是最常用也是最簡單的文件預測模型,被多數預測系統采用。Linux內核采用的預取算法亦是根據上次及本次的讀請求進行順序模式的匹配[8]。
但是LS文件預測模型在交替訪問文件時就會完全失效,例如第一次訪問順序為文件A、文件B;第二次訪問順序為文件A、文件I;第三次又重復第一次順序為文件A、文件B。對于這樣的交替訪問,使用LS模型預測文件A的后繼則完全失效。若將預測的文件數擴大為2個,即對于每個文件同時預讀其上一次訪問的后繼文件和上上一次訪問的后繼文件,則可避免交替訪問的預測失效,據此本文提出了DLS文件預測模型。
1.2 DLS文件預測模型
DLS文件預測模型一次可預測2個文件:上次訪問順序中的后繼和上上次訪問順序的后繼,預測命中的概率將會有很大提高。圖1所示為DLS模型對文件A后繼的預測,圖中文件A、B、I、U、D代表獨立的文件,而非順序文件。
由于一次預測2個文件,因此數據傳輸時也會有2個文件同時傳輸,參考使用概率圖來預測未來文件訪問的文件預測模型[9],分別記錄文件B和文件I的預測命中次數,并依命中次數來決定兩個文件傳輸時各自占用的帶寬比例,例如,記錄中文件B命中了40次,文件I命中了60次,此時文件B占40%帶寬, 文件I占60%的帶寬比例進行傳輸。 大功率電感廠家 |大電流電感工廠