当前位置: 首页 > 专利查询>厦门大学专利>正文

一种基于持久性内存的指纹存储方法技术

技术编号:34721513 阅读:11 留言:0更新日期:2022-08-31 18:06
本发明专利技术提出一种基于持久性内存的指纹存储方法,结合持久性内存PM的特性,将指纹索引等元数据从底层设备中剥离,并放置在持久性内存PM中。同时,本发明专利技术为PM中未被缓存的指纹元数据构建布隆过滤器且保存在DRAM中。当用户发出写请求时,系统如果在DRAM缓存中查找不到对应的指纹元数据,则可以通过布隆过滤器来确定对应的指纹元数据是否保存在持久性内存PM中,从而避免了传统方式中通过I/O方式在底层设备中查找的过程,极大减小了重复数据删除系统的数据处理过程中对指纹索引等元数据的查找开销。销。销。

【技术实现步骤摘要】
一种基于持久性内存的指纹存储方法


[0001]本专利技术涉及计算机体系结构的存储领域,特别是指一种基于持久性内存的指纹存储方法。

技术介绍

[0002]重复数据删除技术对数据项计算哈希指纹作为唯一的标识符,并且通过匹配这个唯一的标识符来识别并消除重复的数据项,以此来减少写入存储设备的数据量,达到扩展存储空间的目的。通常,重复数据删除系统将指纹索引等元数据保存在磁盘、固态盘等底层设备中,并且将部分经常访问的元数据条目维持在DRAM缓存中,以此减少对底层设备中指纹索引等元数据的访问。当应用程序访问指纹索引时,通过DRAM缓存可以提升缓存命中率至90%以上,避免过多的低速设备的读写操作,然而,不足10%的低速设备访问也会造成几倍甚至几十倍的性能下降。此外,现有的研究期望通过提高缓存命中率减少底层设备中指纹元数据访问开销的方法只能起到缓解作用,并且严格依赖于缓存方法的好坏,因此如何有效地减少系统读写过程中底层设备中指纹索引等元数据的访问开销仍然是一个亟待解决的问题。

技术实现思路

