System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据存储领域,特别涉及一种数据写入方法、系统、设备及介质。
技术介绍
1、相关技术中,对存储系统中的重复数据进行删除是一种清理存储系统中重复的数据,从而降低数据实际占用的存储空间的技术,可以在存储系统中维护一个全局指纹表,为了保证指纹表的查找速度,指纹表需要保存在内存中,但是随着数据的持续写入,指纹表会占用大量内存。
2、但是,在分布式存储系统中,存储资源分布在多个存储节点上,节点数较多,如果在每个节点都维护一个全局指纹表的副本,指纹表的一致性很难实现,也会占用大量的系统资源,而如果每个节点只维护自己本地的指纹表,重删率,即重复数据删除的数据缩减率又无法保证。
3、相关技术中将指纹单独直接保存在元数据池或数据池中,会造成指纹对象个数过多,查询效率低,并且指纹缓存将所有指纹保存在内存中,会造成内存使用量过多。
4、因此,如何提高指纹查询效率、减小指纹占用内存,成为了亟待解决的问题。
技术实现思路
1、基于上述技术问题,本申请实施例提供一种数据写入方法、系统、设备及介质,旨在提高指纹查询效率、减小指纹占用内存。
2、本申请实施例第一方面提供了一种数据写入方法,应用于指纹端,所述方法包括:
3、响应于缓存端发送的目标数据块对应的目标指纹,确定所述目标指纹的第一检索标识与第二检索标识;
4、根据所述目标指纹的所述第一检索标识,在指纹池中查询所述目标指纹对应的目标指纹表,所述指纹池包含多个具有不同第一检索标识的
5、在所述目标指纹表中不存在所述目标指纹的所述第二检索标识的情况下,在所述目标指纹表中创建目标指纹条目,并将所述目标指纹表中不存在所述目标指纹的反馈信息发送至所述缓存端;
6、接收所述缓存端发送的目标存储地址和目标映射地址,将所述目标存储地址和目标映射地址写入所述目标指纹条目。
7、可选地,在所述目标指纹表中存在所述目标指纹的所述第二检索标识的情况下,所述方法还包括:
8、获取所述目标指纹表中与所述目标指纹的所述第二检索标识对应的指纹条目中存储的信息,作为目标信息;
9、在所述目标信息中存在所述目标存储地址的情况下,将所述目标指纹所对应的目标存储地址发送至所述缓存端;
10、在所述目标信息中不存在所述目标存储地址的情况下,暂停查询操作,直至所述目标指纹的所述第二检索标识对应的指纹条目中生成与目标指纹对应的目标存储地址。
11、可选地,在所述目标信息中存在所述目标存储地址的情况下,所述方法还包括:
12、创建所述目标指纹的映射地址表,所述映射地址表用于存储所述目标指纹的映射地址,所述映射地址表至少包括:第三检索标识、映射对象以及映射对象地址;
13、根据所述目标指纹的所述第二检索标识对应的指纹条目中的映射地址,确定所述目标指纹的映射地址表中第一条目的映射对象以及映射对象地址;
14、根据所述缓存端发送的目标指纹的目标映射地址,确定所述目标指纹的映射地址表中第二条目的映射对象以及映射对象地址;
15、根据所述目标指纹确定第三检索标识,将所述目标指纹的所述第二检索标识对应的指纹条目中的所述映射地址,更新为所述第三检索标识。
16、可选地,在多个指纹表中,不存在与目标指纹对应的目标指纹表的情况下,还包括:
17、根据所述目标指纹的所述第一检索标识,创建原始指纹表;
18、在所述原始指纹表中创建所述目标指纹条目;
19、接收所述缓存端发送的目标存储地址和目标映射地址,将所述目标存储地址和目标映射地址写入所述目标指纹条目,得到所述目标指纹表。
20、本申请实施例第二方面提供了一种数据写入方法,应用于缓存端,所述方法包括:
21、响应于对目标数据的写入操作,获取所述目标数据中目标数据块的目标指纹,并将所述目标指纹发送至指纹端;
22、接收所述指纹端发送的反馈信息,将所述目标指纹对应的目标数据块写入数据池,并获取所述目标数据块在所述数据池中的目标存储地址,所述反馈信息用于表征指纹池中的目标指纹表中不存在目标指纹的第二检索标识;
23、在缓存池中记录与所述目标存储地址对应的所述目标数据块的目标映射地址,并将所述目标存储地址和所述目标映射地址发送至指纹端。
24、可选地,所述方法还包括:
25、接收所述指纹端发送的所述目标指纹的所述第二检索标识对应的指纹条目中的目标存储地址,删除所述目标指纹对应的所述目标数据块;
26、根据所述目标指纹的所述第二检索标识对应的指纹条目中的目标存储地址,在缓存池中记录所述目标指纹对应的所述目标数据块的目标映射地址。
27、可选地,在缓存池中记录与所述目标存储地址对应的所述目标数据块的目标映射地址后,所述方法还包括:
28、基于所述指纹池中的指纹表,在缓存池中创建缓存指纹表,所述缓存指纹表中至少包括缓存指纹,所述缓存指纹为所述指纹端的各个指纹表中存储的各个指纹对应的指纹标识;
29、创建所述缓存指纹对应的缓存指纹条目;
30、响应于用户对所述数据池中数据的查询操作,在所述缓存指纹表中查询所述数据中多个数据块对应的缓存指纹;
31、其中,创建所述缓存指纹对应的缓存指纹条目,包括:
32、在指纹表中不存在映射地址表的情况下,将缓存指纹作为缓存指纹条目的信息;
33、在指纹表中存在映射地址表的情况下,在所述指纹表中获取存储地址以及映射地址,写入所述缓存指纹条目中。
34、本申请实施例第三方面提供了一种数据写入系统,所述系统包括指纹端和缓存端:
35、所述缓存端,用于响应于对目标数据的写入操作,获取所述目标数据中目标数据块的目标指纹,并将所述目标指纹发送至指纹端;
36、所述指纹端,用于响应于缓存端发送的目标数据块对应的目标指纹,确定所述目标指纹的第一检索标识与第二检索标识;根据所述目标指纹的所述第一检索标识,在指纹池中查询所述目标指纹对应的目标指纹表;在所述目标指纹表中不存在所述目标指纹的所述第二检索标识的情况下,在所述目标指纹表中创建目标指纹条目,并将所述目标指纹表中不存在所述目标指纹的反馈信息发送至所述缓存端;
37、所述缓存端,还用于接收所述指纹端发送的反馈信息,将所述目标指纹对应的目标数据块写入数据池,并获取所述目标数据块在所述数据池中的目标存储地址;在缓存池中记录与所述目标存储地址对应的所述目标数据块的目标映射地址,并将所述目标存储地址和所述目标映射地址发送至指纹端;
38、所述指纹端,还用于接收所述缓存端发送的目标存储地址和目标映射地址,将所述目标存储地址和目标映射地址写入所述目标指纹条目。
39、本申请实施例第四方面提供了一种数据写入装置,应本文档来自技高网...
【技术保护点】
1.一种数据写入方法,其特征在于,应用于指纹端,包括:
2.根据权利要求1所述的数据写入方法,其特征在于,在所述目标指纹表中存在所述目标指纹的所述第二检索标识的情况下,所述方法还包括:
3.根据权利要求2所述的数据写入方法,其特征在于,在所述目标信息中存在所述目标存储地址的情况下,所述方法还包括:
4.根据权利要求1所述的数据写入方法,其特征在于,在多个指纹表中,不存在与目标指纹对应的目标指纹表的情况下,所述方法还包括:
5.一种数据写入方法,其特征在于,应用于缓存端,包括:
6.根据权利要求5所述的数据写入方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的数据写入方法,其特征在于,在缓存池中记录与所述目标存储地址对应的所述目标数据块的目标映射地址后,所述方法还包括:
8.一种数据写入系统,其特征在于,所述系统包括指纹端和缓存端;
9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现权利要求1-4中任一所述的数据写入
10.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-4中任一所述的数据写入方法中的步骤,或者,该计算机程序/指令被处理器执行时实现权利要求5-7中任一所述的数据写入方法中的步骤。
...【技术特征摘要】
1.一种数据写入方法,其特征在于,应用于指纹端,包括:
2.根据权利要求1所述的数据写入方法,其特征在于,在所述目标指纹表中存在所述目标指纹的所述第二检索标识的情况下,所述方法还包括:
3.根据权利要求2所述的数据写入方法,其特征在于,在所述目标信息中存在所述目标存储地址的情况下,所述方法还包括:
4.根据权利要求1所述的数据写入方法,其特征在于,在多个指纹表中,不存在与目标指纹对应的目标指纹表的情况下,所述方法还包括:
5.一种数据写入方法,其特征在于,应用于缓存端,包括:
6.根据权利要求5所述的数据写入方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的数据写入方法,其特征在于,在缓存...
【专利技术属性】
技术研发人员:刘鑫,侯斌,
申请(专利权)人:苏州元脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。