一种重删查询方法、装置、设备和存储介质与流程

文档序号:33323551发布日期:2023-03-03 21:56阅读:32来源:国知局
一种重删查询方法、装置、设备和存储介质与流程

1.本发明涉及存储技术领域,更具体地说,涉及一种重删查询方法、装置、设备和存储介质。


背景技术:

2.全闪存储系统中,由于ssd盘相比传统机械盘价格要贵很多,所以重删、压缩是全闪存储系统的重要特性。而重删需要元数据的支持,随着系统支持的存储容量增大,元数据也线性增长,以8k为单位的块映射,如果数据量达到几pb,则元数据在tb级别。
3.显然,tb界别的元数据给数据查找带来了较大困扰,因此如何有效管理元数据,以实现快速读写数据为本领域技术人员亟待解决的问题。


技术实现要素:

4.本发明的目的是提供一种重删查询方法、重删查询装置、重删查询设备和计算机可读存储介质,能够提高写缓存的磁盘应用性能。
5.为了实现上述目的,本技术一种重删查询方法,具体技术方案如下:
6.接收写请求,并确定当前接收的写请求对应数据为目标数据;
7.计算所述目标数据的指纹值得到目标指纹值,并在布谷鸟过滤器中查询所述目标指纹值;
8.若在所述布谷鸟过滤器中查询到所述目标指纹值,则增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射,否则,存储所述目标数据,将所述目标指纹值加入至所述布谷鸟过滤器中,并增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射。
9.可选的,若在所述布谷鸟过滤器中查询到所述目标指纹值时,还包括:
10.查询是否存在所述目标指纹值所属的指纹值至物理地址的元数据映射,如果存在,则确定所述目标指纹值所属的指纹值至物理地址的元数据映射中的物理地址为所述目标数据的物理地址,并执行增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射的步骤,否则,执行存储所述目标数据的步骤;
11.相应的,存储所述目标数据后,增加所述目标指纹值至所述目标数据的物理地址的元数据映射。
12.可选的,在布谷鸟过滤器中查询所述目标指纹值前,还包括:
13.设置所述布谷鸟过滤器对应的数组结构和链表结构;其中,同一指纹值存于所述数组结构中的两个位置,且所述指纹值为对物理地址对应哈希的部分比特位做的二次哈希值。
14.可选的,所述物理地址上数据的哈希值在插入所述数组结构时,还包括:
15.通过所述布谷鸟过滤器包含的哈希算法计算所述哈希值在所述数组结构中的插入位置。
16.可选的,通过所述布谷鸟过滤器包含的哈希算法计算所述哈希值在所述数组结构中的插入位置时,若所述插入位置存在元素,还包括:
17.通过哈希反查函数获取所述哈希值的部分比特位;
18.判断所述部分比特位是否相同;
19.若相同,对所述哈希值进行精确hp查询;
20.若不相同,将所述哈希值插入至所述数组结构对应的所述链表结构中。
21.可选的,还包括:
22.利用固态硬盘上的控制器管理所述物理地址和对应逻辑地址的映射关系;
23.其中,在存储池创建后,对所述物理地址进行整合和重映射;利用存储池的池信息以及存储偏移位置信息对所述逻辑地址进行重编码。
24.可选的,确定当前接收的写请求对应数据为目标数据,包括:
25.确定当前接收的写请求对应数据块的数据为目标数据;
26.相应的,计算所述目标数据的指纹值得到目标指纹值,包括:
27.使用预设的哈希算法计算所述目标数据的指纹值得到目标指纹值。
28.本技术还提供一种重删查询装置,包括:
29.接收模块,用于接收写请求,并确定当前接收的写请求对应数据为目标数据;
30.查询模块,用于计算所述目标数据的指纹值得到目标指纹值,并在布谷鸟过滤器中查询所述目标指纹值;
31.执行模块,用于如果在所述布谷鸟过滤器中查询到所述目标指纹值,则增加所述目标数据对应写请求中的逻辑地址至所述目标数据的物理地址的元数据映射,否则,存储所述目标数据,将所述目标指纹值加入至所述布谷鸟过滤器中,并增加所述目标数据对应写请求中的逻辑地址至所述目标数据的物理地址的元数据映射。
32.可选的,还包括:
33.映射查询模块,用于如果在所述布谷鸟过滤器中查询到所述目标指纹值,则查询是否存在所述目标指纹值所属的指纹值至物理地址的元数据映射,如果存在,则确定所述目标指纹值所属的指纹值至物理地址的元数据映射中的物理地址为所述目标数据的物理地址,并执行增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射的步骤,否则,执行存储所述目标数据的步骤;
34.可选的,还包括:
35.过滤器设置模块,用于设置所述布谷鸟过滤器对应的数组结构和链表结构;其中,同一指纹值存于所述数组结构中的两个位置,且所述指纹值为对物理地址对应哈希的部分比特位做的二次哈希值。
36.可选的,还包括:
37.位置计算模块,用于通过所述布谷鸟过滤器包含的哈希算法计算所述哈希值在所述数组结构中的插入位置。
38.可选的,还包括:
39.插入模块,用于所述插入位置存在元素时,通过哈希反查函数获取所述哈希值的部分比特位;判断所述部分比特位是否相同;若相同,对所述哈希值进行精确hp查询;若不相同,将所述哈希值插入至所述数组结构对应的所述链表结构中。
40.可选的,还包括:
41.映射关系管理模块,用于利用固态硬盘上的控制器管理所述物理地址和对应逻辑地址的映射关系;其中,在存储池创建后,对所述物理地址进行整合和重映射;利用存储池的池信息以及存储偏移位置信息对所述逻辑地址进行重编码。
42.可选的,接收模块包括:
43.数据确定单元,用于确定当前接收的写请求对应数据块的数据为目标数据;
44.相应的,所述查询模块包含:
45.哈希计算单元,用于使用预设的哈希算法计算所述目标数据的指纹值得到目标指纹值。
46.本技术一种重删查询方法,包括:接收写请求,并确定当前接收的写请求对应数据为目标数据;计算所述目标数据的指纹值得到目标指纹值,并在布谷鸟过滤器中查询所述目标指纹值;如果在所述布谷鸟过滤器中查询到所述目标指纹值,则增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射,否则,存储所述目标数据,将所述目标指纹值加入至所述布谷鸟过滤器中,并增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射。
47.本技术在接收到写请求后,计算相应的目标指纹值,并在布谷鸟过滤器中查询目标指纹值,一旦查询到,直接增加该目标数据当前逻辑地址,若是未查询到目标指纹值,则存储目标数据并添加目标指纹值和该目标数据物理地址的元数据映射,从而无需查询b+树,可以直接利用布谷鸟过滤器查询相应的元数据映射,减少重删元数据到盘上b+树中查询的频率,提升整个存储系统的性能。
48.本技术还提供一种重删查询装置、重删查询设备和计算机可读存储介质,具有上述有益效果,此处不再赘述。
附图说明
49.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
50.图1为本发明实施例提供的一种重删查询方法的流程示意图;
51.图2为本发明实施例提供的一种重删查询装置的结构示意图;
52.图3为本发明实施例提供的一种重删查询设备的结构示意图。
具体实施方式
53.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.参见图1,图1为本发明实施例提供的一种重删查询方法的流程示意图,具体方案包括:
55.s101:接收写请求,并确定当前接收的写请求对应的目标数据;
56.本步骤旨在接收写请求,该写请求通常为io请求,即可以为写io请求。当然也可以为其他形式的写请求。
57.在接收写请求后,可以进一步确定该写请求对应的目标数据,即写请求所要针对操作的目标数据,或者为该目标数据为写请求所要执行写操作的数据。
58.在此对于如何确定目标数据不作限定,可以先确定当前接收的写请求对应数据块,再从数据块中确定对应的目标数据。也可以根据写请求中包含的地址等信息确定目标数据。
59.s102:计算所述目标数据的指纹值得到目标指纹值,并在布谷鸟过滤器中查询所述目标指纹值;
60.本步骤旨在对目标数据计算指纹值,在此对于如何计算指纹值不作限定,可以使用预设的哈希算法计算所述目标数据的指纹值得到目标指纹值,该哈希算法可以为原始哈希算法,也可以为任何在哈希算法基础上演变的变种算法等,只要能够计算目标数据的指纹值,均可以应用至本步骤中。
61.此后需要在布谷鸟过滤器中查询所述目标指纹值。-布谷鸟过滤器使用一个数组结构+链表结构存储指纹值,同一个指纹值存储在数组的两个位置。数组存储的指纹值是对物理地址对应的哈希的一部分bit位做的再次哈希。
62.布谷鸟过滤器按照普通设计,只有两个哈希表,在查找的时候可以确保两次访存就可以做完,相比于布隆过滤器的k个hash函数k次访存,在数据量很大不能全部装载在内存中的情况下,多次访问内存性能布谷鸟过滤器明显优于布隆过滤器。重删元数据查询并不要求绝对精确,查询误判只会影响系统的重删率,而不会影响数据一致性,所以布谷鸟过滤器可以很好地用于重删元数据查询中。
63.而通过布谷鸟过滤器包含的哈希算法计算哈希值在数组结构中的插入位置时,若插入位置存在元素,还可以通过哈希反查函数获取哈希值的部分比特位;判断部分比特位是否相同。若相同,对哈希值进行精确hp查询,否则将哈希值插入至数组结构对应的链表结构中。
64.特别的,在执行本步骤时,可以通过布谷鸟过滤器可以降低哈希值查询接口queryhpinfo的查询精度,由精确查询变成模糊查询,从而提高查询效率。
65.容易理解的是,本实施例默认在本步骤之前可以在布谷鸟过滤器中存储数据的指纹值。则根据布谷鸟过滤器中是否存在目标指纹值执行步骤s103。
66.s103:如果在所述布谷鸟过滤器中查询到所述目标指纹值,则增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射;否则,存储所述目标数据,将所述目标指纹值加入至所述布谷鸟过滤器中,并增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射。
67.本步骤根据是否查询目标指纹值作不同的处理。即分别针对是否能够查询到目标指纹值采用不同的处理。
68.若能够查询到目标指纹值,可以直接增加目标数据当前的逻辑地址至目标数据物理地址的元数据映射。从而减少到b+树查询的频率,以提升系统性能。
69.若未能查询到目标指纹值,表明布谷鸟过滤器此前未存储目标数据,可以先存储
目标数据,目标指纹值加入至布谷鸟过滤器中,并增加目标数据当前的逻辑地址至目标数据的物理地址的元数据映射。如此便于后续查询目标指纹,即在未查询到目标指纹值的基础上建立该目标数据的目标指纹值,从而在下一次查询目标指纹值时,可以看找查询到目标指纹值的流程执行。
70.换言之,本步骤实际上包含两种截然不同的执行过程。简单来说,无论是否查询到目标指纹值,均需要增加目标数据当前逻辑地址至物理地址的元数据映射,区别仅在于若能够查询到目标指纹值,此时无需再存储目标数据,也无需将目标指纹值加入至布谷鸟过滤器。
71.此外,在增加目标数据当前的逻辑地址至目标数据的物理地址的元数据映射之前,可以先获取目标数据对应写请求的逻辑地址,并确定目标数据对应写请求的逻辑地址为目标数据当前的逻辑地址。即将写请求的逻辑地址作为目标数据当前的逻辑地址。而目标数据的物理地址可以直接查询得到,在此不作说明。
72.在对于元数据映射,可以利用固态硬盘上的控制器管理所述物理地址和对应逻辑地址之间的元数据映射,当然也可以利用其他存储单元存储元数据映射,且需要注意的是,存储元数据映射和管理元数据映射可以分别为两个执行主体,也可以直接由一个管控主体,例如固态硬盘上的控制器进行存储和管理。
73.此外,在存储池创建后,可以对物理地址进行整合和重映射,并利用存储池的池信息以及存储偏移位置信息对逻辑地址进行重编码。在此对于如何对逻辑地址进行重编码不作限定,可以由本领域技术人员根据物理地址和逻辑地址之间的关系进行配置和设定。
74.本技术实施例在接收到写请求后,计算相应的目标指纹值,并在布谷鸟过滤器中查询目标指纹值,一旦查询到,直接增加该目标数据当前逻辑地址,若是未查询到目标指纹值,则存储目标数据并添加目标指纹值和该目标数据物理地址的元数据映射,从而无需查询b+树,可以直接利用布谷鸟过滤器查询相应的元数据映射,减少重删元数据到盘上b+树中查询的频率,提升整个存储系统的性能。
75.基于上述实施例,作为优选的实施例,如果在布谷鸟过滤器中查询到目标指纹值,还可以查询是否存在目标指纹值所属的指纹值至物理地址的元数据映射,如果存在,则确定目标指纹值所属的指纹值至物理地址的元数据映射中的物理地址为目标数据的物理地址,并增加目标数据当前的逻辑地址至目标数据的物理地址的元数据映射。否则,存储目标数据。
76.在此对于如何查询元数据映射不作限定,可以在hp元数据树中查询是否存在所述目标指纹值所属的指纹值至物理地址的元数据映射。hp元数据树是h到p的映射,h是一个64bits的指纹值,p是一个存储数据的物理地址。此外,该hp元数据树具体可以为hp元数据b+树。
77.此时本实施例对应的流程如下:
78.第一步、接收写请求,并确定当前接收的写请求对应数据为目标数据;
79.第二步、计算所述目标数据的指纹值得到目标指纹值,并在布谷鸟过滤器中查询所述目标指纹值;若在所述布谷鸟过滤器中查询到所述目标指纹值,进入第三步;若未在所述布谷鸟过滤器中查询到所述目标指纹值,进入第七步;
80.第三步、增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据
映射;
81.第四步、查询是否存在目标指纹值所属的指纹值至物理地址的元数据映射;如果存在,进入第五步;否则进入第六步;
82.特别的,在查询是否存在元数据映射时,可以在hp元数据树中查询是否存在目标指纹值所属的指纹值至物理地址的元数据映射。在此对于hp元数据树不作限定,一种可行的方式中,hp元数据树可以为hp元数据b+树。
83.第五步、则确定目标指纹值所属的指纹值至物理地址的元数据映射中的物理地址为目标数据的物理地址,并增加目标数据当前的逻辑地址至目标数据的物理地址的元数据映射的。
84.第六步、存储所述目标数据。
85.第七步、存储所述目标数据,将所述目标指纹值加入至所述布谷鸟过滤器中,并增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射。
86.可见,本技术实施例在上一实施例的基础上,增加了对于目标指纹值所属指纹值至物理地址的元数据映射的查询过程,能够更快速的确定目标数据的物理地址,从而快速执行建立目标数据逻辑地址至物理地址的元数据映射的过程,有利于目标指纹值的建立和后续查询。
87.参见图2,图2为本发明实施例提供的一种重删查询装置的结构示意图,包括:
88.接收模块,用于接收写请求,并确定当前接收的写请求对应的目标数据;
89.查询模块,用于计算所述目标数据的指纹值得到目标指纹值,并在布谷鸟过滤器中查询所述目标指纹值;
90.执行模块,用于如果在所述布谷鸟过滤器中查询到所述目标指纹值,则增加所述目标数据对应写请求中的逻辑地址至所述目标数据的物理地址的元数据映射,否则,存储所述目标数据,将所述目标指纹值加入至所述布谷鸟过滤器中,并增加所述目标数据对应写请求中的逻辑地址至所述目标数据的物理地址的元数据映射。
91.基于上述实施例,作为优选的实施例,还包括:
92.映射查询模块,用于如果在所述布谷鸟过滤器中查询到所述目标指纹值,则查询是否存在所述目标指纹值所属的指纹值至物理地址的元数据映射,如果存在,则确定所述目标指纹值所属的指纹值至物理地址的元数据映射中的物理地址为所述目标数据的物理地址,并执行增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射的步骤,否则,执行存储所述目标数据的步骤;
93.基于上述实施例,作为优选的实施例,还包括:
94.过滤器设置模块,用于设置所述布谷鸟过滤器对应的数组结构和链表结构;其中,同一指纹值存于所述数组结构中的两个位置,且所述指纹值为对物理地址对应哈希的部分比特位做的二次哈希值。
95.基于上述实施例,作为优选的实施例,还包括:
96.位置计算模块,用于通过所述布谷鸟过滤器包含的哈希算法计算所述哈希值在所述数组结构中的插入位置。
97.基于上述实施例,作为优选的实施例,还包括:
98.插入模块,用于所述插入位置存在元素时,通过哈希反查函数获取所述哈希值的
部分比特位;判断所述部分比特位是否相同;若相同,对所述哈希值进行精确hp查询;若不相同,将所述哈希值插入至所述数组结构对应的所述链表结构中。
99.基于上述实施例,作为优选的实施例,还包括:
100.映射关系管理模块,用于利用固态硬盘上的控制器管理所述物理地址和对应逻辑地址的映射关系;其中,在存储池创建后,对所述物理地址进行整合和重映射;利用存储池的池信息以及存储偏移位置信息对所述逻辑地址进行重编码。
101.基于上述实施例,作为优选的实施例,接收模块包括:
102.数据确定单元,用于确定当前接收的写请求对应数据块的数据为目标数据;
103.相应的,所述查询模块包含:
104.哈希计算单元,用于使用预设的哈希算法计算所述目标数据的指纹值得到目标指纹值。
105.本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的方法的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
106.本技术还提供了一种重删查询设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的方法的步骤。当然所述重删查询设备还可以包括各种网络接口,电源等组件。请参见图3,图3为本技术实施例所提供的一种重删查询设备的结构示意图,本实施例的重删查询设备可以包括:处理器2101和存储器2102。
107.可选的,该重删查询设备还可以包括通信接口2103、输入单元2104和显示器2105和通信总线2106。
108.处理器2101、存储器2102、通信接口2103、输入单元2104、显示器2105、均通过通信总线2106完成相互间的通信。
109.在本技术实施例中,该处理器2101,可以为中央处理器(central processing unit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
110.该处理器可以调用存储器2102中存储的程序。具体的,处理器可以执行上文的实施例中重删查询设备所执行的操作。
111.存储器2102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本技术实施例中,该存储器中至少存储有用于实现以下功能的程序:
112.接收写请求,并确定当前接收的写请求对应数据为目标数据;
113.计算所述目标数据的指纹值得到目标指纹值,并在布谷鸟过滤器中查询所述目标指纹值;
114.若在所述布谷鸟过滤器中查询到所述目标指纹值,则增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射,否则,存储所述目标数据,将所述目标指纹值加入至所述布谷鸟过滤器中,并增加所述目标数据当前的逻辑地址至所述目标数据的物理地址的元数据映射。
115.在一种可能的实现方式中,该存储器2102可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据。
116.此外,存储器2102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
117.该通信接口2103可以为通信模块的接口,如gsm模块的接口。
118.本技术还可以包括显示器2105和输入单元2104等等。
119.图3所示的重删查询设备的结构并不构成对本技术实施例中重删查询设备的限定,在实际应用中重删查询设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。
120.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
121.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
122.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1