本發(fā)明涉及緩存技術(shù)領(lǐng)域,更具體地說,涉及一種基于SSD的數(shù)據(jù)獲取方法及系統(tǒng)。
背景技術(shù):
隨著大數(shù)據(jù)時代的來臨,對存儲系統(tǒng)的性能要求越來越高。緩存中SSD的應(yīng)用極大地緩解了HDD存儲介質(zhì)的性能瓶頸難題,但與HDD相比,SSD的成本較高,因此在存儲系統(tǒng)中只作為緩存使用。讀取緩存速度遠(yuǎn)高于讀取內(nèi)存,因此SSD能否高效利用是決定該系統(tǒng)性能的一個重要因素。
為了保證較高的緩存命中率,緩存中的內(nèi)容通常按照LRU算法進行替換。它是將最近一段時間內(nèi)最少訪問的數(shù)據(jù)剔除,提高緩存的利用率?,F(xiàn)代計算機普通采用緩存分級機制,一級緩存L1基本在4KB到64KB之間,二級緩存L2的容量則分為128KB、256KB、512KB、1MB、2MB、4MB等。二級緩存是提高CPU性能的關(guān)鍵。通常L1命中率約為80%,L2命中率為16%。其余4%的數(shù)據(jù)需要從內(nèi)存調(diào)用,這已經(jīng)是一個相當(dāng)小的比例。
因此,如何增加緩存命中率,加快響應(yīng)速度,提升存儲系統(tǒng)的性能是本領(lǐng)域技術(shù)人員需要解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于SSD的數(shù)據(jù)獲取方法及系統(tǒng),用于增加緩存命中率,加快響應(yīng)速度,提升存儲系統(tǒng)的性能。
為實現(xiàn)上述目的,本發(fā)明實施例提供了如下技術(shù)方案:
一種基于SSD的數(shù)據(jù)獲取方法,包括:
將二級緩存中丟棄的數(shù)據(jù)存入保留區(qū);其中,所述保留區(qū)為從SSD劃分出的緩存區(qū);
接收到數(shù)據(jù)獲取請求時,根據(jù)所述數(shù)據(jù)獲取請求從一級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從二級緩存中查找;
若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從所述保留區(qū)中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從內(nèi)存中查找。
其中,本方案還包括:
監(jiān)視所述二級緩存的命中率和所述保留區(qū)的命中率;
記錄所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間;
利用所述二級緩存的命中率和所述保留區(qū)的命中率,分析所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值;
根據(jù)所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值和所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間,動態(tài)調(diào)整所述保留區(qū)內(nèi)的數(shù)據(jù)。
其中,利用所述二級緩存的命中率和所述保留區(qū)的命中率,分析所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值包括:
判斷所述保留區(qū)內(nèi)目標(biāo)數(shù)據(jù)的命中率是否大于與所述保留區(qū)同等大小的二級緩存的命中率;
若是,則判定所述目標(biāo)數(shù)據(jù)有數(shù)據(jù)價值;若否,則判定所述目標(biāo)數(shù)據(jù)沒有數(shù)據(jù)價值。
其中,根據(jù)所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值和所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間,動態(tài)調(diào)整所述保留區(qū)內(nèi)的數(shù)據(jù)包括:
將所述保留區(qū)內(nèi)有數(shù)據(jù)價值的數(shù)據(jù)繼續(xù)保存在所述保留區(qū)內(nèi);
將所述保留區(qū)內(nèi)沒有數(shù)據(jù)價值的數(shù)據(jù),按照被丟棄的時間進行置換。
其中,本方案若所述保留區(qū)內(nèi)的數(shù)據(jù)均沒有數(shù)據(jù)價值,則將所述保留區(qū)內(nèi)的所有數(shù)據(jù),按照LRU算法進行置換。
其中,所述保留區(qū)為從二級緩存中劃分出的緩存區(qū)。
一種基于SSD的數(shù)據(jù)獲取系統(tǒng),包括:
丟棄數(shù)據(jù)存入模塊,用于將二級緩存中丟棄的數(shù)據(jù)存入保留區(qū);其中,所述保留區(qū)為從SSD劃分出的緩存區(qū);
數(shù)據(jù)獲取模塊,用于接收到數(shù)據(jù)獲取請求時,根據(jù)所述數(shù)據(jù)獲取請求從一級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從二級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從所述保留區(qū)中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從內(nèi)存中查找。
其中,本方案還包括:
監(jiān)視模塊,用于監(jiān)視所述二級緩存的命中率和所述保留區(qū)的命中率,并記錄所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間;
分析模塊,用于利用所述二級緩存的命中率和所述保留區(qū)的命中率,分析所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值;
管理模塊,用于根據(jù)所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值和所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間,動態(tài)調(diào)整所述保留區(qū)內(nèi)的數(shù)據(jù)。
其中,所述分析模塊包括:
判斷單元,用于判斷所述保留區(qū)內(nèi)目標(biāo)數(shù)據(jù)的命中率是否大于與所述保留區(qū)同等大小的二級緩存的命中率;若是,則判定所述目標(biāo)數(shù)據(jù)有數(shù)據(jù)價值;若否,則判定所述目標(biāo)數(shù)據(jù)沒有數(shù)據(jù)價值。
其中,所述保留區(qū)為從二級緩存中劃分出的緩存區(qū)。
通過以上方案可知,本發(fā)明實施例提供的一種基于SSD的數(shù)據(jù)獲取方法及系統(tǒng),包括:將二級緩存中丟棄的數(shù)據(jù)存入保留區(qū);其中,所述保留區(qū)為從SSD劃分出的緩存區(qū);接收到數(shù)據(jù)獲取請求時,根據(jù)所述數(shù)據(jù)獲取請求從一級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從二級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從所述保留區(qū)中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從內(nèi)存中查找;可見,在本實施例中,通過將二級緩存丟棄的數(shù)據(jù)存入保留區(qū),提高了SSD緩存命中率,有效地減小需要再用到的數(shù)據(jù)卻被丟棄的概率,減少平均響應(yīng)時間。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例公開的一種基于SSD的數(shù)據(jù)獲取方法流程示意圖;
圖2為本發(fā)明實施例公開的數(shù)據(jù)獲取系統(tǒng)示意圖;
圖3為本發(fā)明實施例公開的保留區(qū)數(shù)據(jù)管理方法流程圖;
圖4為本發(fā)明實施例公開的各模塊功能示意圖;
圖5為本發(fā)明實施例公開的一種基于SSD的數(shù)據(jù)獲取系統(tǒng)結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例公開了一種基于SSD的數(shù)據(jù)獲取方法及系統(tǒng),用于增加緩存命中率,加快響應(yīng)速度,提升存儲系統(tǒng)的性能。
參見圖1,本發(fā)明實施例提供的一種基于SSD的數(shù)據(jù)獲取方法,包括:
S101、將二級緩存中丟棄的數(shù)據(jù)存入保留區(qū);其中,所述保留區(qū)為從SSD劃分出的緩存區(qū);
具體的,所述保留區(qū)可以為從二級緩存中劃分出的緩存區(qū)。
具體的,目前為了保證較高的緩存命中率,緩存中的內(nèi)容通常按照LRU算法進行替換。它是將最近一段時間內(nèi)最少訪問的數(shù)據(jù)剔除,提高緩存的利用率?,F(xiàn)代計算機普通采用緩存分級機制,一級緩存L1基本在4KB到64KB之間,二級緩存L2的容量則分為128KB、256KB、512KB、1MB、2MB、4MB等。二級緩存是提高CPU性能的關(guān)鍵。通常L1命中率約為80%,L2命中率為16%。其余4%的數(shù)據(jù)需要從內(nèi)存調(diào)用。
S102、接收到數(shù)據(jù)獲取請求時,根據(jù)所述數(shù)據(jù)獲取請求從一級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從二級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從所述保留區(qū)中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從內(nèi)存中查找。
具體的,在本方案中,為了提高緩存區(qū)的命中率,在系統(tǒng)緩存中開辟出一塊空間,稱之為“保留區(qū)”,本實施例中簡稱為S。計算機通常采用二級緩存L1、L2,在本實施例中將保留區(qū)設(shè)置在L2中,并根據(jù)實際情況合適的劃出該區(qū)域。二級緩存通過LRU算法丟棄的數(shù)據(jù)并不是直接刪除,而是先移至保留區(qū),這些數(shù)據(jù)在不久前的一段時間被訪問過,仍然有再次被訪問的可能性。
具體的,參見圖2,圖中以L2為2MB、保留區(qū)為256KB為例,保留區(qū)的內(nèi)容是“最近最少使用”的數(shù)據(jù)。通常系統(tǒng)中需要的數(shù)據(jù)首先從L1中查找,若未命中到L2中查找,如再未命中,則到內(nèi)存繼續(xù)查找(如圖2中虛線所示)。本實施例中的查找順序按照圖2中實線所示,在L2中若未找到所需數(shù)據(jù),則到S區(qū)中繼續(xù)查找。若在S區(qū)內(nèi)仍沒有查找成功,則轉(zhuǎn)至內(nèi)存中查找。
其中,參見圖3,在本實施例中提供了保留區(qū)數(shù)據(jù)管理方法,包括:
S201、監(jiān)視所述二級緩存的命中率和所述保留區(qū)的命中率;
S202、記錄所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間;
具體的,參見圖4,在本實施例中監(jiān)視模塊會記錄統(tǒng)計系統(tǒng)中的緩存命中數(shù)據(jù)。本發(fā)明中緩存命中可能發(fā)生在L1、L2、S,因此監(jiān)視模塊應(yīng)該分別記錄三塊區(qū)域的緩存命中情況,尤其是完整記錄S區(qū)內(nèi)的出現(xiàn)的緩存命中。通常L1命中概率為80%,由于L2中劃出一小片區(qū)域作為S,空間減小,所容納數(shù)據(jù)也有所減少。以256KB的S為例,L2緩存命中概率為16%*(2MB-256KB)/2MB=14%。由于S區(qū)內(nèi)的數(shù)據(jù)是LRU算法淘汰的數(shù)據(jù),還需要記錄這些數(shù)據(jù)的淘汰時間。
S203、利用所述二級緩存的命中率和所述保留區(qū)的命中率,分析所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值;
其中,利用所述二級緩存的命中率和所述保留區(qū)的命中率,分析所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值包括:
判斷所述保留區(qū)內(nèi)目標(biāo)數(shù)據(jù)的命中率是否大于與所述保留區(qū)同等大小的二級緩存的命中率;
若是,則判定所述目標(biāo)數(shù)據(jù)有數(shù)據(jù)價值;若否,則判定所述目標(biāo)數(shù)據(jù)沒有數(shù)據(jù)價值。
具體的,在本實施例中,分析模塊根據(jù)記錄結(jié)果,分析保留區(qū)內(nèi)數(shù)據(jù)的價值。如果保留區(qū)的命中率大于同等大小二級緩存的命中率,則認(rèn)為保留區(qū)的數(shù)據(jù)是有價值的;否則,則認(rèn)為保留區(qū)的數(shù)據(jù)是沒有價值的。保留區(qū)數(shù)據(jù)價值的衡量指標(biāo)為該區(qū)域的命中概率與作為正常L2時的命中概率作比較。如果緩存命中概率減小,則S區(qū)的存在并沒有提高緩存命中概率。分析模塊還要根據(jù)監(jiān)視模塊記錄的淘汰時間,分析數(shù)據(jù)價值與淘汰時間之間的關(guān)系。
具體的,以256KB的S為例,256KB作為正常的L2時命中概率為16%-14%=2%。那么,如果S區(qū)緩存命中大于2%,則認(rèn)為S區(qū)得到了較好的利用。如果緩存命中小于2%,則認(rèn)為S區(qū)的存在并沒有提高緩存命中概率。分析模塊還要根據(jù)監(jiān)視模塊記錄的淘汰時間,分析數(shù)據(jù)價值與淘汰時間之間的關(guān)系。
S204、根據(jù)所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值和所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間,動態(tài)調(diào)整所述保留區(qū)內(nèi)的數(shù)據(jù)。
其中,根據(jù)所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值和所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間,動態(tài)調(diào)整所述保留區(qū)內(nèi)的數(shù)據(jù)包括:
將所述保留區(qū)內(nèi)有數(shù)據(jù)價值的數(shù)據(jù)繼續(xù)保存在所述保留區(qū)內(nèi);
將所述保留區(qū)內(nèi)沒有數(shù)據(jù)價值的數(shù)據(jù),按照被丟棄的時間進行置換。
具體的,若所述保留區(qū)內(nèi)的數(shù)據(jù)均沒有數(shù)據(jù)價值,則將所述保留區(qū)內(nèi)的所有數(shù)據(jù),按照LRU算法進行置換。
具體的,在本實施例中,管理模塊根據(jù)分析結(jié)果,動態(tài)地調(diào)整保留區(qū)中的緩存數(shù)據(jù)。按照數(shù)據(jù)價值與淘汰時間之間的關(guān)系,將有價值的數(shù)據(jù)繼續(xù)存在保留區(qū)內(nèi),將沒有價值的數(shù)據(jù)進行置換。若保留區(qū)內(nèi)的數(shù)據(jù)都是沒有價值的,則管理模塊將全部內(nèi)容按照LRU算法進行置換,相當(dāng)于S區(qū)也作為L2緩存的一部分。
具體的,在本方案中,在SSD的二級緩存中開辟出一部分空間作為保留區(qū),用于放置按照LRU算法丟棄但仍有可能用到的數(shù)據(jù)。這樣就有效地減小需要再用到的數(shù)據(jù)卻被丟棄的概率,減少平均響應(yīng)時間。且本方案有如下有益效果:
1)從二級緩存中適當(dāng)分配一塊區(qū)域作為保留區(qū),幾乎沒有減小二級緩存的命中概率;
2)即使最近沒有用到的數(shù)據(jù),但在某個時間曾經(jīng)訪問過,那么現(xiàn)在仍然有再次訪問的可能,保留區(qū)避免了要用到時卻已被丟棄的情況;
3)動態(tài)地調(diào)整、置換、優(yōu)化保留區(qū)的緩存內(nèi)容,能夠?qū)崿F(xiàn)最大程度的緩存空間利用率,提高系統(tǒng)性能。
下面對本發(fā)明實施例提供的數(shù)據(jù)獲取系統(tǒng)進行介紹,下文描述的數(shù)據(jù)獲取系統(tǒng)與上文描述的數(shù)據(jù)獲取方法可以相互參照。
參見圖5,本發(fā)明實施例提供的一種基于SSD的數(shù)據(jù)獲取系統(tǒng),包括:
丟棄數(shù)據(jù)存入模塊100,用于將二級緩存中丟棄的數(shù)據(jù)存入保留區(qū);其中,所述保留區(qū)為從SSD劃分出的緩存區(qū);
數(shù)據(jù)獲取模塊200,用于接收到數(shù)據(jù)獲取請求時,根據(jù)所述數(shù)據(jù)獲取請求從一級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從二級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從所述保留區(qū)中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從內(nèi)存中查找。
基于上述技術(shù)方案,還包括:
監(jiān)視模塊,用于監(jiān)視所述二級緩存的命中率和所述保留區(qū)的命中率,并記錄所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間;
分析模塊,用于利用所述二級緩存的命中率和所述保留區(qū)的命中率,分析所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值;
管理模塊,用于根據(jù)所述保留區(qū)內(nèi)數(shù)據(jù)的數(shù)據(jù)價值和所述保留區(qū)內(nèi)數(shù)據(jù)被丟棄的時間,動態(tài)調(diào)整所述保留區(qū)內(nèi)的數(shù)據(jù)。
基于上述技術(shù)方案,所述分析模塊包括:
判斷單元,用于判斷所述保留區(qū)內(nèi)目標(biāo)數(shù)據(jù)的命中率是否大于與所述保留區(qū)同等大小的二級緩存的命中率;若是,則判定所述目標(biāo)數(shù)據(jù)有數(shù)據(jù)價值;若否,則判定所述目標(biāo)數(shù)據(jù)沒有數(shù)據(jù)價值。
基于上述技術(shù)方案,所述保留區(qū)為從二級緩存中劃分出的緩存區(qū)。
本發(fā)明實施例提供的一種基于SSD的數(shù)據(jù)獲取方法及系統(tǒng),包括:將二級緩存中丟棄的數(shù)據(jù)存入保留區(qū);其中,所述保留區(qū)為從SSD劃分出的緩存區(qū);接收到數(shù)據(jù)獲取請求時,根據(jù)所述數(shù)據(jù)獲取請求從一級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從二級緩存中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從所述保留區(qū)中查找;若未查找到,則根據(jù)所述數(shù)據(jù)獲取請求從內(nèi)存中查找;可見,在本實施例中,通過將二級緩存丟棄的數(shù)據(jù)存入保留區(qū),提高了SSD緩存命中率,有效地減小需要再用到的數(shù)據(jù)卻被丟棄的概率,減少平均響應(yīng)時間。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。