大容量缓存及数据存储和读取、内存分配和回收的方法技术

技术编号:10973889 阅读:106 留言:0更新日期:2015-01-30 05:51
本发明专利技术公开了一种大容量缓存及数据存储和读取、内存分配和回收的方法,涉及数据存储领域。该大容量缓存包括,数据存储模块:用于以数据块的形式存储数据;数据读取模块:用于以数据块的形式读取数据。本发明专利技术提供的技术方案,既实现了文件系统对内存的访问,减少了文件系统对磁盘的访问,提升了对大量数据的读取速度,也极大的节省了内存空间,提高了内存资源的利用率;进而提高了计算机中的程序运行速度以及计算机的整体性能。

【技术实现步骤摘要】

本专利技术涉及数据存储领域,尤其涉及一种。
技术介绍
磁盘和文件系统是计算机的重要部分之一,是保存数据的地方。但磁盘的访问速度远低于内存的访问速度,当面对大量数据时,磁盘的访问速度成为处理数据的瓶颈。为了提高数据的处理速度,文件系统利用内存为磁盘提供了一套缓存机制。 目前,计算机文件系统的缓存是基于文件的,而由于在相同的文件内或不同的文件间存在大量相同的数据,所以内存中就会有大量相同的数据,浪费了大量的内存空间,进而导致内存资源利用率的下降。一旦文件系统消耗了大量内存,会导致计算机中的程序运行缓慢,影响计算机的整体性能。
技术实现思路
本专利技术的目的在于提供一种,从而解决现有技术中存在的前述问题。 为了实现上述目的,本专利技术采用的技术方案如下: 一种大容量缓存,包括, 数据存储模块:用于以数据块的形式存储数据 数据读取模块:用于以数据块的形式读取数据。 进一步地,所述大容量缓存还包括, 内存分配模块:用于无空闲内存时,从内存池中分配第一内存块,并将所述第一内存块分割成多个固定大小的第二内存块。 进一步地,所述大容量缓存还包括, 内存回收模块:用于基于数据访问时间和访问次数的更新,进行内存的回收。 上述大容量缓存的数据存储方法,包括如下步骤: SI,接收数据块和所述数据块对应的特征码; S2,用所述特征码检索所述数据块,如果检索到所述数据块,则抛弃接收到的所述数据块和所述特征码;如果没有检索到所述数据块,则执行步骤S3 ; S3,保存所述数据块和所述特征码; S4,建立特征码索引表,所述特征码索引表包括所述特征码和与其对应的数据块; S5,更新所述数据块的访问时间和访问次数。 进一步地,步骤SI之前,还包括步骤,计算所述数据块的特征码。 其中,所述计算所述数据块的特征码,具体为,计算所述数据块的MD5值。 上述大容量缓存的数据读取方法,包括如下步骤: SI,接收数据块对应的特征码; S2,用所述特征码检索所述数据块,如果检索到所述数据块,则执行步骤S3 ;如果没有检索到所述数据块,则抛弃接收到的所述特征码; S3,读取所述数据块; S4,保存所述特征码; S5,建立特征码索引表,所述特征码索引表包括所述特征码和与其对应的数据块; S6,更新所述数据块的访问时间和访问次数。 上述大容量缓存的内存分配方法,包括如下步骤: SI,检查空闲内存列表,如果没有空闲内存,则执行步骤S2-S5 ;如果有空闲内存,则执行步骤S4-S5 ; S2,从内存池中分配第一内存块,并将所述第一内存块分割成多个固定大小的第二内存块; S3,将所述第二内存块添加到所述空闲内存列表中; S4,从所述空闲内存列表中获取内存; S5,在所述空闲内存列表中,将所述内存标记为已使用。 上述大容量缓存的内存回收方法,包括如下步骤: SI,启动定时器; S2,获取所述数据块的访问时间和访问次数; S3,检查所述数据块是否属于非热点数据块,如果所述数据块不属于非热点数据块,则检查下一个数据块;如果所述数据块属于非热点数据块,则执行步骤S4 ; S4,移除所述数据块; S5,检查所述第一内存块是否已经空闲,如果已经空闲,则释放所述第一内存块;如果没有空闲,则将所述第二内存块放入空闲内存列表。 进一步地,步骤S5之后,还包括,当多个所述第二内存块形成所述第一内存块后,释放所述第一内存块。 本专利技术的有益效果是: 本专利技术针对大量数据的处理创建了一种大容量缓存,并实现了该大容量缓存方法,该大容量缓存及其实现方法是基于数据块的,而不是基于文件的,从而避免了相同数据占用多份内存,以及在处理大量数据时,能够保证相同的数据块在缓存中只处理一次,而不会有大量的重复。所以,本专利技术提供的技术方案,既实现了文件系统对内存的访问,减少了文件系统对磁盘的访问,提升了对大量数据的读取速度,也极大的节省了内存空间,提高了内存资源的利用率;进而提高了计算机中的程序运行速度以及计算机的整体性能。 【附图说明】 图1是本专利技术实施例提供的大容量缓存的构造示意图; 图2是本专利技术实施例提供的大容量缓存的数据存储方法的流程图; 图3是本专利技术实施例提供的大容量缓存的数据读取方法的流程图; 图4是本专利技术实施例提供的大容量缓存的内存分配方法的流程图; 图5是本专利技术实施例提供的大容量缓存的内存回收方法的流程图。 【具体实施方式】 为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本专利技术,并不用于限定本专利技术。 如图1所示,本专利技术实施例提供了一种大容量缓存,可以包括, 数据存储模块:用于以数据块的形式存储数据 数据读取模块:用于以数据块的形式读取数据。 现有技术中,由于计算机文件系统的缓存是基于文件的,在相同的文件内或不同的文件间存在大量相同的数据,所以操作过程中,会浪费大量的内存空间,进而导致内存资源利用率下降,从而影响计算机的整体性能。本专利技术实施例为了解决上述问题,计算机文件系统的缓存数据采用基于数据块的形式进行管理,这样,就可以保证相同的数据块在内存中只处理一次,而不会重复处理,造成内存空间的浪费和资源利用率的下降,从而提高了计算机的整体性能。 与现有技术中的以文件的形式进行数据的读取操作相比,本专利技术实施例提供的大容量缓存,在面对大量数据时,尤其是面对大量不断变化的数据时,其以数据块的形式进行数据的读取操作,对内存资源利用率的提高和系统整体性能的提高更加明显,作用更加显著。 本专利技术提供的一个实施例中,大容量缓存还可以包括, 内存分配模块:用于无空闲内存时,从内存池中分配第一内存块,并将所述第一内存块分割成多个固定大小的第二内存块。 采用上述技术方案,实现了内存的预分配,从而实现了数据读取速度的提高,进而提升了系统的整体性能。 在本专利技术提供的一个实施例中,大容量缓存还可以包括, 内存回收模块:用于基于数据访问时间和访问次数的更新,进行内存的回收。 采用上述技术方案,可以对非热点数据占用的内存进行回收,从而节省了内存资源,提高了内存的利用率。 如图2所示,本专利技术实施例提供了上述大容量缓存的数据存储方法,包括如下步骤: SI,接收数据块和所述数据块对应的特征码; S2,用所述特征码检索所述数据块,如果检索到所述数据块,则抛弃接收到的所述数据块和所述特征码;如果没有检索到所述数据块,则执行步骤S3 ; S3,保存所述数据块和所述特征码; S4,建立特征码索引表,所述特征码索引表包括所述特征码和与其对应的数据块; S5,更新所述数据块的访问时间和访问次数。 其中,步骤SI之前,还可以包括步骤,计算所述数据块的特征码。计算所述数据块的特征码,具体可以为,计算所述数据块的MD5值。 由于MD5计算时,将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生一个唯一的MD5信息摘要,即MD5值。所以,对于一个文件,只存在一个MD5值,如果该文件进行了任意的变动,MD5值都会发生变化,故对数据进行MD5计算,数据标记更加准确。本专利技术实施例中,将计算得到的本文档来自技高网...

