[發(fā)明專利]大容量緩存及數(shù)據(jù)存儲(chǔ)和讀取、內(nèi)存分配和回收的方法在審
| 申請(qǐng)?zhí)枺?/td> | 201410495580.6 | 申請(qǐng)日: | 2014-09-24 |
| 公開(kāi)(公告)號(hào): | CN104317735A | 公開(kāi)(公告)日: | 2015-01-28 |
| 發(fā)明(設(shè)計(jì))人: | 楊耀敏;易樂(lè)天;曲維杰 | 申請(qǐng)(專利權(quán))人: | 北京云巢動(dòng)脈科技有限公司 |
| 主分類號(hào): | G06F12/08 | 分類號(hào): | G06F12/08 |
| 代理公司: | 北京市盛峰律師事務(wù)所 11337 | 代理人: | 于國(guó)富 |
| 地址: | 100091 北京市海淀*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 容量 緩存 數(shù)據(jù) 存儲(chǔ) 讀取 內(nèi)存 分配 回收 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及一種大容量緩存及數(shù)據(jù)存儲(chǔ)和讀取、內(nèi)存分配和回收的方法。
背景技術(shù)
磁盤(pán)和文件系統(tǒng)是計(jì)算機(jī)的重要部分之一,是保存數(shù)據(jù)的地方。但磁盤(pán)的訪問(wèn)速度遠(yuǎn)低于內(nèi)存的訪問(wèn)速度,當(dāng)面對(duì)大量數(shù)據(jù)時(shí),磁盤(pán)的訪問(wèn)速度成為處理數(shù)據(jù)的瓶頸。為了提高數(shù)據(jù)的處理速度,文件系統(tǒng)利用內(nèi)存為磁盤(pán)提供了一套緩存機(jī)制。
目前,計(jì)算機(jī)文件系統(tǒng)的緩存是基于文件的,而由于在相同的文件內(nèi)或不同的文件間存在大量相同的數(shù)據(jù),所以內(nèi)存中就會(huì)有大量相同的數(shù)據(jù),浪費(fèi)了大量的內(nèi)存空間,進(jìn)而導(dǎo)致內(nèi)存資源利用率的下降。一旦文件系統(tǒng)消耗了大量?jī)?nèi)存,會(huì)導(dǎo)致計(jì)算機(jī)中的程序運(yùn)行緩慢,影響計(jì)算機(jī)的整體性能。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種大容量緩存及數(shù)據(jù)存儲(chǔ)和讀取、內(nèi)存分配和回收的方法,從而解決現(xiàn)有技術(shù)中存在的前述問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
一種大容量緩存,包括,
數(shù)據(jù)存儲(chǔ)模塊:用于以數(shù)據(jù)塊的形式存儲(chǔ)數(shù)據(jù)
數(shù)據(jù)讀取模塊:用于以數(shù)據(jù)塊的形式讀取數(shù)據(jù)。
進(jìn)一步地,所述大容量緩存還包括,
內(nèi)存分配模塊:用于無(wú)空閑內(nèi)存時(shí),從內(nèi)存池中分配第一內(nèi)存塊,并將所述第一內(nèi)存塊分割成多個(gè)固定大小的第二內(nèi)存塊。
進(jìn)一步地,所述大容量緩存還包括,
內(nèi)存回收模塊:用于基于數(shù)據(jù)訪問(wèn)時(shí)間和訪問(wèn)次數(shù)的更新,進(jìn)行內(nèi)存的回收。
上述大容量緩存的數(shù)據(jù)存儲(chǔ)方法,包括如下步驟:
S1,接收數(shù)據(jù)塊和所述數(shù)據(jù)塊對(duì)應(yīng)的特征碼;
S2,用所述特征碼檢索所述數(shù)據(jù)塊,如果檢索到所述數(shù)據(jù)塊,則拋棄接收到的所述數(shù)據(jù)塊和所述特征碼;如果沒(méi)有檢索到所述數(shù)據(jù)塊,則執(zhí)行步驟S3;
S3,保存所述數(shù)據(jù)塊和所述特征碼;
S4,建立特征碼索引表,所述特征碼索引表包括所述特征碼和與其對(duì)應(yīng)的數(shù)據(jù)塊;
S5,更新所述數(shù)據(jù)塊的訪問(wèn)時(shí)間和訪問(wèn)次數(shù)。
進(jìn)一步地,步驟S1之前,還包括步驟,計(jì)算所述數(shù)據(jù)塊的特征碼。
其中,所述計(jì)算所述數(shù)據(jù)塊的特征碼,具體為,計(jì)算所述數(shù)據(jù)塊的MD5值。
上述大容量緩存的數(shù)據(jù)讀取方法,包括如下步驟:
S1,接收數(shù)據(jù)塊對(duì)應(yīng)的特征碼;
S2,用所述特征碼檢索所述數(shù)據(jù)塊,如果檢索到所述數(shù)據(jù)塊,則執(zhí)行步驟S3;如果沒(méi)有檢索到所述數(shù)據(jù)塊,則拋棄接收到的所述特征碼;
S3,讀取所述數(shù)據(jù)塊;
S4,保存所述特征碼;
S5,建立特征碼索引表,所述特征碼索引表包括所述特征碼和與其對(duì)應(yīng)的數(shù)據(jù)塊;
S6,更新所述數(shù)據(jù)塊的訪問(wèn)時(shí)間和訪問(wèn)次數(shù)。
上述大容量緩存的內(nèi)存分配方法,包括如下步驟:
S1,檢查空閑內(nèi)存列表,如果沒(méi)有空閑內(nèi)存,則執(zhí)行步驟S2-S5;如果有空閑內(nèi)存,則執(zhí)行步驟S4-S5;
S2,從內(nèi)存池中分配第一內(nèi)存塊,并將所述第一內(nèi)存塊分割成多個(gè)固定大小的第二內(nèi)存塊;
S3,將所述第二內(nèi)存塊添加到所述空閑內(nèi)存列表中;
S4,從所述空閑內(nèi)存列表中獲取內(nèi)存;
S5,在所述空閑內(nèi)存列表中,將所述內(nèi)存標(biāo)記為已使用。
上述大容量緩存的內(nèi)存回收方法,包括如下步驟:
S1,啟動(dòng)定時(shí)器;
S2,獲取所述數(shù)據(jù)塊的訪問(wèn)時(shí)間和訪問(wèn)次數(shù);
S3,檢查所述數(shù)據(jù)塊是否屬于非熱點(diǎn)數(shù)據(jù)塊,如果所述數(shù)據(jù)塊不屬于非熱點(diǎn)數(shù)據(jù)塊,則檢查下一個(gè)數(shù)據(jù)塊;如果所述數(shù)據(jù)塊屬于非熱點(diǎn)數(shù)據(jù)塊,則執(zhí)行步驟S4;
S4,移除所述數(shù)據(jù)塊;
S5,檢查所述第一內(nèi)存塊是否已經(jīng)空閑,如果已經(jīng)空閑,則釋放所述第一內(nèi)存塊;如果沒(méi)有空閑,則將所述第二內(nèi)存塊放入空閑內(nèi)存列表。
進(jìn)一步地,步驟S5之后,還包括,當(dāng)多個(gè)所述第二內(nèi)存塊形成所述第一內(nèi)存塊后,釋放所述第一內(nèi)存塊。
本發(fā)明的有益效果是:
本發(fā)明針對(duì)大量數(shù)據(jù)的處理創(chuàng)建了一種大容量緩存,并實(shí)現(xiàn)了該大容量緩存方法,該大容量緩存及其實(shí)現(xiàn)方法是基于數(shù)據(jù)塊的,而不是基于文件的,從而避免了相同數(shù)據(jù)占用多份內(nèi)存,以及在處理大量數(shù)據(jù)時(shí),能夠保證相同的數(shù)據(jù)塊在緩存中只處理一次,而不會(huì)有大量的重復(fù)。所以,本發(fā)明提供的技術(shù)方案,既實(shí)現(xiàn)了文件系統(tǒng)對(duì)內(nèi)存的訪問(wèn),減少了文件系統(tǒng)對(duì)磁盤(pán)的訪問(wèn),提升了對(duì)大量數(shù)據(jù)的讀取速度,也極大的節(jié)省了內(nèi)存空間,提高了內(nèi)存資源的利用率;進(jìn)而提高了計(jì)算機(jī)中的程序運(yùn)行速度以及計(jì)算機(jī)的整體性能。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京云巢動(dòng)脈科技有限公司,未經(jīng)北京云巢動(dòng)脈科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410495580.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種生態(tài)紅茶的制作方法
- 下一篇:一種豆腐的保鮮方法
- 同類專利
- 專利分類
- 逐出高速緩存的行的電路布置、數(shù)據(jù)處理系統(tǒng)和方法
- 共享緩存管理系統(tǒng)及方法
- 分布式緩存系統(tǒng)、數(shù)據(jù)的緩存方法及緩存數(shù)據(jù)的查詢方法
- 一種緩存替換方法;裝置和系統(tǒng)
- 加速引擎及處理器
- 一種日志緩存方法、系統(tǒng)、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 緩存控制方法、裝置和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 至少具有三個(gè)緩存級(jí)別的緩存層級(jí)的混合低級(jí)緩存包含策略
- 基于雙緩存區(qū)的緩存方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 緩存預(yù)載方法、裝置、處理器芯片及服務(wù)器
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類存儲(chǔ)方法和裝置





