国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法

      文檔序號:10555673閱讀:259來源:國知局
      顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法
      【專利摘要】本發(fā)明公開了一種顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,包括以下步驟:服務(wù)器端接收客戶端發(fā)送的空間數(shù)據(jù)請求,獲得請求的訪問地址;將地址作為關(guān)鍵字在全局內(nèi)存緩存中檢索緩存對象,如果檢索沒命中,則將客戶端請求地址作為關(guān)鍵字從臨時緩存中檢索對應(yīng)的臨時緩存對象,若檢索命中,根據(jù)臨時緩存對象的訪問次數(shù)決定是否加入全局內(nèi)存緩存中,若未命中,則將當(dāng)前請求信息加入到臨時緩存。本發(fā)明方法能夠控制緩存模塊僅將訪問熱度達到一定閾值的空間數(shù)據(jù)緩存到有限的服務(wù)器內(nèi)存中,減少內(nèi)存緩存的置換次數(shù),避免過多地對內(nèi)存緩存數(shù)據(jù)進行淘汰處理,提高服務(wù)器端的內(nèi)存緩存性能和網(wǎng)絡(luò)空間信息服務(wù)的并發(fā)訪問性能。
      【專利說明】
      顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及網(wǎng)絡(luò)地理信息系統(tǒng)技術(shù),尤其是一種顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法。
      【背景技術(shù)】
      [0002]網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存是網(wǎng)絡(luò)地理信息系統(tǒng)(WebGIS)中需要解決的重要問題之一,利用服務(wù)器內(nèi)存的高性能并發(fā)讀寫性能,將網(wǎng)絡(luò)空間信息服務(wù)請求數(shù)據(jù)緩存到服務(wù)器的高速內(nèi)存中,能夠提高客戶端請求的并發(fā)響應(yīng)效率,但服務(wù)器的內(nèi)存資源是有限的,對于大規(guī)模的海量空間數(shù)據(jù),只能緩存部分?jǐn)?shù)據(jù)到服務(wù)器的內(nèi)存中,當(dāng)大用戶量密集并發(fā)訪問時,由于大量臨時訪問數(shù)據(jù)被加入到有限的內(nèi)存緩存中,會導(dǎo)致頻繁地對內(nèi)存緩存中的數(shù)據(jù)進行淘汰處理,降低了內(nèi)存緩存的效率和緩存命中率。

      【發(fā)明內(nèi)容】

      [0003]本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中的缺陷,提供一種顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,降低服務(wù)器上內(nèi)存緩存的淘汰頻率,提高網(wǎng)絡(luò)空間信息服務(wù)內(nèi)存緩存性能。
      [0004]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,其包括以下步驟:
      步驟1:設(shè)置服務(wù)器端的空間數(shù)據(jù)請求次數(shù)緩存閾值(ACT),全局內(nèi)存緩存對象最大個數(shù)(GCT),臨時緩存對象最大個數(shù)(TCT)。
      [0005]步驟2:服務(wù)器端接收客戶端發(fā)送的空間數(shù)據(jù)請求,獲得請求的訪問地址。
      [0006]步驟3:將地址作為關(guān)鍵字從全局內(nèi)存緩存中去檢索緩存對象,如果全局緩存命中,轉(zhuǎn)步驟4;如果全局內(nèi)存緩存沒命中,轉(zhuǎn)步驟6。
      [0007]步驟4:更新命中的全局內(nèi)存緩存對象的最后訪問時間屬性。
      [0008]步驟5:將命中的緩存對象中存儲的結(jié)果數(shù)據(jù)直接返回給客戶端,結(jié)束。
      [0009]步驟6:從空間數(shù)據(jù)庫中檢索客戶端請求的數(shù)據(jù)。
      [0010]步驟7:將結(jié)果數(shù)據(jù)返回給客戶端。
      [0011 ]步驟8:將客戶端請求地址作為關(guān)鍵字從臨時緩存中檢索對應(yīng)的臨時緩存對象,如果臨時緩存命中,轉(zhuǎn)步驟9;如果臨時緩存未命中,轉(zhuǎn)步驟15。
      [0012]步驟9:獲取臨時緩存對象的訪問次數(shù)(RAC)。如果RAOACT,轉(zhuǎn)步驟10;反之則轉(zhuǎn)步驟14 0
      [0013]步驟10:將當(dāng)前請求得到的結(jié)果數(shù)據(jù)增加到全局內(nèi)存緩存中。
      [0014]步驟11:刪除當(dāng)前請求的臨時緩存對象,
      步驟12:獲取全局內(nèi)存緩存中的緩存?zhèn)€數(shù)(GCC),如果GCOGCT,轉(zhuǎn)步驟13,如果GCC〈GCT,結(jié)束。
      [0015]步驟13:刪除全局內(nèi)存緩存中最久未被訪問的一個緩存對象,結(jié)束。
      [0016]步驟14:將臨時緩存對象的訪問次數(shù)(RAC)加I,并更新臨時緩存對象的最后訪問時間,結(jié)束。
      [0017]步驟15:將當(dāng)前請求的臨時緩存對象的訪問次數(shù)初始為1,并將其增加到臨時緩存中。
      [0018]步驟16:獲取臨時緩存中的緩存對象個數(shù)(TCC),如果TCOTCT,轉(zhuǎn)步驟17;如果TCC〈TCT,結(jié)束。
      [0019]步驟17:刪除臨時緩存中最久未被訪問的一個緩存對象,結(jié)束。
      [0020]按上述方案,所述步驟I)中臨時緩存和全局緩存都采用鍵值對的形式存儲,其中,鍵均為請求的地址,值分別為臨時緩存對象和全局緩存對象。
      [0021]按上述方案,所述每個臨時緩存對象的值中包括其鍵對應(yīng)的請求地址的最后訪問時間和對該地址的訪問次數(shù);所述每個全局緩存對象的值中包括其鍵對應(yīng)的請求地址的最后訪問時間和該請求對應(yīng)的結(jié)果數(shù)據(jù)。
      [0022]按上述方案,所述步驟9)中,僅當(dāng)請求地址的訪問次數(shù)超過閾值時才將請求地址對應(yīng)的結(jié)果數(shù)據(jù)緩存到全局緩存中。
      [0023]本發(fā)明的有益效果是能夠根據(jù)網(wǎng)絡(luò)空間信息服務(wù)訪問請求的訪問熱度來判斷是否將請求數(shù)據(jù)緩存到服務(wù)器的內(nèi)存緩存中,以避免將一些臨時訪問次數(shù)較少的數(shù)據(jù)存儲到服務(wù)器的內(nèi)存緩存中,減少服務(wù)器內(nèi)存緩存的轉(zhuǎn)換次數(shù),提高服務(wù)器端內(nèi)存緩存效率和緩存命中率,提高網(wǎng)絡(luò)空間信息服務(wù)的大用戶量并發(fā)請求處理性能。
      [0024]
      【附圖說明】
      [0025]下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
      圖1是本發(fā)明的方法流程圖。
      【具體實施方式】
      [0026]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0027]如圖1所示,圖1是本發(fā)明提供的顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法流程圖,所述方法包括以下步驟:
      步驟1:設(shè)置服務(wù)器端的空間數(shù)據(jù)請求次數(shù)緩存閾值(ACT),全局內(nèi)存緩存對象最大個數(shù)(GCT),臨時緩存對象最大個數(shù)(TCT)。
      [0028]步驟2:服務(wù)器端接收客戶端發(fā)送的空間數(shù)據(jù)請求,獲得請求訪問的HTTP地址。
      [0029]步驟3:將地址作為關(guān)鍵字從全局內(nèi)存緩存中去檢索緩存對象,如果全局緩存命中,轉(zhuǎn)步驟4;如果全局內(nèi)存緩存沒命中,轉(zhuǎn)步驟6。
      [0030]全局緩存對象使用鍵值對的形式存儲,請求訪問的HTTP地址作為鍵,值為一個全局緩存對象類(GlobalCacheItem),其包含請求的結(jié)果數(shù)據(jù)(data)和請求的最后訪問時間(IastAccessTime)。全局緩存對象類定義如下:
      Public class GlobalCacheItem {
      Public byte[] data;
      Public DateTime IastAccessTime;
      }
      步驟4:獲取命中的全局內(nèi)存緩存對象(globalCacheOb j ),更新globalCacheOb j的最后訪問時間(IastAccessTime)屬性,將其更新為當(dāng)前時間。
      [0031]步驟5:將命中的緩存對象中存儲的結(jié)果數(shù)據(jù)(globalCacheObj.data)直接返回給客戶端,結(jié)束。
      [0032]步驟6:從空間數(shù)據(jù)庫中檢索客戶端請求的數(shù)據(jù)。
      [0033]步驟7:將結(jié)果數(shù)據(jù)返回給客戶端。
      [0034]步驟8:將客戶端請求地址作為關(guān)鍵字從臨時緩存中檢索對應(yīng)的臨時緩存對象,如果臨時緩存命中,轉(zhuǎn)步驟9;如果臨時緩存未命中,轉(zhuǎn)步驟15。
      [0035]臨時緩存對象使用鍵值對的形式存儲,請求訪問的HTTP地址作為鍵,值為一個臨時緩存對象類(TempCacheItem),其包含請求的訪問次數(shù)(RAC)和請求的最后訪問時間(IastAccessTime)。臨時緩存對象類定義如下:
      Public class TempCacheItem
      {
      Public int RAC;
      Public DateTime IastAccessTime;
      }
      步驟9:獲取命中的臨時緩存對象(tempCacheOb j ),獲取臨時緩存對象的訪問次數(shù)(tempCacheOb j.RAC)。如果tempCacheOb j.RAOACT,轉(zhuǎn)步驟10;反之則轉(zhuǎn)步驟14。
      [0036]步驟10:將步驟6中得到的當(dāng)前請求的結(jié)果數(shù)據(jù)增加到全局內(nèi)存緩存中。
      [0037]步驟11:刪除當(dāng)前請求的臨時緩存對象(tempCacheObj),
      步驟12:獲取全局內(nèi)存緩存中的緩存?zhèn)€數(shù)(GCC),如果GCOGCT,轉(zhuǎn)步驟13,如果GCC〈GCT,結(jié)束。
      [0038]步驟I3:根據(jù)全局內(nèi)存緩存中各個緩存對象的最后訪問時間屬性(IastAccessTime),刪除全局內(nèi)存緩存中最久未被訪問的一個緩存對象,結(jié)束。
      [0039]步驟14:將臨時緩存對象的訪問次數(shù)(tempCacheObj.RAC)加I,并更新臨時緩存對象的最后訪問時間(tempCacheObj.1astAccessTime),結(jié)束。
      [0040]步驟15:為當(dāng)前請求新建一個臨時緩存對象,將當(dāng)前請求的臨時緩存對象的訪問次數(shù)(RAC)初始為1,最后訪問時間(lastAccessTime)初始為當(dāng)前時間,并將其增加到臨時緩存中。
      [0041 ] 步驟16:獲取臨時緩存中的緩存對象個數(shù)(TCC),如果TCOTCT,轉(zhuǎn)步驟17;如果TCC〈TCT,結(jié)束。
      [0042]步驟17:根據(jù)臨時緩存中各個緩存對象的最后訪問時間屬性(IastAccessTime),刪除臨時緩存中最久未被訪問的一個緩存對象,結(jié)束。
      [0043]本發(fā)明最明顯的不同在于增加了臨時緩存模塊,當(dāng)服務(wù)器接收到大用戶量并發(fā)訪問請求時,不直接將新的請求的結(jié)果數(shù)據(jù)增加到全局內(nèi)存緩存中,而僅將請求的訪問次數(shù)和最后訪問時間存儲到臨時緩存中,當(dāng)訪問次數(shù)超過預(yù)設(shè)的閾值時才將請求的結(jié)果數(shù)據(jù)緩存到全局內(nèi)存緩存中。此方法能夠避免臨時訪問次數(shù)較少的數(shù)據(jù)被存儲到全局內(nèi)存緩存中,減少全局內(nèi)存緩存的置換頻率,提高全局內(nèi)存緩存效率和命中率,提高網(wǎng)絡(luò)空間信息服務(wù)的并發(fā)處理性能,尤其是在服務(wù)器內(nèi)存資源較少時,該方法的優(yōu)勢更加明顯。
      [0044]實施例一:
      為了更清晰的說明本發(fā)明的思想,下面對顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法進行進一步的說明,以網(wǎng)絡(luò)空間信息服務(wù)中的OGC WMS服務(wù)的GetCapabiIities請求為例,空間數(shù)據(jù)請求次數(shù)緩存閾值設(shè)置為10,全局內(nèi)存緩存對象最大個數(shù)設(shè)置為10000,臨時緩存對象最大個數(shù)設(shè)置為100。具體步驟如下:
      步驟1:設(shè)置服務(wù)器端的空間數(shù)據(jù)請求次數(shù)緩存閾值(ACT=10),全局內(nèi)存緩存對象最大個數(shù)(GCt=1000),臨時緩存對象最大個數(shù)(TCT=10)。
      [0045]步驟2:服務(wù)器端接收客戶端發(fā)送的WMS服務(wù)的GetCapabi I ities請求,獲得GetCapabi I ities請求訪問的HTTP地址,請求地址格式如下:
      h11P://domain/wms?REQUEST=GetCapabiIities&VERS1N=1.1.1&SERVICE=WMS步驟3:將步驟2中獲得的地址作為關(guān)鍵字從全局內(nèi)存緩存中去檢索緩存對象,如果全局緩存命中,轉(zhuǎn)步驟4;如果全局內(nèi)存緩存沒命中,轉(zhuǎn)步驟6。
      [0046]步驟4:獲取命中的全局內(nèi)存緩存對象(globalCacheOb j),更新globalCacheOb j的最后訪問時間(IastAccessTime)屬性,將其更新為當(dāng)前時間。
      [0047]步驟5:將命中的緩存對象中存儲的結(jié)果數(shù)據(jù)(globalCacheObj.data)直接返回給客戶端,結(jié)束。
      [0048]步驟6:從空間數(shù)據(jù)庫中檢索客戶端請求的數(shù)據(jù),按照WMS服務(wù)的接口規(guī)范生成符合GetCapabi I ities服務(wù)接口要求的結(jié)果數(shù)據(jù)。
      [0049]步驟7:將結(jié)果數(shù)據(jù)返回給客戶端。
      [0050]步驟8:將客戶端請求地址作為關(guān)鍵字從臨時緩存中檢索對應(yīng)的臨時緩存對象,如果臨時緩存命中,轉(zhuǎn)步驟9;如果臨時緩存未命中,轉(zhuǎn)步驟15。
      [0051 ]步驟9:獲取命中的臨時緩存對象(tempCacheObj),獲取臨時緩存對象的訪問次數(shù)(tempCacheObj.RAC)。如果tempCacheOb j.RAOlO,轉(zhuǎn)步驟 10;反之則轉(zhuǎn)步驟 14。
      [0052]步驟I O:使用步驟2中獲得的客戶端請求地址作為鍵,創(chuàng)建一個新的GlobalCacheItem類的實例對象(globalItem),設(shè)置其lastAccessTime屬性為當(dāng)前時間,并設(shè)置為data屬性為步驟6中得到的當(dāng)前請求的結(jié)果數(shù)據(jù),然后將該請求的全局緩存對象globalltem增加到全局內(nèi)存緩存中。
      [°°53] 步驟11:刪除當(dāng)前請求的臨時緩存對象(tempCacheObj),
      步驟12:獲取全局內(nèi)存緩存中的緩存?zhèn)€數(shù)(GCC),如果GCC> 10000,轉(zhuǎn)步驟13,如果GCC〈10000,結(jié)束。
      [0054]步驟I3:根據(jù)全局內(nèi)存緩存中各個緩存對象的最后訪問時間屬性(IastAccessTime),刪除全局內(nèi)存緩存中最久未被訪問的一個緩存對象,結(jié)束。
      [0055]步驟14:將臨時緩存對象的訪問次數(shù)(tempCacheObj.RAC)加I,并更新臨時緩存對象的最后訪問時間(tempCacheObj.lastAccessTime)為當(dāng)前時間,結(jié)束。
      [0056]步驟15:為當(dāng)前請求新建一個TempCacheItem類的實例對象(tempItem),將其訪問次數(shù)(RAC)初始為I,最后訪問時間(lastAccessTime)初始為當(dāng)前時間,使用步驟2中獲得的客戶端請求地址作為鍵,將該請求的臨時緩存對象templtem增加到臨時緩存中。
      [0057 ]步驟16:獲取臨時緩存中的緩存對象個數(shù)(TCC ),如果TCC> 100,轉(zhuǎn)步驟17;如果TCC〈100,結(jié)束。
      [0058]步驟17:根據(jù)臨時緩存中各個緩存對象的最后訪問時間屬性(lastAccessTime),刪除臨時緩存中最久未被訪問的一個緩存對象,結(jié)束。
      [0059]采用本發(fā)明設(shè)計的顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,在服務(wù)器端接收大用戶量的并發(fā)訪問請求時,能夠避免臨時訪問的請求數(shù)據(jù)過多地加入到全局內(nèi)存緩存中,有效地減少全局內(nèi)存緩存的置換次數(shù),有助于提高全局內(nèi)存緩存的效率和命中率,提升大用戶量密集并發(fā)訪問時網(wǎng)絡(luò)空間信息服務(wù)的并發(fā)處理性能。
      [0060]應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。
      【主權(quán)項】
      1.一種顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,其特征在于,其包括以下步驟: 步驟I)設(shè)置服務(wù)器端的空間數(shù)據(jù)請求次數(shù)緩存閾值A(chǔ)CT,全局內(nèi)存緩存對象最大個數(shù)GCT,臨時緩存對象最大個數(shù)TCT; 步驟2)服務(wù)器端接收客戶端發(fā)送的空間數(shù)據(jù)請求,獲得請求的訪問地址; 步驟3)將地址作為關(guān)鍵字在全局內(nèi)存緩存中檢索緩存對象,如果檢索命中,轉(zhuǎn)步驟4)如果檢索沒命中,轉(zhuǎn)步驟6); 步驟4)更新命中的全局內(nèi)存緩存對象的最后訪問時間屬性為當(dāng)前時間; 步驟5)將命中的緩存對象中存儲的結(jié)果數(shù)據(jù)直接返回給客戶端,結(jié)束; 步驟6)從空間數(shù)據(jù)庫中檢索客戶端請求的數(shù)據(jù); 步驟7)將結(jié)果數(shù)據(jù)返回給客戶端; 步驟8)將客戶端請求地址作為關(guān)鍵字從臨時緩存中檢索對應(yīng)的臨時緩存對象,如果臨時緩存命中對象,轉(zhuǎn)步驟9);如果臨時緩存未命中對象,轉(zhuǎn)步驟15); 步驟9)獲取臨時緩存對象的訪問次數(shù)RAC;如果RAOACT,轉(zhuǎn)步驟10);反之則轉(zhuǎn)步驟14); 步驟10)將當(dāng)前請求得到的結(jié)果數(shù)據(jù)增加到全局內(nèi)存緩存中; 步驟11)刪除當(dāng)前請求的臨時緩存對象; 步驟12)獲取全局內(nèi)存緩存中的緩存?zhèn)€數(shù)GCC,如果GCOGCT,轉(zhuǎn)步驟13,如果GCCXGCT,結(jié)束; 步驟13:刪除全局內(nèi)存緩存中最久未被訪問的一個全局緩存對象,結(jié)束; 步驟14)將臨時緩存對象的訪問次數(shù)RAC加I,并更新臨時緩存對象的最后訪問時間,結(jié)束; 步驟15)將當(dāng)前請求的對象增加到臨時緩存中作為臨時緩存對象,并將該臨時緩存對象的訪問次數(shù)初始為I; 步驟16)獲取臨時緩存中的緩存對象個數(shù)TCC,如果TCOTCT,轉(zhuǎn)步驟17 ;如果TCCXTCT,結(jié)束; 步驟17)刪除臨時緩存中最久未被訪問的一個臨時緩存對象,結(jié)束。2.根據(jù)權(quán)利要求1所述的顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,其特征在于,所述步驟I)中臨時緩存和全局緩存都采用鍵值對的形式存儲,其中,鍵均為請求的地址,值分別為臨時緩存對象和全局緩存對象。3.根據(jù)權(quán)利要求2所述的顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,其特征在于,所述每個臨時緩存對象的值中包括其鍵對應(yīng)的請求地址的最后訪問時間和對該地址的訪問次數(shù);所述每個全局緩存對象的值中包括其鍵對應(yīng)的請求地址的最后訪問時間和該請求對應(yīng)的結(jié)果數(shù)據(jù)。4.根據(jù)權(quán)利要求1所述的顧及訪問熱度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,其特征在于,所述步驟9)中,僅當(dāng)請求地址的訪問次數(shù)超過閾值時才將請求地址對應(yīng)的結(jié)果數(shù)據(jù)緩存到全局緩存中。
      【文檔編號】H04L29/08GK105915619SQ201610283274
      【公開日】2016年8月31日
      【申請日】2016年4月29日
      【發(fā)明人】郭明強, 黃穎, 謝忠, 吳亮, 羅顯剛
      【申請人】中國地質(zhì)大學(xué)(武漢)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1