System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及分布式存儲,具體涉及數(shù)據(jù)緩存方法、計算機(jī)設(shè)備、存儲介質(zhì)及程序產(chǎn)品。
技術(shù)介紹
1、在以機(jī)械硬盤(hard?disk?drive,簡稱:hhd)為主存盤的存儲系統(tǒng)中,通常使用高速的固態(tài)硬盤(solid?state?disk,簡稱:ssd)或nvme?ssd作為緩存。通過將熱點數(shù)據(jù)緩存至ssd中,以在讀取熱點數(shù)據(jù)時可以直接從ssd中獲取,從而降低響應(yīng)時間、提高吞吐率。
2、相關(guān)技術(shù)中,管理ssd中緩存的熱點數(shù)據(jù)的方式有兩種,一種是利用最近最少使用算法(least?recently?used,簡稱:lru)對緩存的熱點數(shù)據(jù)進(jìn)行管理。一種是利用最不經(jīng)常使用算法(least?frequently?used,簡稱:lfu)對緩存的熱點數(shù)據(jù)進(jìn)行管理。
3、然而,這兩種管理ssd中緩存的熱點數(shù)據(jù)的方式無論數(shù)據(jù)屬于冷數(shù)據(jù)還是熱數(shù)據(jù)都會先寫入ssd,冷數(shù)據(jù)寫入ssd帶來額外的存儲成本且沒有明顯的系統(tǒng)性能收益,嚴(yán)重影響ssd的使用壽命。
技術(shù)實現(xiàn)思路
1、有鑒于此,本專利技術(shù)提供了一種數(shù)據(jù)緩存方法、計算機(jī)設(shè)備、存儲介質(zhì)及程序產(chǎn)品,以解決相關(guān)技術(shù)中無論數(shù)據(jù)是冷數(shù)據(jù)還是熱數(shù)據(jù)都會先寫入ssd,冷數(shù)據(jù)寫入ssd帶來額外的存儲成本且沒有明顯的系統(tǒng)性能收益,嚴(yán)重影響ssd的使用壽命的問題。
2、第一方面,本專利技術(shù)提供了一種數(shù)據(jù)緩存方法,所述方法包括:
3、響應(yīng)于客戶端的數(shù)據(jù)讀取請求,獲得待讀取對象名稱和待讀取對象的待讀取數(shù)據(jù)范圍;
4、判
5、若不存在,則從系統(tǒng)主存中基于所述待讀取數(shù)據(jù)范圍讀取對應(yīng)的數(shù)據(jù),返回給客戶端,并基于所述待讀取對象名稱、待讀取數(shù)據(jù)范圍和讀取到的數(shù)據(jù),對預(yù)設(shè)哈希數(shù)據(jù)結(jié)構(gòu)和窗口緩存進(jìn)行更新;
6、每間隔預(yù)設(shè)時間段,判斷窗口緩存的已用容量與總?cè)萘康谋戎凳欠癯^第一比值閾值;
7、若窗口緩存的已用容量與總?cè)萘康谋戎党^第一比值閾值,則獲取所述窗口緩存中的第一淘汰緩存對象;
8、從所述預(yù)設(shè)哈希數(shù)據(jù)結(jié)構(gòu)中獲取所述第一淘汰緩存對象的訪問次數(shù),并基于所述第一淘汰緩存對象的訪問次數(shù),從所述第一淘汰緩存對象中篩選出訪問次數(shù)大于主緩存中的第一鏈表的尾部緩存對象的訪問次數(shù)的目標(biāo)緩存對象;
9、將所述目標(biāo)緩存對象緩存至主緩存,并將所述第一淘汰緩存對象中除了所述目標(biāo)緩存對象之外的其他緩存對象淘汰,其中,主緩存為固態(tài)硬盤。
10、本實施例提供的數(shù)據(jù)緩存方法,通過每間隔預(yù)設(shè)時間段,判斷窗口緩存的已用容量與總?cè)萘康谋戎凳欠癯^第一比值閾值,若窗口緩存的已用容量與總?cè)萘康谋戎党^第一比值閾值,則獲取窗口緩存中的第一淘汰緩存對象,從預(yù)設(shè)哈希數(shù)據(jù)結(jié)構(gòu)中獲取第一淘汰緩存對象的訪問次數(shù),并基于第一淘汰緩存對象的訪問次數(shù),從第一淘汰緩存對象中篩選出訪問次數(shù)大于主緩存中的第一鏈表的尾部緩存對象的訪問次數(shù)的目標(biāo)緩存對象,將目標(biāo)緩存對象緩存至主緩存。本實施例新的數(shù)據(jù)不會直接寫入主緩存ssd,而是先緩存至窗口緩存,在窗口緩存的已用容量與總?cè)萘康谋戎党^第一比值閾值時,還需要判斷第一淘汰緩存對象是否為熱點數(shù)據(jù)即第一淘汰對象的訪問次數(shù)是否大于主緩存中的第一鏈表的尾部緩存對象的訪問次數(shù),在第一淘汰緩存對象為熱點數(shù)據(jù)即目標(biāo)緩存對象的情況下,才會緩存至主緩存,減少了ssd的擦寫次數(shù),提高了ssd的使用壽命。
11、在一種可選的實施方式中,所述窗口緩存包括第二鏈表,所述第二鏈表的元素為窗口緩存中的緩存對象的元數(shù)據(jù)信息上下文指針,根據(jù)所述緩存對象的元數(shù)據(jù)信息上下文指針在所述第二鏈表中的鏈接順序,確定對應(yīng)的緩存對象的淘汰順序;所述基于所述待讀取對象名稱、待讀取數(shù)據(jù)范圍和讀取到的數(shù)據(jù),對預(yù)設(shè)哈希數(shù)據(jù)結(jié)構(gòu)和窗口緩存進(jìn)行更新,包括:
12、基于所述待讀取對象名稱和待讀取數(shù)據(jù)范圍,生成待讀取對象的元數(shù)據(jù)信息上下文;
13、將所述待讀取對象名稱作為鍵值,所述待讀取對象的元數(shù)據(jù)信息上下文以待讀取對象的元數(shù)據(jù)信息上下文指針的形式作為實值插入所述預(yù)設(shè)哈希數(shù)據(jù)結(jié)構(gòu);
14、將讀取到的數(shù)據(jù)緩存至窗口緩存,并將所述待讀取對象的元數(shù)據(jù)信息上下文指針插入所述第二鏈表的頭部。
15、本實施例提供的數(shù)據(jù)緩存方法,通過將讀取到的數(shù)據(jù)緩存至窗口緩存,并將待讀取對象的元數(shù)據(jù)信息上下文指針插入第二鏈表頭部,可以確保熱點數(shù)據(jù)或者最近訪問的數(shù)據(jù)容易被再次快速訪問,當(dāng)有相同數(shù)據(jù)請求時,可以直接從高速的窗口緩存中獲取,而不需要再次從系統(tǒng)主存中獲取,提高了緩存命中率,也提高了數(shù)據(jù)讀取速度。
16、在一種可選的實施方式中,所述獲取所述窗口緩存中的第一淘汰緩存對象,包括:
17、獲取所述窗口緩存的第二鏈表尾部的第一預(yù)設(shè)數(shù)量個元數(shù)據(jù)信息上下文指針;
18、基于所述第二鏈表尾部的第一預(yù)設(shè)數(shù)量個元數(shù)據(jù)信息上下文指針,確定所述窗口緩存中的第一淘汰對象。
19、本實施例提供的數(shù)據(jù)緩存方法,通過直接獲取第二鏈表尾部的元數(shù)據(jù)信息上下文指針,系統(tǒng)能迅速識別出窗口緩存中哪些緩存對象是最久未被訪問的,將最久未被訪問的多個緩存對象進(jìn)行淘汰,保證窗口緩存中的緩存對象的新穎性和實用性,以提高緩存命中率。
20、在一種可選的實施方式中,所述方法還包括:
21、每間隔預(yù)設(shè)時間段,判斷主緩存的已用容量與總?cè)萘康谋戎凳欠癯^第二比值閾值;
22、若主緩存的已用容量與總?cè)萘康谋戎党^第二比值閾值,則獲取所述主緩存的第一鏈表尾部的第二預(yù)設(shè)數(shù)量個元數(shù)據(jù)信息上下文指針;
23、基于所述第一鏈表尾部的第二預(yù)設(shè)數(shù)量個元數(shù)據(jù)信息上下文指針,確定所述主緩存中的第二淘汰緩存對象;
24、從主緩存中淘汰所述第二淘汰緩存對象;
25、其中,所述主緩存包括第一鏈表,所述第一鏈表的元素為主緩存中的緩存對象的元數(shù)據(jù)信息上下文指針,根據(jù)所述緩存對象的元數(shù)據(jù)信息上下文指針在所述第一鏈表中的鏈接順序,確定對應(yīng)的緩存對象的淘汰順序。
26、本實施例提供的數(shù)據(jù)緩存方法,通過定期檢查主緩存的已用容量與總?cè)萘康谋戎担诒戎党^第二比值閾值時,自動觸發(fā)緩存清理機(jī)制,從第一鏈表尾部淘汰較少訪問的緩存對象,保證系統(tǒng)能夠在主緩存資源即將耗盡前將主緩存中的部分緩存對象進(jìn)行淘汰,以確保系統(tǒng)運行的連續(xù)性和穩(wěn)定性。
27、在一種可選的實施方式中,所述將所述目標(biāo)緩存對象緩存至主緩存,包括:
28、將所述目標(biāo)緩存對象寫入所述窗口緩存的待提交緩存區(qū),并將所述目標(biāo)緩存對象的元數(shù)據(jù)信息上下文指針插入所述窗口緩存的待提交鏈表中;
29、判斷所述待提交鏈表中的元數(shù)據(jù)信息上下文指針對應(yīng)的緩存對象的數(shù)據(jù)量是否達(dá)到數(shù)據(jù)量閾值;
30、若達(dá)到數(shù)據(jù)量閾值,則依次從所述待提交鏈表中獲取元數(shù)據(jù)信息上下文指針,將所述元數(shù)據(jù)信息上下文指針在所述待提交緩存區(qū)中對應(yīng)的緩存對象緩存至主緩存,并將所述元數(shù)據(jù)信息上下文指針插入所述主緩存的第本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點】
1.一種數(shù)據(jù)緩存方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述窗口緩存包括第二鏈表,所述第二鏈表的元素為窗口緩存中的緩存對象的元數(shù)據(jù)信息上下文指針,根據(jù)所述緩存對象的元數(shù)據(jù)信息上下文指針在所述第二鏈表中的鏈接順序,確定對應(yīng)的緩存對象的淘汰順序;所述基于所述待讀取對象名稱、待讀取數(shù)據(jù)范圍和讀取到的數(shù)據(jù),對預(yù)設(shè)哈希數(shù)據(jù)結(jié)構(gòu)和窗口緩存進(jìn)行更新,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述窗口緩存中的第一淘汰緩存對象,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述目標(biāo)緩存對象緩存至主緩存,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括:
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
10.根據(jù)權(quán)利要求9所述的
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述方法還包括:
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述方法還包括:
13.一種計算機(jī)設(shè)備,其特征在于,包括:
14.一種計算機(jī)可讀存儲介質(zhì),其特征在于,所述計算機(jī)可讀存儲介質(zhì)上存儲有計算機(jī)指令,所述計算機(jī)指令用于使計算機(jī)執(zhí)行權(quán)利要求1至12中任一項所述的數(shù)據(jù)緩存方法。
15.一種計算機(jī)程序產(chǎn)品,其特征在于,包括計算機(jī)指令,所述計算機(jī)指令用于使計算機(jī)執(zhí)行權(quán)利要求1至12中任一項所述的數(shù)據(jù)緩存方法。
...【技術(shù)特征摘要】
1.一種數(shù)據(jù)緩存方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述窗口緩存包括第二鏈表,所述第二鏈表的元素為窗口緩存中的緩存對象的元數(shù)據(jù)信息上下文指針,根據(jù)所述緩存對象的元數(shù)據(jù)信息上下文指針在所述第二鏈表中的鏈接順序,確定對應(yīng)的緩存對象的淘汰順序;所述基于所述待讀取對象名稱、待讀取數(shù)據(jù)范圍和讀取到的數(shù)據(jù),對預(yù)設(shè)哈希數(shù)據(jù)結(jié)構(gòu)和窗口緩存進(jìn)行更新,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述窗口緩存中的第一淘汰緩存對象,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述目標(biāo)緩存對象緩存至主緩存,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求6所述...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:王鵬,王勇,
申請(專利權(quán))人:蘇州元腦智能科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。