專利名稱:混合緩存的協(xié)同式自適應(yīng)預(yù)取方法、中間件和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到計算機數(shù)據(jù)存儲技術(shù)領(lǐng)域,特別涉及到混合緩存的協(xié)同式自適應(yīng)預(yù)取方法、中間件和系統(tǒng)。
背景技術(shù):
在計算機數(shù)據(jù)存儲時,由于Flash本身具有讀寫不對稱的問題,特別是隨機寫速度表現(xiàn)不如人意,利用基于Flash的SSD來緩存和預(yù)取大量的順序數(shù)據(jù)流,可能會造成SSD上產(chǎn)生大量的寫操作,甚至產(chǎn)生嚴重的交織隨機讀寫情況,在最壞的情況下不僅不能節(jié)能,還會引起系統(tǒng)性能的下降,導(dǎo)致SSD壽命降低
發(fā)明內(nèi)容
本發(fā)明的主要目的為提供一種減少SSD寫次數(shù)、延長SSD使用壽命的混合緩存的協(xié)同式自適應(yīng)預(yù)取方法、中間件和系統(tǒng)。本發(fā)明提出一種混合緩存的協(xié)同式自適應(yīng)預(yù)取方法,包括步驟協(xié)同式自適應(yīng)預(yù)取CAP中間件判定預(yù)取數(shù)據(jù)請求到達;判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;如果否,則將所述預(yù)取數(shù)據(jù)請求存儲至所述DRAM中;如果是,則將所述預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中。優(yōu)選地,所述將預(yù)取數(shù)據(jù)請求存儲至所述DRAM中的步驟之后還包括將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述DRAM的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述DRAM的隨機鏈表中。優(yōu)選地,所述將預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中的步驟之后還包括將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述SSD的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表中。優(yōu)選地,所述混合緩存的協(xié)同式自適應(yīng)預(yù)取方法,還包括步驟將所述預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點數(shù)據(jù),存儲至所述SSD中,并將所述熱點數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表中。本發(fā)明還提出一種混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,包括請求判定模塊,用于判定預(yù)取數(shù)據(jù)請求到達;抖動判斷模塊,用于判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;DRAM數(shù)據(jù)存儲模塊,用于在所述DRAM未發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求存儲至所述DRAM中;SSD數(shù)據(jù)存儲模塊,用于在所述DRAM發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中。優(yōu)選地,所述混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,還包括DRAM地址存儲模塊,用于在所述DRAM未發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述DRAM的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述DRAM的隨機鏈表中。優(yōu)選地,所述混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,還包括SSD地址存儲模塊,用于在所述DRAM發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述SSD的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表中。優(yōu)選地,所述混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,還包括熱點數(shù)據(jù)存儲模塊,用于將所述預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點數(shù)據(jù),存儲至所述SSD中;熱點地址存儲模塊,用于將所述熱點數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表 中。本發(fā)明還提出一種混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng),包括混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,所述混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件包括請求判定模塊,用于判定預(yù)取數(shù)據(jù)請求到達;抖動判斷模塊,用于判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;DRAM數(shù)據(jù)存儲模塊,用于在所述DRAM未發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求存儲至所述DRAM中;SSD數(shù)據(jù)存儲模塊,用于在所述DRAM發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中;所述混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng)還包括動態(tài)隨機存取存儲器DRAM,用于在所述DRAM未發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求;固態(tài)硬盤SSD,用于在所述DRAM發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求。優(yōu)選地,所述DRAM包括順序鏈表和隨機鏈表;所述DRAM的順序鏈表,用于在所述DRAM未發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針;所述DRAM的隨機鏈表,用于在所述DRAM未發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針。優(yōu)選地,所述SSD包括順序鏈表和隨機鏈表;所述SSD的順序鏈表,用于在所述DRAM發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針;所述SSD的隨機鏈表,用于在所述DRAM發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針。優(yōu)選地,所述SSD還用于存儲熱點數(shù)據(jù),所述熱點數(shù)據(jù)為所述預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù);所述SSD的隨機鏈表還用于存儲所述熱點數(shù)據(jù)的地址指針。本發(fā)明將DRAM和SSD組成兩層混合緩存,采用協(xié)同式自適應(yīng)預(yù)取機制,通過CAP中間件對預(yù)取數(shù)據(jù)請求的存儲做調(diào)整,動態(tài)調(diào)整DRAM和SSD中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD的寫次數(shù),從而延長SSD的使用壽命。
圖I為本發(fā)明第一實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法步驟流程圖;圖2為本發(fā)明第二實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法步驟流程圖;
圖3為本發(fā)明第二實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法的預(yù)取示意圖;圖4為本發(fā)明第三實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法步驟流程圖;圖5為本發(fā)明第五實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件的結(jié)構(gòu)示意圖;圖6為本發(fā)明第六實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件的結(jié)構(gòu)示意圖;圖7為本發(fā)明第七實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件的結(jié)構(gòu)示意圖;圖8為本發(fā)明第八實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng)的結(jié)構(gòu)示意圖;圖9為本發(fā)明第九實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng)的結(jié)構(gòu)示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施例方式應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示,圖I為本發(fā)明第一實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法步驟流程圖,該實施例提到的混合緩存的協(xié)同式自適應(yīng)預(yù)取方法,包括步驟S101,協(xié)同式自適應(yīng)預(yù)取CAP中間件判定預(yù)取數(shù)據(jù)請求到達;到達的數(shù)據(jù)請求中,每一個數(shù)據(jù)流都由元數(shù)據(jù)信息和請求組成,元數(shù)據(jù)信息主要為數(shù)據(jù)流到達速率變化、預(yù)讀長度、順序性、命中率等信息。步驟S102,判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;如果否,則執(zhí)行步驟S103 ;如果是,則執(zhí)行步驟S104 ;步驟S103,將預(yù)取數(shù)據(jù)請求存儲至DRAM中;步驟S104,將預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中。所有的數(shù)據(jù)請求都經(jīng)過協(xié)同式自適應(yīng)預(yù)取CAP (Coordinated Andself-Adaptive)中間件進行處理,調(diào)整DRAM和SSD中的預(yù)取和緩存,以適應(yīng)負載的變化。本實施例將DRAM和SSD組成兩層混合緩存,采用協(xié)同式自適應(yīng)預(yù)取機制,通過CAP中間件對預(yù)取數(shù)據(jù)請求的存儲做調(diào)整,動態(tài)調(diào)整DRAM和SSD中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD的寫次數(shù),從而延長SSD的使用壽命。如圖2和圖3所示,圖2為本發(fā)明第二實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法步驟流程圖;圖3為本發(fā)明第二實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法的預(yù)取示意圖。步驟S201,協(xié)同式自適應(yīng)預(yù)取CAP中間件判定預(yù)取數(shù)據(jù)請求到達;步驟S202,判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;如果否,則執(zhí)行步驟S203 ;如果是,則執(zhí)行步驟S205 ;步驟S203,將預(yù)取數(shù)據(jù)請求存儲至DRAM中;步驟S204,將預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至DRAM的順序鏈表中;將預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至DRAM的隨機鏈表中;步驟S205,將預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中;
步驟S206,將預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至SSD的順序鏈表中;將預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至SSD的隨機鏈表中。到達的數(shù)據(jù)請求分成順序流和隨機流兩種。對于緩存中的順序頁面和隨機頁面,一般使用不同鏈表(如SARC)或者使用不同指針(如DUL0)來區(qū)分。本實施例中對DRAM和SSD的順序頁面和隨機頁面分別采用兩條鏈表的方式來區(qū)分。Seam和Rkam分別是DRAM中的順序鏈和隨機鏈。Sssd和Rssd分別是指的SSD中順序鏈和隨機鏈。所有順序流和隨機流的請求首先經(jīng)過CAP中間件進行處理,通過CAP中間件在預(yù)取數(shù)據(jù)請求中提取出順序流信息,動態(tài)調(diào)整DRAM和SSD中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD的寫次數(shù),從而延長SSD的使用壽命。如圖4所示,圖4為本發(fā)明第三實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取方法步驟流程圖。步驟S301,協(xié)同式自適應(yīng)預(yù)取CAP中間件判定預(yù)取數(shù)據(jù)請求到達;
步驟S302,判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;如果否,則執(zhí)行步驟S303 ;如果是,則執(zhí)行步驟S305 ;步驟S303,將預(yù)取數(shù)據(jù)請求存儲至DRAM中;步驟S304,將預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至DRAM的順序鏈表中;將預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至DRAM的隨機鏈表中;步驟S305,將預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中;步驟S306,將預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至SSD的順序鏈表中;將預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至SSD的隨機鏈表中。步驟S307,將預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點數(shù)據(jù),存儲至SSD中,并將熱點數(shù)據(jù)的地址指針存儲至SSD的隨機鏈表中。因為SSD對隨機寫數(shù)據(jù)較為敏感,為了減少對SSD的寫次數(shù),采用類似SieveStore的熱點數(shù)據(jù)篩選策略,將訪問頻繁較高的數(shù)據(jù)寫入到SSD中的隨機鏈Rssd中保存,或在預(yù)取的順序流數(shù)據(jù)中,如果數(shù)據(jù)訪問達到預(yù)設(shè)頻率閾值,則會被移至隨機鏈SSD上。例如在視頻點播中,當(dāng)檢測到某些視頻文件被頻繁點播時,而在DRAM中不能完成存儲,則將整個文件存入到SSD中,從而使其能滿足多個用戶的快速隨機點播。本實施例將熱點數(shù)據(jù)存儲到SSD中,可有效減少SSD的寫次數(shù),延長SSD的使用壽命。如圖5所示,圖5為本發(fā)明第五實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件的結(jié)構(gòu)示意圖,該實施例提及的混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件100,包括請求判定模塊110,用于判定預(yù)取數(shù)據(jù)請求到達;抖動判斷模塊120,用于判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;DRAM數(shù)據(jù)存儲模塊130,用于在DRAM未發(fā)生抖動時,將預(yù)取數(shù)據(jù)請求存儲至DRAM中;SSD數(shù)據(jù)存儲模塊140,用于在DRAM發(fā)生抖動時,將預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD 中。本實施例的到達的數(shù)據(jù)請求中,每一個數(shù)據(jù)流都由元數(shù)據(jù)信息和請求組成,元數(shù)據(jù)信息主要為數(shù)據(jù)流到達速率變化、預(yù)讀長度、順序性、命中率等信息。所有的數(shù)據(jù)請求都經(jīng)過CAP中間件100進行處理,調(diào)整DRAM和SSD中的預(yù)取和緩存,以適應(yīng)負載的變化。本實施例將DRAM和SSD組成兩層混合緩存,采用協(xié)同式自適應(yīng)預(yù)取機制,通過CAP中間件100對預(yù)取數(shù)據(jù)請求的存儲做調(diào)整,動態(tài)調(diào)整DRAM和SSD中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD的寫次數(shù),從而延長SSD的使用壽命。如圖6所示,圖6為本發(fā)明第六實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件的結(jié)構(gòu)示意圖,混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件100還包括DRAM地址存儲模塊150,用于在DRAM未發(fā)生抖動時,將預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至DRAM的順序鏈表中;將預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至DRAM的隨機鏈表中。SSD地址存儲模塊160,用于在DRAM發(fā)生抖動時,將預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至SSD的順序鏈表中;將預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至 SSD的隨機鏈表中。本實施例中,到達的數(shù)據(jù)請求分成順序流和隨機流兩種。對于緩存中的順序頁面和隨機頁面,一般使用不同鏈表(如SARC)或者使用不同指針(如DUL0)來區(qū)分。本實施例中對DRAM和SSD的順序頁面和隨機頁面分別采用兩條鏈表的方式來區(qū)分。Skam和Rkam分別是DRAM中的順序鏈和隨機鏈。Sssd和Rssd分別是指的SSD中順序鏈和隨機鏈。所有順序流和隨機流的請求首先經(jīng)過CAP中間件100進行處理,通過CAP中間件100在預(yù)取數(shù)據(jù)請求中提取出順序流信息,動態(tài)調(diào)整DRAM和SSD中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD的寫次數(shù),從而延長SSD的使用壽命。如圖7所示,圖7為本發(fā)明第七實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件的結(jié)構(gòu)示意圖,混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件100還包括熱點數(shù)據(jù)存儲模塊170,用于將預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點數(shù)據(jù),存儲至SSD中;熱點地址存儲模塊180,用于將熱點數(shù)據(jù)的地址指針存儲至SSD的隨機鏈表中。本實施例中,因為SSD對隨機寫數(shù)據(jù)較為敏感,為了減少對SSD的寫次數(shù),采用類似SieveStore的熱點數(shù)據(jù)篩選策略,將訪問頻繁較高的數(shù)據(jù)寫入到SSD中的隨機鏈Rssd中保存,或在預(yù)取的順序流數(shù)據(jù)中,如果數(shù)據(jù)訪問達到預(yù)設(shè)頻率閾值,則會被移至隨機鏈SSD上。例如在視頻點播中,當(dāng)檢測到某些視頻文件被頻繁點播時,而在DRAM中不能完成存儲,則將整個文件存入到SSD中,從而使其能滿足多個用戶的快速隨機點播。本實施例將熱點數(shù)據(jù)存儲到SSD中,可有效減少SSD的寫次數(shù),延長SSD的使用壽命。如圖8所示,圖8為本發(fā)明第八實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng)的結(jié)構(gòu)示意圖,該實施例提及的混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng),包混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件100、動態(tài)隨機存取存儲器DRAM 200和固態(tài)硬盤SSD 300,其中,混合緩存的協(xié)同式自適應(yīng)預(yù)取CAP中間件100包括請求判定模塊110,用于判定預(yù)取數(shù)據(jù)請求到達;抖動判斷模塊120,用于判斷動態(tài)隨機存取存儲器DRAM 200中是否發(fā)生抖動;DRAM數(shù)據(jù)存儲模塊130,用于在DRAM 200未發(fā)生抖動時,將預(yù)取數(shù)據(jù)請求存儲至DRAM 200 中;SSD數(shù)據(jù)存儲模塊140,用于在DRAM 200發(fā)生抖動時,將預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD 300中。
動態(tài)隨機存取存儲器DRAM 200,用于在DRAM 200未發(fā)生抖動時,存儲預(yù)取數(shù)據(jù)請求;固態(tài)硬盤SSD 300,用于在DRAM 200發(fā)生抖動時,存儲預(yù)取數(shù)據(jù)請求。本發(fā)明混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng)中的協(xié)同式自適應(yīng)預(yù)取中間件100可包括前述圖5至7所示實施例中所有技術(shù)方案,其詳細結(jié)構(gòu)及預(yù)取原理可參照前述實施例,在此不作贅述。由于采用前述協(xié)同式自適應(yīng)預(yù)取中間件100的方案,本發(fā)明混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng)對現(xiàn)有的數(shù)據(jù)預(yù)取系統(tǒng)而言,可動態(tài)調(diào)整DRAM 200和SSD 300中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD 300的寫次數(shù),從而延長SSD 300的使用壽命。如圖9所示,圖9為本發(fā)明第九實施例中混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng)的結(jié)構(gòu)示意圖。DRAM 200包括順序鏈表210和隨機鏈表220 ;
DRAM的順序鏈表210,用于在DRAM 200未發(fā)生抖動時,存儲預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針;DRAM的隨機鏈表220,用于在DRAM 200未發(fā)生抖動時,存儲預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針。SSD 300包括順序鏈表310和隨機鏈表320 ;SSD的順序鏈表310,用于在DRAM 200發(fā)生抖動時,存儲預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針;SSD的隨機鏈表320,用于在DRAM 200發(fā)生抖動時,存儲預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針。本實施例中,到達的數(shù)據(jù)請求分成順序流和隨機流兩種。對于緩存中的順序頁面和隨機頁面,一般使用不同鏈表(如SARC)或者使用不同指針(如DUL0)來區(qū)分。本實施例中對DRAM 200和SSD 300的順序頁面和隨機頁面分別采用兩條鏈表的方式來區(qū)分。Seam和Ream分別是DRAM的順序鏈表210和DRAM的隨機鏈表220。Sssd和Rssd分別是指的SSD的順序鏈表310和SSD的隨機鏈表320。所有順序流和隨機流的請求首先經(jīng)過CAP中間件100進行處理,通過CAP中間件100在預(yù)取數(shù)據(jù)請求中提取出順序流信息,動態(tài)調(diào)整DRAM 200和SSD 300中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD的寫次數(shù),從而延長SSD的使用壽命。本發(fā)明實施例的SSD 300還用于存儲熱點數(shù)據(jù),熱點數(shù)據(jù)為預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù);SSD的隨機鏈表320還用于存儲熱點數(shù)據(jù)的地址指針。本實施例中,因為SSD 300對隨機寫數(shù)據(jù)較為敏感,為了減少對SSD 300的寫次數(shù),采用類似SieveStore的熱點數(shù)據(jù)篩選策略,將訪問頻繁較高的數(shù)據(jù)寫入到SSD的隨機鏈表320中保存,或在預(yù)取的順序流數(shù)據(jù)中,如果數(shù)據(jù)訪問達到預(yù)設(shè)頻率閾值,則會被移至SSD的隨機鏈表320上。例如在視頻點播中,當(dāng)檢測到某些視頻文件被頻繁點播時,而在DRAM 200中不能完成存儲,則將整個文件存入到SSD 300中,從而使其能滿足多個用戶的快速隨機點播。本實施例將熱點數(shù)據(jù)存儲到SSD 300中,可有效減少SSD 300的寫次數(shù),延長SSD 300的使用壽命。以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的 專利保護范圍內(nèi)。
權(quán)利要求
1.一種混合緩存的協(xié)同式自適應(yīng)預(yù)取方法,其特征在于,包括步驟 協(xié)同式自適應(yīng)預(yù)取CAP中間件判定預(yù)取數(shù)據(jù)請求到達; 判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動; 如果否,則將所述預(yù)取數(shù)據(jù)請求存儲至所述DRAM中; 如果是,則將所述預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中。
2.根據(jù)權(quán)利要求I所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取方法,其特征在于,所述將預(yù)取數(shù)據(jù)請求存儲至所述DRAM中的步驟之后還包括 將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述DRAM的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述DRAM的隨機鏈表中。
3.根據(jù)權(quán)利要求I所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取方法,其特征在于,所述將預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中的步驟之后還包括 將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述SSD的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表中。
4.根據(jù)權(quán)利要求2或3所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取方法,其特征在于,還包括步驟 將所述預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點數(shù)據(jù),存儲至所述SSD中,并將所述熱點數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表中。
5.一種混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,其特征在于,包括 請求判定模塊,用于判定預(yù)取數(shù)據(jù)請求到達; 抖動判斷模塊,用于判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動; DRAM數(shù)據(jù)存儲模塊,用于在所述DRAM未發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求存儲至所述DRAM 中; SSD數(shù)據(jù)存儲模塊,用于在所述DRAM發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中。
6.根據(jù)權(quán)利要求5所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,其特征在于,還包括 DRAM地址存儲模塊,用于在所述DRAM未發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述DRAM的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述DRAM的隨機鏈表中。
7.根據(jù)權(quán)利要求5所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,其特征在于,還包括 SSD地址存儲模塊,用于在所述DRAM發(fā)生抖動時,將所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針存儲至所述SSD的順序鏈表中;將所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表中。
8.根據(jù)權(quán)利要求6或7所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件,其特征在于,還包括 熱點數(shù)據(jù)存儲模塊,用于將所述預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點數(shù)據(jù),存儲至所述SSD中; 熱點地址存儲模塊,用于將所述熱點數(shù)據(jù)的地址指針存儲至所述SSD的隨機鏈表中。
9.一種混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng),其特征在于,包括如權(quán)利要求5至8任一項所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取中間件;還包括 動態(tài)隨機存取存儲器DRAM,用于在所述DRAM未發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求; 固態(tài)硬盤SSD,用于在所述DRAM發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求。
10.根據(jù)權(quán)利要求9所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng),其特征在于,所述DRAM包括順序鏈表和隨機鏈表; 所述DRAM的順序鏈表,用于在所述DRAM未發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針; 所述DRAM的隨機鏈表,用于在所述DRAM未發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針。
11.根據(jù)權(quán)利要求9所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng),其特征在于,所述SSD包括順序鏈表和隨機鏈表; 所述SSD的順序鏈表,用于在所述DRAM發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的順序流數(shù)據(jù)的地址指針; 所述SSD的隨機鏈表,用于在所述DRAM發(fā)生抖動時,存儲所述預(yù)取數(shù)據(jù)請求中的隨機流數(shù)據(jù)的地址指針。
12.根據(jù)權(quán)利要求10或11所述的混合緩存的協(xié)同式自適應(yīng)預(yù)取系統(tǒng),其特征在于,所述SSD還用于存儲熱點數(shù)據(jù),所述熱點數(shù)據(jù)為所述預(yù)取數(shù)據(jù)請求的順序流數(shù)據(jù)中訪問頻率超過預(yù)設(shè)頻率閾值的數(shù)據(jù); 所述SSD的隨機鏈表還用于存儲所述熱點數(shù)據(jù)的地址指針。
全文摘要
本發(fā)明公開了一種混合緩存的協(xié)同式自適應(yīng)預(yù)取方法、中間件和系統(tǒng),其方法包括步驟協(xié)同式自適應(yīng)預(yù)取CAP中間件判定預(yù)取數(shù)據(jù)請求到達;判斷動態(tài)隨機存取存儲器DRAM中是否發(fā)生抖動;如果否,則將所述預(yù)取數(shù)據(jù)請求存儲至所述DRAM中;如果是,則將所述預(yù)取數(shù)據(jù)請求存儲至固態(tài)硬盤SSD中。本發(fā)明將DRAM和SSD組成兩層混合緩存,采用協(xié)同式自適應(yīng)預(yù)取機制,通過CAP中間件對預(yù)取數(shù)據(jù)請求的存儲做調(diào)整,動態(tài)調(diào)整DRAM和SSD中的預(yù)取行為,提高系統(tǒng)的整體吞吐量,減少對SSD的寫次數(shù),從而延長SSD的使用壽命。
文檔編號G06F12/08GK102779098SQ20121019581
公開日2012年11月14日 申請日期2012年6月14日 優(yōu)先權(quán)日2012年6月14日
發(fā)明者葛雄資 申請人:國家超級計算深圳中心(深圳云計算中心)