【技术保护点】
一种大容量缓存,其特征在于,包括,数据存储模块:用于以数据块的形式存储数据数据读取模块:用于以数据块的形式读取数据。

【技术特征摘要】
1.一种大容量缓存,其特征在于,包括, 数据存储模块:用于以数据块的形式存储数据 数据读取模块:用于以数据块的形式读取数据。2.根据权利要求1所述的大容量,其特征在于,还包括, 内存分配模块:用于无空闲内存时,从内存池中分配第一内存块,并将所述第一内存块分割成多个固定大小的第二内存块。3.根据权利要求2所述的大容量缓存,其特征在于,还包括, 内存回收模块:用于基于数据访问时间和访问次数的更新,进行内存的回收。4.权利要求1所述的大容量缓存的数据存储方法,其特征在于,包括如下步骤: S1,接收数据块和所述数据块对应的特征码; S2,用所述特征码检索所述数据块,如果检索到所述数据块,则抛弃接收到的所述数据块和所述特征码;如果没有检索到所述数据块,则执行步骤S3 ; S3,保存所述数据块和所述特征码; S4,建立特征码索引表,所述特征码索引表包括所述特征码和与其对应的数据块; S5,更新所述数据块的访问时间和访问次数。5.根据权利要求4所述的大容量缓存的数据存储方法,其特征在于,步骤S1之前,还包括步骤,计算所述数据块的特征码。6.根据权利要求5所述的大容量缓存的数据存储方法,其特征在于,所述计算所述数据块的特征码,具体为,计算所述数据块的MD5值。7.权利要求1所述的大容量缓存的数据读取方法,其特征在于,包括如下步骤: S1,接收数据块对应的特征码; S2,用所述特征码检索所述数据块,如果检索到所述数据块...

【专利技术属性】
技术研发人员:杨耀敏易乐天曲维杰
申请(专利权)人:北京云巢动脉科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1