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