1.一種分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,所述分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理系統(tǒng)包括查詢執(zhí)行引擎、緩存主控節(jié)點以及至少一個緩存從節(jié)點,其特征在于,所述緩存管理方法包括:
在緩存主控節(jié)點中建立緩存隊列,所述緩存隊列中每項元素對應為一個物理任務的緩存元數(shù)據(jù);
以每個物理任務為根節(jié)點切割其所在的物理執(zhí)行計劃以獲得每個物理任務對應的緩存計算軌跡;
根據(jù)每個物理任務對應的緩存計算軌跡在緩存主控節(jié)點中構(gòu)建緩存特征樹;
在查詢請求到來時,查詢執(zhí)行引擎將SQL語句解析成物理執(zhí)行計劃;
從物理執(zhí)行計劃的根節(jié)點開始層次遍歷物理執(zhí)行計劃中每個節(jié)點,判斷每個物理任務對應的緩存計算軌跡是否與所述緩存特征樹匹配;
若匹配,直接從緩存從節(jié)點中讀取該物理任務的緩存實際數(shù)據(jù),否則計算該物理任務。
2.根據(jù)權(quán)利要求1所述的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,其特征在于,所述緩存隊列中每項元素按權(quán)重從大到小的順序排列。
3.根據(jù)權(quán)利要求2所述的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,其特征在于,所述緩存隊列中每項元素的權(quán)重根據(jù)Wi=qi×(a×Si+b×Pi)獲得,其中,Wi為第i項元素的權(quán)重,qi為第i項元素對應的物理任務的權(quán)重因子,Si為第i項元素的時空比且ti為第i項元素對應的緩存計算軌跡中到根節(jié)點最長路徑的時間,ki為第i項元素對應的存儲策略常量,mi為第i項元素實際所占的系統(tǒng)存儲空間,Pi為第i項元素的命中頻率且ni為第i項元素的歷史命中次數(shù),di為第i項元素距離上一次命中的時間間隔,vi為第i項元素平均命中時間間隔,a為時空比對權(quán)重的影響因子,b為命中頻率對權(quán)重的影響因子,i為正整數(shù)。
4.根據(jù)權(quán)利要求3所述的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,其特征在于,還包括當所述緩存管理系統(tǒng)收到新緩存的存儲請求時進行如下步驟:
步驟S1,更新所述緩存隊列中每項元素的權(quán)重;
步驟S2,判斷所述緩存管理系統(tǒng)當前剩余空間是否足以存儲新緩存;
若所述緩存管理系統(tǒng)當前剩余空間足以存儲新緩存,執(zhí)行步驟S3,緩存主控節(jié)點通知緩存從節(jié)點存儲新緩存,將新緩存元數(shù)據(jù)放入所述緩存隊列,并在所述緩存特征樹中記錄新緩存對應的緩存計算軌跡;
若所述緩存管理系統(tǒng)當前剩余空間不足以存儲新緩存,執(zhí)行步驟S4,判斷新緩存的權(quán)重是否大于所述緩存隊列中最后一項元素的權(quán)重;
若新緩存的權(quán)重不大于所述緩存隊列中最后一項元素的權(quán)重,執(zhí)行步驟S5,緩存主控節(jié)點通知緩存從節(jié)點拒絕存儲新緩存;
若新緩存的權(quán)重大于所述緩存隊列中最后一項元素的權(quán)重,執(zhí)行步驟S6,判斷是否仍有查詢操作正在使用所述緩存隊列中最后一項元素;
若仍有查詢操作正在使用所述緩存隊列中最后一項元素,執(zhí)行步驟S7,將所述緩存隊列中最后一項元素標記為待刪除;
若無查詢操作正在使用所述緩存隊列中最后一項元素,執(zhí)行步驟S8,緩存主控節(jié)點刪除所述緩存隊列中最后一項元素,回收所述緩存管理系統(tǒng)中被淘汰緩存占用的存儲空間,從所述緩存特征樹中刪除所述緩存隊列中最后一項元素對應的緩存計算軌跡,并轉(zhuǎn)到步驟S2。
5.根據(jù)權(quán)利要求4所述的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,其特征在于,還包括:
為所述緩存隊列中每項元素設置一個對應的引用計數(shù),當一項元素首次命中時,將該項元素對應的引用計數(shù)置1,并且啟動一個計時器;
若在計時器超時前,緩存主控節(jié)點收到使用一項元素的SQL語句查詢完畢的反饋,則將該項元素對應的引用計數(shù)減1,并重置計時器;
在一項元素對應的引用計數(shù)等于0時,則關(guān)閉計時器。
6.根據(jù)權(quán)利要求5所述的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,其特征在于,判斷是否仍有查詢操作正在使用所述緩存隊列中最后一項元素為判斷所述緩存隊列中最后一項元素對應的引用計數(shù)是否為0。
7.根據(jù)權(quán)利要求1所述的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,其特征在于,每個物理任務對應的緩存計算軌跡包括每個節(jié)點的結(jié)果計算時間、結(jié)果存儲大小以及每條邊代表的數(shù)據(jù)傳輸時間。
8.根據(jù)權(quán)利要求1所述的分布式內(nèi)存列式數(shù)據(jù)庫的緩存管理方法,其特征在于,所述緩存特征樹中所有節(jié)點所涉及的表都擁有版本號。