移動(dòng)透明計(jì)算系統(tǒng)服務(wù)器端多用戶訪問(wèn)的鏡像緩存方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)透明計(jì)算系統(tǒng)服務(wù)器端多用戶訪問(wèn)的鏡像緩存方法。
【背景技術(shù)】
[0002]隨著可穿戴設(shè)備和移動(dòng)終端的快速發(fā)展,各種不同的移動(dòng)操作系統(tǒng)(比如1S,Andr1d,Window phone等)相繼出現(xiàn)并在市場(chǎng)中競(jìng)相存在。人們?cè)谝苿?dòng)設(shè)備上存儲(chǔ)的數(shù)據(jù)和安裝的應(yīng)用也越來(lái)越多,這就對(duì)其存儲(chǔ)能力要求越來(lái)越高,增加了管理開(kāi)銷(xiāo),影響了用戶體驗(yàn)性。對(duì)于用戶來(lái)說(shuō),其只需要隨時(shí)通過(guò)終端設(shè)備獲得各種所需的服務(wù),而不需考慮設(shè)備的操作系統(tǒng)、硬件配置和網(wǎng)絡(luò)連接方式等底層的信息。透明計(jì)算正是這樣一種計(jì)算模式,即一種用戶無(wú)需感知計(jì)算機(jī)操作系統(tǒng)、中間件、應(yīng)用程序和通信網(wǎng)絡(luò)的具體所在,只需根據(jù)自己的需求,通過(guò)網(wǎng)絡(luò)從所使用的各種終端設(shè)備(包括固定、移動(dòng)、以及家庭中的各類(lèi)終端設(shè)備)中選擇并使用相應(yīng)服務(wù)(例如計(jì)算、電話、電視、上網(wǎng)和娛樂(lè)等)的計(jì)算模式。
[0003]透明計(jì)算系統(tǒng)的特征主要有如下幾點(diǎn):
(I)存儲(chǔ)與計(jì)算分離。透明計(jì)算系統(tǒng)分為客戶端與服務(wù)器兩個(gè)部分,其中用戶使用的客戶端無(wú)需安裝任何系統(tǒng)軟件,所有軟件資源均統(tǒng)一存儲(chǔ)在服務(wù)器內(nèi)。當(dāng)用戶訪問(wèn)透明計(jì)算服務(wù)器時(shí),按需加載軟件資源,并在本地執(zhí)行與計(jì)算。
[0004](2)跨終端、跨操作系統(tǒng)平臺(tái)的支持。用戶能夠在任何終端上訪問(wèn)透明計(jì)算服務(wù)器獲得所需的服務(wù),并根據(jù)需要選擇操作系統(tǒng)平臺(tái)。對(duì)于終端設(shè)備來(lái)說(shuō),使用之前不需要或盡量減少對(duì)客戶端的安裝和配置,以提高用戶體驗(yàn)性。
[0005](3)客戶端與服務(wù)器之間采用流塊式傳輸指令和數(shù)據(jù)??蛻舳嗽谶h(yuǎn)程加載操作系統(tǒng)時(shí),不需要將整個(gè)操作系統(tǒng)下載到本地運(yùn)行,而是將服務(wù)器存儲(chǔ)的數(shù)據(jù)劃分為大小相同的數(shù)據(jù)塊,客戶端僅下載所需部分的數(shù)據(jù)塊,所有數(shù)據(jù)塊以數(shù)據(jù)流的形式傳輸。
[0006]隨著移動(dòng)終端的多樣化及普及,移動(dòng)透明計(jì)算作為透明計(jì)算的一個(gè)分支,逐漸成為研究的熱點(diǎn)。而當(dāng)同時(shí)訪問(wèn)透明計(jì)算服務(wù)器的用戶數(shù)過(guò)多時(shí),所有客戶端不斷向服務(wù)器請(qǐng)求所需的軟件資源數(shù)據(jù)塊,此時(shí)服務(wù)器的磁盤(pán)I/O將成為系統(tǒng)的主要瓶頸之一,造成明顯的性能下降。
[0007]當(dāng)今分布式系統(tǒng)已經(jīng)融入各行各業(yè),人們對(duì)分布式系統(tǒng)下的處理及傳輸能力要求越來(lái)越高。透明計(jì)算實(shí)現(xiàn)計(jì)算與存儲(chǔ)分離,將系統(tǒng)和用戶數(shù)據(jù)存放在分布式服務(wù)端上,動(dòng)態(tài)從遠(yuǎn)程加載并執(zhí)行。針對(duì)目前移動(dòng)透明計(jì)算的研究現(xiàn)狀,存在以下幾個(gè)缺點(diǎn):
(I)客戶端在訪問(wèn)遠(yuǎn)程透明服務(wù)器所存放的系統(tǒng)鏡像時(shí),需要發(fā)出大量的1請(qǐng)求,特別是在系統(tǒng)開(kāi)始啟動(dòng)的時(shí)候。
[0008](2)多客戶端訪問(wèn)透明服務(wù)器時(shí),每次都需要從原始鏡像中讀取所請(qǐng)求的數(shù)據(jù),用戶使用過(guò)程中,鏡像文件越來(lái)越大,在服務(wù)多客戶端的情況下,存在大量重復(fù)的請(qǐng)求,造成系統(tǒng)資源浪費(fèi)和效率低下。
[0009](3)由于無(wú)線加載受到帶寬的限制,當(dāng)移動(dòng)終端加載數(shù)據(jù)資源,比如操作系統(tǒng)時(shí),往往需要很長(zhǎng)的時(shí)間,這就造成了網(wǎng)絡(luò)的傳輸延時(shí),使得用戶體驗(yàn)性差。
【發(fā)明內(nèi)容】
[0010]本發(fā)明所要解決的技術(shù)問(wèn)題是,針對(duì)現(xiàn)有技術(shù)不足,提供一種移動(dòng)透明計(jì)算系統(tǒng)服務(wù)器端多用戶訪問(wèn)的鏡像緩存方法。
[0011]為解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是:一種移動(dòng)透明計(jì)算系統(tǒng)服務(wù)器端多用戶訪問(wèn)的鏡像緩存方法,包括以下步驟:
1)設(shè)計(jì)緩存數(shù)據(jù)塊的存儲(chǔ)信息,所述存儲(chǔ)信息包括標(biāo)識(shí)區(qū)FLAG,信息區(qū)FI和數(shù)據(jù)區(qū)DATA;所述標(biāo)識(shí)區(qū)FLAG用于存放代表緩存數(shù)據(jù)塊的關(guān)鍵字;信息區(qū)FI用于存放緩存數(shù)據(jù)塊的基本信息;數(shù)據(jù)區(qū)DATA用于存放所緩存的實(shí)際數(shù)據(jù),并在客戶端發(fā)起1請(qǐng)求時(shí),返回所緩存的實(shí)際數(shù)據(jù);
2)設(shè)計(jì)緩存空間存放所有的緩存數(shù)據(jù)塊;
3)在properties文件中設(shè)置緩存大小和生命周期;
4)初始化緩存空間;
5 )為用戶的1請(qǐng)求塊建立對(duì)應(yīng)的緩存數(shù)據(jù)塊,包括FLAG、FI和DATA信息,并存入初始化后的緩存空間;
6)每次訪問(wèn)緩存空間前,檢查并移除過(guò)期的緩存數(shù)據(jù)塊,保證緩存數(shù)據(jù)塊的實(shí)時(shí)有效。
[0012]所述步驟6)的具體實(shí)現(xiàn)過(guò)程包括:
1)當(dāng)客戶端向服務(wù)端請(qǐng)求訪問(wèn)數(shù)據(jù)時(shí),首先查詢緩存空間,根據(jù)flag判斷數(shù)據(jù)是否為新數(shù)據(jù),若是新訪問(wèn)的數(shù)據(jù),則將新訪問(wèn)的數(shù)據(jù)插入到FIFO隊(duì)列,并更新FI和DATA的信息;否則執(zhí)行步驟3);
2)如果緩存數(shù)據(jù)塊在FIFO隊(duì)列中一直沒(méi)有被再次訪問(wèn),則按照FIFO規(guī)則淘汰緩存數(shù)據(jù)塊;或者如果該緩存數(shù)據(jù)塊超過(guò)其生命周期,則直接淘汰該緩存數(shù)據(jù)塊;
3)如果緩存數(shù)據(jù)塊在FIFO隊(duì)列中被再次訪問(wèn),則將該緩存數(shù)據(jù)塊移到LRU隊(duì)列頭部;或者如果緩存數(shù)據(jù)塊在LRU隊(duì)列中再次被訪問(wèn),則將該緩存數(shù)據(jù)塊移到LRU隊(duì)列頭部;
4)LRU隊(duì)列淘汰末尾的緩存數(shù)據(jù)塊。
[0013]所述步驟6)的具體實(shí)現(xiàn)過(guò)程包括:
1)設(shè)計(jì)新訪問(wèn)的數(shù)據(jù)塊的緩存信息,為FI區(qū)的信息賦初值,并將所述初值插入到LFU隊(duì)列;
2)如果緩存數(shù)據(jù)塊在LFU隊(duì)列中一直沒(méi)有被再次訪問(wèn),則按照LFU規(guī)則淘汰緩存數(shù)據(jù)塊,淘汰的緩存數(shù)據(jù)塊插入到LRU隊(duì)列;如果該緩存數(shù)據(jù)塊超過(guò)其生命周期,則直接淘汰該緩存數(shù)據(jù)塊;
3)如果緩存數(shù)據(jù)塊在LFU隊(duì)列中被再次訪問(wèn),則將緩存數(shù)據(jù)塊FI區(qū)訪問(wèn)次數(shù)加I,訪問(wèn)時(shí)間更新為最新訪問(wèn)時(shí)間;或者如果緩存數(shù)據(jù)塊在LRU隊(duì)列再次被訪問(wèn),則將緩存數(shù)據(jù)塊移到LFU隊(duì)列;
4)LRU隊(duì)列按規(guī)則淘汰最久未訪問(wèn)的緩存數(shù)據(jù)塊。
[0014]所述步驟6)的具體實(shí)現(xiàn)過(guò)程包括:
1)設(shè)計(jì)新訪問(wèn)的數(shù)據(jù)塊的緩存信息,為FI區(qū)的信息賦初值,并將該初值插入到主隊(duì)列的未鎖定區(qū);
2)如果緩存數(shù)據(jù)塊在主隊(duì)列的未鎖定區(qū)中一直沒(méi)有被再次訪問(wèn),則按照LFU規(guī)則淘汰緩存數(shù)據(jù)塊,然后將淘汰的緩存數(shù)據(jù)塊插入到LRU隊(duì)列;
3)如果緩存數(shù)據(jù)塊在主隊(duì)列的未鎖定區(qū)中被再次訪問(wèn),則將緩存數(shù)據(jù)塊FI區(qū)訪問(wèn)次數(shù)加1、訪問(wèn)時(shí)間更新為最新訪問(wèn)時(shí)間;
4)若緩存數(shù)據(jù)塊在固定時(shí)間段內(nèi)被連續(xù)訪問(wèn),則將緩存數(shù)據(jù)塊移到鎖定區(qū),若鎖定區(qū)大小超過(guò)緩存空間的一半,則按LRU規(guī)則淘汰鎖定區(qū)中最久未被訪問(wèn)的緩存數(shù)據(jù)塊,然后將淘汰的緩存數(shù)據(jù)塊插入到LRU隊(duì)列并更新緩存數(shù)據(jù)塊FI區(qū)的信息;如果鎖定區(qū)緩存數(shù)據(jù)塊超過(guò)其生命周期,則直接淘汰該緩存數(shù)據(jù)塊;或者如果緩存數(shù)據(jù)塊在LRU隊(duì)列再次被訪問(wèn),則更新緩存數(shù)據(jù)塊的FI區(qū)信息,并將數(shù)據(jù)移到主隊(duì)列的未鎖定區(qū);所述固定時(shí)間段小于所述生命周期;
5)LRU隊(duì)列按規(guī)則淘汰最久未訪問(wèn)的緩存數(shù)據(jù)塊。
[0015]所述緩存空間采用哈希表結(jié)構(gòu),通過(guò)key關(guān)鍵字映射對(duì)應(yīng)的緩存數(shù)據(jù)塊。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明所具有的有益效果為:本發(fā)明在移動(dòng)透明計(jì)算環(huán)境下,解決了兩個(gè)基本問(wèn)題:(I)針對(duì)系統(tǒng)啟動(dòng)階段的大量數(shù)據(jù)請(qǐng)求,為服務(wù)端增加緩存模塊,基于客戶端所發(fā)出的1請(qǐng)求,從鏡像中讀取具體數(shù)據(jù),通過(guò)一定的形式復(fù)制一份放于緩存空間,因?yàn)槎嗫蛻舳嗽谙到y(tǒng)啟動(dòng)階段,數(shù)據(jù)具有高度的一致性,因此只需要讀取一次鏡像文件,后面的請(qǐng)求直接從緩存中獲取數(shù)據(jù),從而提高了效率。(2)針對(duì)用戶在使用過(guò)程中存在重復(fù)請(qǐng)求的情況,對(duì)緩存空間所存的數(shù)據(jù)進(jìn)行更新,保證緩存中存放的是系統(tǒng)最需要的數(shù)據(jù)塊,降低服務(wù)器端讀取文件的次數(shù),提高服務(wù)器讀文件效率。對(duì)客戶端來(lái)