緩存調度方法與系統(tǒng)及其介質的制作方法
【專利摘要】本發(fā)明提供一種緩存調度方法與系統(tǒng),根據(jù)獲取到的緩存數(shù)據(jù),確定緩存對象,之后查找緩存對象的下一次預計訪問時間,若緩存對象表中有當前緩存對象的下一次預計訪問時間,則直接讀取并根據(jù)緩存數(shù)據(jù)更新緩存對象訪問信息,若緩存對象表中無當前緩存對象的下一次預計訪問時間則計算下一次預計訪問時間。在需要進行緩存對象調整時,只需根據(jù)緩存對象下一次預計訪問時間的大小對緩存對象進行排序,簡單、高效對緩存對象進行緩存調度。另外,緩存對象的下一次預計訪問時間是嚴格按照當前緩存數(shù)據(jù)和/或歷史緩存數(shù)據(jù)進行計算的,確保了最后計算的結果的精準和真實,也保證了緩存調度的準確。
【專利說明】緩存調度方法與系統(tǒng)及其介質
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)調度【技術領域】,特別是涉及緩存調度方法與系統(tǒng)及其介質。
【背景技術】
[0002]大規(guī)模信息系統(tǒng)中,由于數(shù)據(jù)量大,用戶數(shù)多,為了快速響應用戶請求,需要將用戶經常訪問的數(shù)據(jù)放入快速存儲區(qū)域進行緩存。
[0003]目前的緩存策略主要有:
[0004]I)基于訪問時間的算法,此類算法按各緩存項的被訪問時間來組織緩存隊列,決
定替換對象。
[0005]2)基于訪問頻率:此類算法用緩存項的被訪問頻率來組織緩存。
[0006]3)訪問時間與頻率兼顧:通過兼顧訪問時間與頻率,使得在數(shù)據(jù)訪問模式變化時緩存策略仍有較好性能。多數(shù)此類算法具有一個可調或自適應參數(shù),通過該參數(shù)的調節(jié)使緩存策略在基于訪問時間與頻率間取得一定平衡。
[0007]4)基于訪問模式:某些應用有較明確的的數(shù)據(jù)訪問特點,進而產生與其相適應的緩存策略。
[0008]現(xiàn)有模式的方式主要的缺陷在于,其策略無法簡單根據(jù)系統(tǒng)的動態(tài)運行特點進行緩存對象的調整。在信息系統(tǒng)的運行過程中,其數(shù)據(jù)量、用戶量、數(shù)據(jù)訪問方式都在動態(tài)調整,為了最優(yōu)化緩存效率,常常需要根據(jù)其運行特點將緩存對象進行動態(tài)調整,而采用一般緩存調度的模式無法簡單實現(xiàn)緩存對象的調整,導致緩存調度效率下。
【發(fā)明內容】
[0009]基于此,有必要針對一般緩存調度的模式緩存對象調整復雜的問題,提供一種緩存對象調整簡單、且緩存調度效率高的緩存調度方法與系統(tǒng)及其介質。
[0010]一種緩存調度方法,包括步驟:
[0011]獲取緩存數(shù)據(jù),確定當前緩存對象;
[0012]檢測緩存對象表中是否包含所述當前緩存對象,其中,所述緩存對象表包含有緩存對象以及與緩存對象相應的緩存對象的下一次預計訪問時間的數(shù)據(jù);
[0013]若所述緩存對象表中包含所述當前緩存對象,則從所述緩存對象表中獲取當前緩存對象的下一次預計訪問時間,并根據(jù)所述緩存數(shù)據(jù)更新所述緩存對象表中的緩存對象訪問信息;
[0014]若所述緩存對象表中包未含所述當前緩存對象,則根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息,根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,將計算結果寫入所述當前緩存對象訪問信息中,并將攜帶有所述當前緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息寫入緩存對象表中;
[0015]根據(jù)緩存對象表中各個緩存對象的下一次預計訪問時間,確定當前緩存調度的對象。[0016]一種緩存調度系統(tǒng),包括:
[0017]獲取模塊,用于獲取緩存數(shù)據(jù),確定當前緩存對象;
[0018]檢測模塊,用于檢測緩存對象表中是否包含所述當前緩存對象,其中,所述緩存對象表包含有緩存對象以及與緩存對象相應的緩存對象的下一次預計訪問時間的數(shù)據(jù);
[0019]第一處理模塊,用于當所述緩存對象表中包含所述當前緩存對象時,從所述緩存對象表中獲取當前緩存對象的下一次預計訪問時間,并根據(jù)所述緩存數(shù)據(jù)更新所述緩存對象表中的緩存對象訪問信息;
[0020]第二處理模塊,用于當所述緩存對象表中包未含所述當前緩存對象,根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息,根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,將計算結果寫入所述當前緩存對象訪問信息中,并將攜帶有所述當前緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息寫入緩存對象表中;
[0021]確定模塊,用于根據(jù)緩存對象表中各個緩存對象的下一次預計訪問時間,確定當前緩存調度的對象。
[0022]一種機器可讀介質,所述機器可讀介質加載有如上述的緩存調度方法。
[0023]本發(fā)明提供一種緩存調度方法與系統(tǒng),根據(jù)獲取到的緩存數(shù)據(jù),確定緩存對象,之后查找緩存對象的下一次預計訪問時間,若緩存對象表中有當前緩存對象的下一次預計訪問時間,則直接讀取并根據(jù)緩存數(shù)據(jù)更新緩存對象訪問信息,若緩存對象表中無當前緩存對象的下一次預計訪問時間則計算下一次預計訪問時間。在需要進行緩存對象調整時,只需根據(jù)緩存對象下一次預計訪問時間的大小對緩存對象進行排序,簡單、高效對緩存對象進行緩存調度。另外,緩存對象的下一次預計訪問時間是嚴格按照當前緩存數(shù)據(jù)和/或歷史緩存數(shù)據(jù)進行計算的,確保了最后計算的結果的精準和真實,也保證了緩存調度的準確。
【專利附圖】
【附圖說明】
[0024]圖1為本發(fā)明緩存調度方法第一個實施例的流程示意圖;
[0025]圖2為本發(fā)明緩存調度方法第二個實施例的流程示意圖;
[0026]圖3為本發(fā)明緩存調度系統(tǒng)第一個實施例的結構示意圖;
[0027]圖4為本發(fā)明緩存調度系統(tǒng)第二個實施例的結構示意圖。
【具體實施方式】
[0028]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下根據(jù)附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0029]如圖1所示,一種緩存調度方法,其特征在于,包括步驟:
[0030]SlOO:獲取緩存數(shù)據(jù),確定當前緩存對象。
[0031]獲取當前需要進行緩存調度的緩存數(shù)據(jù),解析接收到緩存數(shù)據(jù)即可確定當前緩存對象。
[0032]S200:檢測緩存對象表中是否包含所述當前緩存對象,其中,所述緩存對象表包含有緩存對象以及與緩存對象相應的緩存對象的下一次預計訪問時間的數(shù)據(jù)。
[0033]檢測已有的緩存對象表中是否包含有當前緩存對象,在這里,緩存對象表中包含有緩存對象以及與緩存對象相匹配的緩存對象的下一次預計訪問時間。例如緩存對象表中有緩存對象A、B、C,以及與A、B、C下一次預計訪問時間。簡單來說,就是緩存對象表中包含了緩存對象以及與其對應下一次預計訪問時間。
[0034]S300:若所述緩存對象表中包含所述當前緩存對象,則從所述緩存對象表中獲取當前緩存對象的下一次預計訪問時間,并根據(jù)所述緩存數(shù)據(jù)更新所述緩存對象表中的緩存對象訪問信息。
[0035]當緩存對象表中包含有當前緩存對象時,可以直接從緩存對象表中直接讀取該緩存對象的下一次預計訪問時間。由于相同的緩存對象可能攜帶有不同的緩存信息或該緩存對象被緩存調度的周期、對緩存調度的狀態(tài)等數(shù)據(jù)需要保存在緩存對象表中的,就需要將這些由該緩存數(shù)據(jù)緩存調度帶來的信息更新到緩存對象表中的緩存對象訪問信息中,以便在之后的步驟中查找使用。
[0036]S400:若所述緩存對象表中包未含所述當前緩存對象,則根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息,根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,將計算結果寫入所述當前緩存對象訪問信息中,并將攜帶有所述當前緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息寫入緩存對象表中。
[0037]當緩存對象表中沒有包含當前緩存對象,那么就無法直接從緩存對象表中直接讀取當前緩存對象的下一次預計訪問時間,需要根據(jù)當前緩存對象訪問信息計算當前緩存對象的下一次預計訪問時間,這個計算有多種方式,當計算出結果后,將結果寫入當前緩存對象訪問信息中,最后再將當前緩存對象訪問信息寫入緩存對象表中,以便在今后的操作中直接讀取。簡單來說,本步驟是一個類似于新的緩存對象在緩存對象表中建立一個存檔數(shù)據(jù)的過程,這個存檔數(shù)據(jù)包括緩存對象名稱、下一次預計訪問時間以及緩存對象訪問信息等數(shù)據(jù)。
[0038]S500:根據(jù)緩存對象表中各個緩存對象的下一次預計訪問時間,確定當前緩存調度的對象。
[0039]在這里,緩存對象表中保存有各個緩存對象以及與其相應的下一次預計訪問時間,當需要進行緩存調度的對象確定時,只需要將緩存對象表中的緩存對象的下次一次預計訪問時間按照一個大小順序進行依次排序,根據(jù)這個排序對將緩存對象進行動態(tài)調整。
[0040]本發(fā)明提供一種緩存調度方法,根據(jù)獲取到的緩存數(shù)據(jù),確定緩存對象,之后查找緩存對象的下一次預計訪問時間,若緩存對象表中有當前緩存對象的下一次預計訪問時間,則直接讀取并根據(jù)緩存數(shù)據(jù)更新緩存對象訪問信息,若緩存對象表中無當前緩存對象的下一次預計訪問時間則計算下一次預計訪問時間。在需要進行緩存對象調整時,只需根據(jù)緩存對象下一次預計訪問時間的大小對緩存對象進行排序,簡單、高效對緩存對象進行緩存調度。另外,緩存對象的下一次預計訪問時間是嚴格按照當前緩存數(shù)據(jù)和/或歷史緩存數(shù)據(jù)進行計算的,確保了最后計算的結果的精準和真實,也保證了緩存調度的準確。
[0041]如圖2所示,所述S400具體包括步驟:
[0042]S420:當緩存對象表中包未含有所述當前緩存對象時,根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問?目息;
[0043]S440:根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,并將計算結果寫入所述緩存對象訪問信息中;[0044]S460:檢測所述緩存對象表剩余空間大小;
[0045]S480:當所述緩存對象表剩余空間大小不大于所述當前緩存對象訪問信息的大小時,按照所述緩存對象表中已有緩存對象的下一次預計訪問時間長度從長到短的順序,依次剔除已有緩存對象訪問信息,直至所述緩存對象表剩余空間大小大于所述當前緩存對象訪問信息的大?。?br>
[0046]S490:將攜帶有所述緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息更新到緩存對象表中。
[0047]由于緩存對象表的存儲空間是有限的,而緩存對象的數(shù)量是未知的,當大量不同的緩存對象需要保存緩存對象訪問信息到緩存對象表中時就有可能出現(xiàn)緩存對象表無剩余的空間存儲更多個緩存對象訪問信息,這時就需要安排一個機制來清除緩存對象表的已保存的緩存對象信息。在本實施例中,當所述緩存對象表剩余空間大小不大于所述當前緩存對象訪問信息的大小時,按照所述緩存對象表中已有緩存對象的下一次預計訪問時間長度從長到短的順序,依次剔除已有緩存對象訪問信息,直至所述緩存對象表剩余空間大小大于所述當前緩存對象訪問信息的大小。在確保緩存對象訪問信息正常寫入緩存對象表中的同時也保證了正常的緩存調度的效率和準確。
[0048]在其中一個實施例中,緩存對象訪問信息還包括緩存對象最近訪問時間、緩存對象最近訪問時間間隔、緩存對象載入時間、緩存對象在緩存中訪問次數(shù)和緩存對象的緩存空間大小。
[0049]在其中一個實施例中,所述計算緩存對象的下一次預計訪問時間,并將計算結果寫入所述當前緩存對象訪問信息中具體包括步驟:
[0050]獲取緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù);
[0051]根據(jù)緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù)計算策略參數(shù);
[0052]根據(jù)當前緩存對象最近訪問時間、緩存對象最近訪問時間間隔、緩存對象載入時間、緩存對象在緩存中訪問次數(shù)、緩存對象的緩存空間大小和所述策略參數(shù)計算當前緩存對象的下一次預計訪問時間;
[0053]將計算得到結果寫入所述當前緩存對象訪問信息中。
[0054]本實施例為詳細計算緩存對象的下一次預計訪問時間的一種方法,首選利用歷史數(shù)據(jù)計算得出策略參數(shù),之后再根據(jù)當前緩存對象最近訪問時間、緩存對象最近訪問時間間隔、緩存對象載入時間、緩存對象在緩存中訪問次數(shù)、緩存對象的緩存空間大小和所述策略參數(shù)計算當前緩存對象的下一次預計訪問時間。其具體計算過程以及公式如下:
[0055]緩存對象最近訪問時間tr、緩存對象最近訪問時間間隔tp、緩存對象載入時間tl、緩存對象在緩存中訪問次數(shù)nc ;計算緩存對象下一次預訪時間te的方法采用以下公式為:[0056]
【權利要求】
1.一種緩存調度方法,其特征在于,包括步驟: 獲取緩存數(shù)據(jù),確定當前緩存對象; 檢測緩存對象表中是否包含所述當前緩存對象,其中,所述緩存對象表包含有緩存對象以及與緩存對象相應的緩存對象的下一次預計訪問時間的數(shù)據(jù); 若所述緩存對象表中包含所述當前緩存對象,則從所述緩存對象表中獲取當前緩存對象的下一次預計訪問時間,并根據(jù)所述緩存數(shù)據(jù)更新所述緩存對象表中的緩存對象訪問信息; 若所述緩存對象表中包未含所述當前緩存對象,則根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息,根據(jù)所述當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,將計算結果寫入所述當前緩存對象訪問信息中,并將攜帶有所述當前緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息寫入緩存對象表中; 根據(jù)緩存對象表中各個緩存對象的下一次預計訪問時間,確定當前緩存調度的對象。
2.根據(jù)權利要求1所述的緩存調度方法,其特征在于,所述若所述緩存對象表中包未含所述當前緩存對象,則根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息,根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,將計算結果寫入所述當前緩存對象訪問信息中,并將攜帶有所述當前緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息寫入緩存對象表中具體包括步驟: 當緩存對象表中包未含有所述當前緩存對象時,根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息; 根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,并將計算結果寫入所述緩存對象訪問信息中; 檢測所述緩存對象表剩余空間大小; 當所述緩存對象表剩余空間大小不大于所述當前緩存對象訪問信息的大小時,按照所述緩存對象表中已有緩存對象的下一次預計訪問時間長度從長到短的順序,依次剔除已有緩存對象訪問信息,直至所述緩存對象表剩余空間大小大于所述當前緩存對象訪問信息的大??; 將攜帶有所述緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息更新到緩存對象表中。
3.根據(jù)權利要求1或2所述的緩存調度方法,其特征在于,緩存對象訪問信息還包括緩存對象最近訪問時間、緩存對象最近訪問時間間隔、緩存對象載入時間、緩存對象在緩存中訪問次數(shù)和緩存對象的緩存空間大小。
4.根據(jù)權利要求3所述的緩存調度方法,其特征在于,所述計算緩存對象的下一次預計訪問時間,并將計算結果寫入所述當前緩存對象訪問信息中具體包括步驟: 獲取緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù); 根據(jù)緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù)計算策略參數(shù); 根據(jù)當前緩存對象最近訪問時間、緩存對象最近訪問時間間隔、緩存對象載入時間、緩存對象在緩存中訪問次數(shù)、緩存對象的緩存空間大小和所述策略參數(shù)計算當前緩存對象的下一次預計訪問時間; 將計算得到結果寫入所述當前緩存對象訪問信息中。
5.根據(jù)權利要求4所述的緩存調度方法,其特征在于,所述根據(jù)緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù)計算策略參數(shù)具體為: 利用最小二乘法,根據(jù)緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù)計算策略參數(shù)。
6.一種緩存調度系統(tǒng),其特征在于,包括: 獲取模塊,用于獲取緩存數(shù)據(jù),確定當前緩存對象; 檢測模塊,用于檢測緩存對象表中是否包含所述當前緩存對象,其中,所述緩存對象表包含有緩存對象以及與緩存對象相應的緩存對象的下一次預計訪問時間的數(shù)據(jù); 第一處理模塊,用于當所述緩存對象表中包含所述當前緩存對象時,從所述緩存對象表中獲取當前緩存對象的下一次預計訪問時間,并根據(jù)所述緩存數(shù)據(jù)更新所述緩存對象表中的緩存對象訪問信息; 第二處理模塊,用于當所述緩存對象表中包未含所述當前緩存對象,根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息,根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,將計算結果寫入所述當前緩存對象訪問信息中,并將攜帶有所述當前緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息寫入緩存對象表中; 確定模塊,用于根據(jù)緩存 對象表中各個緩存對象的下一次預計訪問時間,確定當前緩存調度的對象。
7.根據(jù)權利要求6所述的緩存調度系統(tǒng),其特征在于,所述第二處理模塊具體包括: 建立單元,用于當緩存對象表中包未含有所述當前緩存對象時,根據(jù)所述緩存數(shù)據(jù)建立當前緩存對象訪問信息; 計算單元,用于根據(jù)當前緩存對象訪問信息,計算所述當前緩存對象的下一次預計訪問時間,并將計算結果寫入所述緩存對象訪問信息中; 檢測單元,用于檢測所述緩存對象表剩余空間大小; 空間處理單元,用于當所述緩存對象表剩余空間大小不大于所述當前緩存對象訪問信息的大小時,按照所述緩存對象表中已有緩存對象的下一次預計訪問時間長度從長到短的順序,依次剔除已有緩存對象訪問信息,直至所述緩存對象表剩余空間大小大于所述當前緩存對象訪問信息的大小; 更新單元,用于將攜帶有所述緩存對象的下一次預計訪問時間的所述當前緩存對象訪問信息更新到緩存對象表中。
8.根據(jù)權利要求6或7所述的緩存調度系統(tǒng),其特征在于,所述緩存對象訪問信息還包括緩存對象最近訪問時間、緩存對象最近訪問時間間隔、緩存對象載入時間、緩存對象在緩存中訪問次數(shù)和緩存對象的緩存空間大小。
9.根據(jù)權利要求8所述的緩存調度系統(tǒng),其特征在于,所述計算單元具體包括: 歷史數(shù)據(jù)獲取單元,用于獲取緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù); 策略參數(shù)計算單元,用于根據(jù)緩存對象表中已存緩存對象的實際訪問時間和下一次預計訪問時間的歷史數(shù)據(jù)計算策略參數(shù);計算執(zhí)行單元,用于根據(jù)當前緩存對象最近訪問時間、緩存對象最近訪問時間間隔、緩存對象載入時間、緩存對象在緩存中訪問次數(shù)、緩存對象的緩存空間大小和所述策略參數(shù)計算當前緩存對象的下一次預計訪問時間; 結果寫入單元,用于將計算得到結果寫入所述當前緩存對象訪問信息中。
10.一種機器可讀介質,其特征在于,所述機器可讀介質加載有如權利要求1-5所述的緩存調度方法。
【文檔編號】G06F12/08GK103544119SQ201310446326
【公開日】2014年1月29日 申請日期:2013年9月26日 優(yōu)先權日:2013年9月26日
【發(fā)明者】謝善益, 梅桂華, 周剛, 曾強, 趙繼光, 馬明, 李玎, 徐柏榆, 翟瑞聰 申請人:廣東電網(wǎng)公司電力科學研究院