分布式存储系统的存储管理方法、设备、程序产品及介质与流程
- 国知局
- 2024-07-31 22:45:25
本发明涉及分布式存储,特别涉及一种分布式存储系统的存储管理方法、设备、程序产品及介质。
背景技术:
1、随着大数据和云计算技术的兴起,分布式存储系统技术得到了高速的发展。分布式存储系统的设计理念是基于可扩展性和容错性,采用分布式架构,将数据进行切片以对象的形式分布存储在多个节点上,并保证各个节点容量均衡,通过网络连接进行数据访问和管理的技术,同时提供统一的存储接口。
2、对象存储引擎是分布式存储系统必不可少的后端存储模块,是对象存储守护进程(object storage daemon,osd)的后端对象库,通过分配器实现对裸设备的管理,直接将对象数据保存到分布式存储节点的物理存储介质设备上,包括磁盘和固态硬盘等;同时针对对象元数据采用键值(key-value,kv)数据库进行保存,键值数据库来管理从对象名到磁盘上块位置的映射,由于数据库需要依赖文件系统,无法直接与裸设备进行交互,因此对象存储引擎底层封装了一个文件系统用来对接数据库与底层存储节点的裸设备。
3、在分布式存储系统中,面向裸设备的块接口,无论请求的key和value的大小,最小设备i/o(输入/输出)都绑定到指定的裸设备块大小,如4k;使得小于该裸设备块大小的字节级查询操作的请求会生成大量的读放大;即便相关技术中的key-value存储能够通过仅对key执行压缩而value则单独存储的方式,减小读写放大,但其代价是在频繁更新或删除key时会产生更多的垃圾回收操作,影响性能。并且如果键值对过小,相应需要存储和查询键值对的数量会增大,增加了内存消耗和磁盘i/o压力,降低查询性能。因此,如何能够提升分布式存储系统的性能,提高键值查询效率,节约内存和存储设备的硬件资源,是现今急需解决的问题。
技术实现思路
1、本发明的目的是提供一种分布式存储系统的存储管理方法、设备、计算机程序产品及计算机可读存储介质,以提升分布式存储系统的性能,提高键值查询效率,节约内存和存储设备的硬件资源。
2、为解决上述技术问题,本发明提供一种分布式存储系统的存储管理方法,包括:
3、获取预设键值数据库的点查询请求;其中,所述点查询请求包括目标用户键;
4、检测所述预设键值数据库的键索引中是否存在所述目标用户键对应的逻辑键的聚合记录;其中,所述聚合记录存储规格小于预设规格的逻辑键与对应的物理键之间的对应关系,所述物理键的规格大于或等于所述预设规格;
5、若否,则利用所述目标用户键对应的逻辑键,从所述预设键值数据库的存储设备中检索所述目标用户键对应的用户值;
6、若是,则根据所述聚合记录,确定所述目标用户键对应的物理键;
7、根据所述目标用户键对应的物理键,从所述存储设备中检索所述目标用户键对应的逻辑键,并利用所述目标用户键对应的逻辑键,从所述存储设备中检索所述目标用户键对应的用户值。
8、在另一方面,所述检测所述预设键值数据库的键索引中是否存在所述目标用户键对应的逻辑键的聚合记录,包括:
9、利用预设布隆过滤器,检测所述预设键值数据库的键索引中是否存在所述目标用户键对应的逻辑键的聚合记录。
10、在另一方面,所述利用预设布隆过滤器,检测所述预设键值数据库的键索引中是否存在所述目标用户键对应的逻辑键的聚合记录,包括:
11、利用所述预设布隆过滤器,检测所述键索引中是否存在所述目标用户键对应的逻辑键信息;
12、若不存在所述目标用户键对应的逻辑键信息,则确定所述点查询请求为空查询;
13、若存在所述目标用户键对应的逻辑键信息,则检测所述预设键值数据库的键索引中是否存在所述目标用户键对应的逻辑键的聚合记录;
14、若不存在所述聚合记录,则执行所述利用所述目标用户键对应的逻辑键,从所述预设键值数据库的存储设备中检索所述目标用户键对应的用户值的步骤;
15、若存在所述聚合记录,则执行所述根据所述聚合记录,确定所述目标用户键对应的物理键的步骤。
16、在另一方面,所述利用预设布隆过滤器,检测所述预设键值数据库的键索引中是否存在所述目标用户键对应的逻辑键的聚合记录,包括:
17、将所述目标用户键输入到所述预设布隆过滤器,获取所述预设布隆过滤器的输出结果;
18、若所述输出结果为0,则执行所述确定所述点查询请求为空查询的步骤;
19、若所述输出结果为负数,则执行所述利用所述目标用户键对应的逻辑键,从所述预设键值数据库的存储设备中检索所述目标用户键对应的用户值的步骤;
20、若所述输出结果为正数,则执行所述根据所述聚合记录,确定所述目标用户键对应的物理键的步骤。
21、在另一方面,所述获取预设键值数据库的点查询请求之前,还包括:
22、在所述预设键值数据库启动时,构建所述预设布隆过滤器。
23、在另一方面,所述在所述预设键值数据库启动时,构建所述预设布隆过滤器,包括:
24、通过,分配所述预设布隆过滤器各级的占用内存;其中, n为所述预设布隆过滤器的级数, m为所述预设布隆过滤器中的预设总占用内存, m i为所述预设布隆过滤器中的第 i级布隆过滤器的占用内存, i=0,1… n-1, n=1,2... n。
25、在另一方面,该方法还包括:
26、获取所述预设键值数据库的范围查询请求;其中,所述范围查询请求包括范围长度指定信息;
27、根据所述范围查询请求,在利用迭代器从所述存储设备中检索首次迭代的键值对中的用户值时,将所述范围长度指定信息对应的用户值从所述存储设备中预取到内存中,以使所述迭代器从内存中获取下一次迭代的键值对中的用户值。
28、在另一方面,所述范围长度指定信息包括指定时间戳范围,或者所述范围长度指定信息包括指定首次迭代用户键和指定扫描长度。
29、在另一方面,该方法还包括:
30、获取所述预设键值数据库的范围查询请求;
31、若检测所述键索引存在所述范围查询请求的当前用户键对应的逻辑键的聚合记录,则根据当前用户键对应的逻辑键的聚合记录,确定当前用户键对应的物理键;其中,当前用户键为所述范围查询请求的迭代器当前次迭代的键值对中的用户值;
32、根据所述当前用户键对应的物理键,从所述存储设备中检索所述当前用户键对应的逻辑键,并将当前用户键对应的物理键中其它的逻辑键从所述存储设备中缓存到内存中,以使所述迭代器从内存中获取下一次迭代的键值对中的用户值;
33、利用当前用户键对应的逻辑键,从所述存储设备中检索当前用户键对应的用户值。
34、在另一方面,所述根据所述聚合记录,确定所述目标用户键对应的物理键,包括:
35、根据所述预设键值数据库的排序字符串表中存储的目标序号,确定所述存储设备中存储的所述目标用户键对应的物理键;其中,所述目标序号为所述目标用户键对应的逻辑键的聚合记录中物理键对应的排序序号。
36、在另一方面,该方法还包括:
37、获取待存储键值对的逻辑键;其中,所述逻辑键包括所述待存储键值对中的用户键和用户值;
38、识别逻辑键中的可聚合键;其中,每个所述可聚合键的规格均小于所述预设规格;
39、对所述可聚合键进行聚合得到物理键,并在所述键索引中存储每个所述可聚合键与对应的物理键之间的聚合记录;其中,每个所述物理键对中全部可聚合键的规格之和大于或等于所述预设规格,每个所述可聚合键聚合到对应的一个物理键中;
40、将所述物理键存储到所述存储设备。
41、在另一方面,所述待存储键值对中的用户键包括分布式存储系统的元数据文件在父目录的索引节点号和文件名称,所述待存储键值对中的用户值包括所述索引节点号和文件属性,所述文件属性包括类型、规格、权限位和所有者信息中的至少一项。
42、本发明还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述所述的分布式存储系统的存储管理方法的步骤。
43、本发明还提供了一种分布式存储系统的存储管理设备,包括:
44、存储器,用于存储计算机程序;
45、处理器,用于执行所述计算机程序时实现如上述所述的分布式存储系统的存储管理方法的步骤。
46、此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的分布式存储系统的存储管理方法的步骤。
47、本发明所提供的一种分布式存储系统的存储管理方法,包括:获取预设键值数据库的点查询请求;其中,点查询请求包括目标用户键;检测预设键值数据库的键索引中是否存在目标用户键对应的逻辑键的聚合记录;其中,聚合记录存储规格小于预设规格的逻辑键与对应的物理键之间的对应关系,物理键的规格大于或等于预设规格;若否,则利用目标用户键对应的逻辑键,从预设键值数据库的存储设备中检索目标用户键对应的用户值;若是,则根据聚合记录,确定目标用户键对应的物理键;根据目标用户键对应的物理键,从存储设备中检索目标用户键对应的逻辑键,并利用目标用户键对应的逻辑键,从存储设备中检索目标用户键对应的用户值。
48、可见,本发明将多个较小的逻辑键聚合成较大的物理键,实现了逻辑键到物理键的转换,能够产生更高的写入吞吐量和减少所需管理的存储设备中的物理键的数量,从而节约内存和存储设备的硬件资源;并且通过键索引中保存的逻辑键的聚合记录,能够便捷地确认逻辑键是在聚合的物理键中存储还是直接存储,以在物理键中存储时查询到相应的物理键,并通过物理键查询相应的用户值,实现对逻辑键的范围查询,且在直接存储时直接从存储设备中查找相应的用户值,减少物理键的索引过程,减少键索引查询的开销,提升分布式存储系统的性能,提高键值查询效率。此外,本发明还提供了一种分布式存储系统的存储管理设备、程序产品及介质,同样具有上述有益效果。
本文地址:https://www.jishuxx.com/zhuanli/20240730/194435.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表