可左右滑动选省市

一种基于持久性内存的指纹存储方法发明专利

更新时间:2024-09-01
一种基于持久性内存的指纹存储方法发明专利 专利申请类型:发明专利;
地区:福建-厦门;
源自:厦门高价值专利检索信息库;

专利名称:一种基于持久性内存的指纹存储方法

专利类型:发明专利

专利申请号:CN202210587980.4

专利申请(专利权)人:厦门大学
权利人地址:福建省厦门市思明南路422号

专利发明(设计)人:吴素贞,毛波,杜春锋,王圣哲,林子航

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

主权利要求:
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)判断用户读请求中读取数据项的地址是否在DRAM缓存的地址映射表中,若是,转过程(3.2),否则转过程(3.3);
(3.2)获取DRAM缓存地址映射表中实际的数据项存储地址,从底层设备中读取数据项并返回给用户,转过程(3.4);
(3.3)在持久性内存PM中查找并获取用户请求数据项对应的映射关系,根据实际的存储地址从底层设备中读取数据项并返回给用户,转过程(3.4);
(3.4)根据用户访问特征,访问频率超过设定阈值的数据项对应的指纹元数据放进DRAM缓存;
4)所述方法中数据删除操作步骤,包括以下过程:
(4.1)依据用户请求删除数据项的地址,在地址映射表中查找,然后通过映射关系在指纹元数据表中查找到具体的索引表项,转过程(4.2);
(4.2)判断指纹索引表中该数据项的引用值是否大于1,若是转过程(4.3),否则转过程(4.4);
(4.3)将该数据项的引用值减1,同时删除该请求在地址映射表中逻辑地址到物理地址的映射关系;
(4.4)删除该数据项对应的索引表项,同时删除该请求在地址映射表中逻辑地址到物理地址的映射关系。
2.根据权利要求1所述的一种基于持久性内存的指纹存储方法,其特征在于,所述底层设备包括不限于磁盘、固态盘。
3.根据权利要求1所述的一种基于持久性内存的指纹存储方法,其特征在于,所述指纹元数据表包括一个哈希指纹索引表项和一个地址映射表项,所述哈希指纹索引表项包括哈希指纹值、数据块地址以及数据块引用值,所述地址映射表项包括逻辑地址以及物理地址。 说明书 : 一种基于持久性内存的指纹存储方法技术领域[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为本发明写操作过程示意图;系统接收用户写请求,计算写请求数据项的哈希指纹值;查找DRAM缓存指纹表中是否存在相同的指纹表项,若DRAM缓存指纹表中存在相同的指纹索引表项,说明该写入请求数据项是重复数据,删除待写入的数据项,并将该数据项对应的引用值加1,更新DRAM缓存和持久性内存PM中对应的地址映射表,结束写入请求;否则查找DRAM的布隆过滤器中是否含有存在标记,若查找成功,则根据写入数据的哈希指纹在PM的指纹索引表中查找,若查找成功,说明该写入请求数据项是重复数据,删除待写入数据项,同时将该数据项对应的引用值加1,更新DRAM缓存和持久性内存PM中对应的地址映射表,结束写入请求;否则该数据项为非重复数据,在底层设备中分配新的空间存储该数据项,同时在指纹索引表中添加该数据项的指纹索引表项,并设置引用值为1,更新DRAM缓存和持久性内存PM中对应的地址映射表,结束写入请求。[0043] 图5为本发明读操作过程示意图;系统接收用户读请求,判断用户读请求中读取数据项的地址是否在DRAM缓存的地址映射表中;若是,获取DRAM缓存地址映射表中实际的数据项存储地址,从底层设备中读取数据项并返回给用户;否则在持久性内存PM中查找实际地址并获取用户请求数据项对应的映射关系,根据实际的存储地址从底层设备中读取数据项并返回给用户;最后,根据用户访问特征,将经常访问的数据项对应元数据放进DRAM缓存。[0044] 图6为本发明删除操作过程示意图;系统接收用户删除请求,依据用户请求待删除数据项的地址在地址映射表中查找,然后根据地址映射信息找到该数据项对应的指纹索引表项;判断该数据项引用值是否大于1;若引用值大于1,将该数据项的引用值减1,同时删除该请求在地址映射表中逻辑地址到物理地址的映射关系;否则表明该数据项对应的引用值等于1,删除该数据项对应的索引表项,同时删除该请求在地址映射表中逻辑地址到物理地址的映射关系;最后,结束用户删除请求。[0045] 上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。

专利地区:福建

专利申请日期:2022-05-27

专利公开日期:2024-06-18

专利公告号:CN114968103B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
读内容
搜本页
回顶部