[0003]本专利技术的主要目的在于克服现有技术中的上述缺陷,提出一种基于持久性内存的指纹存储方法,避免了传统方式中通过I/O方式在底层设备中查找的过程,极大减小了重复数据删除系统的数据处理过程中对指纹索引等元数据的查找开销。
[0004]本专利技术采用如下技术方案:
[0005]一种基于持久性内存的指纹存储方法,包括初始化步骤、数据写操作步骤、数据读操作步骤、数据删除操作步骤:
[0006]1)初始化操作步骤,包括以下过程:
[0007](1.1)指定持久化内存PM作为指纹元数据的存储位置并初始化指纹元数据表;
[0008](1.2)并行初始化DRAM缓存中的指纹元数据和布隆过滤器;
[0009](1.3)等待接收用户请求命令,若用户请求是写操作,转步骤2),否则若用户请求是读操作,转步骤3),否则用户请求是删除操作,转步骤4);
[0010]2)所述方法中数据写操作步骤,包括以下过程:
[0011](2.1)根据用户请求,计算写入数据项的哈希指纹值,判断DRAM缓存中的指纹索引表是否存在相同的指纹表项,若不存在,转过程(2.2),否则转过程(2.4);
[0012](2.2)在DRAM的布隆过滤器中查找该数据项对应指纹元数据是否存在的标记,若查找成功,转过程(2.3),否则转过程(2.5);
[0013](2.3)根据写入数据的哈希指纹在持久性内存PM的指纹索引表中查找,若查找成功,转过程(2.4),否则,转过程(2.5);
[0014](2.4)用户请求的写入数据项为重复数据,删除待写入的数据项,并将该写入数据
项对应的引用值加1,转过程(2.6);
[0015](2.5)用户请求的写入数据项为非重复数据项,在底层设备中分配新的空闲空间存储该数据项,同时在指纹索引表中添加该数据项的指纹索引表项并将引用值置为1,转过程(2.6);
[0016](2.6)更新DRAM缓存和持久性内存PM中对应的地址映射表;
[0017]3)所述方法中数据读操作步骤,包括以下过程:
[0018](3.1)判断用户读请求中读取数据项的地址是否在DRAM缓存的地址映射表中,若是,转过程(3.2),否则转过程(3.3);
[0019](3.2)获取DRAM缓存地址映射表中实际的数据项存储地址,从底层设备中读取数据项并返回给用户,转过程(3.4);
[0020](3.3)在持久性内存PM中查找并获取用户请求数据项对应的映射关系,根据实际的存储地址从底层设备中读取数据项并返回给用户,转过程(3.4);
[0021](3.4)根据用户访问特征,访问频率超过设定阈值的数据项对应的指纹元数据放进DRAM缓存;
[0022]4)所述方法中数据删除操作步骤,包括以下过程:
[0023](4.1)依据用户请求删除数据项的地址,在地址映射表中查找,然后通过映射关系在指纹元数据表中查找到具体的索引表项,转过程(4.2);
[0024](4.2)判断指纹索引表中该数据项的引用值是否大于1,若是转过程(4.3),否则转过程(4.4);
[0025](4.3)将该数据项的引用值减1,同时删除该请求在地址映射表中逻辑地址到物理地址的映射关系;
[0026](4.4)删除该数据项对应的索引表项,同时删除该请求在地址映射表中逻辑地址到物理地址的映射关系。
[0027]具体地,所述底层设备包括不限于磁盘、固态盘。
[0028]具体地,所述元数据表包括一个哈希指纹索引表项和一个地址映射表项,所述哈希指纹索引表项包括哈希指纹值、数据块地址以及数据块引用值,所述地址映射表项包括逻辑地址以及物理地址。
[0029]由上述对本专利技术的描述可知,与现有技术相比,本专利技术具有如下有益效果:
[0030]本专利技术提出一种基于持久性内存的指纹存储方法和装置,结合持久性内存PM的特性,将指纹索引等元数据从底层设备中剥离,并放置在持久性内存PM中。同时,本专利技术为PM中未被缓存的指纹元数据构建布隆过滤器且保存在DRAM中。当用户发出写请求时,系统如果在DRAM缓存中查找不到对应的指纹元数据,则可以通过布隆过滤器来确定对应的指纹元数据是否保存在持久性内存PM中,从而避免了传统方式中通过I/O方式在底层设备中查找的过程,极大减小了重复数据删除系统的数据处理过程中对指纹索引等元数据的查找开销。
附图说明
[0031]图1为本专利技术方法应用系统结构装置示意图;
[0032]图2为本专利技术实施例提供的单条元数据表项示意图;其中(a)为哈希指纹索引表
项,(b)地址映射表项;
[0033]图3为本专利技术实施例提供初始化步骤示意图;
[0034]图4为本专利技术实施例提供写操作步骤示意图;
[0035]图5为本专利技术实施例提供读操作步骤示意图;
[0036]图6为本专利技术实施例提供删除操作步骤示意图。
[0037]以下结合附图和具体实施例对本专利技术作进一步详述。
具体实施方式
[0038]以下通过具体实施方式对本专利技术作进一步的描述。
[0039]图1为本专利技术系统结构装置示意图;包括存储数据的底层设备(如磁盘、固态盘),存储全部指纹元数据的持久性内存PM,存储指纹索引元数据缓存和布隆过滤器的DRAM。
[0040]图2为本专利技术主要元数据表项示意图;包括一个哈希指纹索引表项和一个地址映射表项,(a)指纹索引表项包含哈希指纹值、数据块地址以及数据块引用值;(b)地址映射表项包含逻辑地址、物理地址。
[0041]图3为本专利技术初始化步骤示意图;初始化开始,首先指定持久化内存PM作为指纹元数据的存储设备并初始化指纹元数据表;然后并行初始化DRAM缓存中的指纹元数据表和布隆过滤器;持续响应用户请求。
[0042]图4为本专利技术写操作过程示意图;系统接收用户写请求,计算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于持久性内存的指纹存储方法,其特征在于,包括初始化步骤、数据写操作步骤、数据读操作步骤、数据删除操作步骤:1)初始化操作步骤,包括以下过程:(1.1)指定持久化内存PM作为指纹元数据的存储位置并初始化指纹元数据表;(1.2)并行初始化DRAM缓存中的指纹元数据和布隆过滤器;(1.3)等待接收用户请求命令,若用户请求是写操作,转步骤2),否则若用户请求是读操作,转步骤3),否则用户请求是删除操作,转步骤4);2)所述方法中数据写操作步骤,包括以下过程:(2.1)根据用户请求,计算写入数据项的哈希指纹值,判断DRAM缓存中的指纹索引表是否存在相同的指纹表项,若不存在,转过程(2.2),否则转过程(2.4);(2.2)在DRAM的布隆过滤器中查找该数据项对应指纹元数据是否存在的标记,若查找成功,转过程(2.3),否则转过程(2.5);(2.3)根据写入数据的哈希指纹在持久性内存PM的指纹索引表中查找,若查找成功,转过程(2.4),否则,转过程(2.5);(2.4)用户请求的写入数据项为重复数据,删除待写入的数据项,并将该写入数据项对应的引用值加1,转过程(2.6);(2.5)用户请求的写入数据项为非重复数据项,在底层设备中分配新的空闲空间存储该数据项,同时在指纹索引表中添加该数据项的指纹索引表项并将引用值置为1,转过程(2.6);(2.6)更新DRAM缓存和持久性内存PM中对应的地址映射表;3)所述方法中数据读操作步骤,包括以下过程:(3.1)判断用户...

【专利技术属性】
技术研发人员:吴素贞毛波杜春锋王圣哲林子航
申请(专利权)人:厦门大学
类型:发明
国别省市:

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

1