一种基于分布式存储的异步IO高速存取方法及其装置与流程

文档序号:37343078发布日期:2024-03-18 18:15阅读:9来源:国知局
一种基于分布式存储的异步IO高速存取方法及其装置与流程

本发明涉及计算集群领域,特别涉及一种基于分布式存储的异步io高速存取方法及其装置。


背景技术:

1、为了实现大规模集群中存储的需要,通常采用分布式存储的方式,即将数据分片,再将每段分散的存储在不同的存储服务器中。对于较小的数据样本文件,对存储服务器发送读取指令后,存储服务器进行数据片段读取时,如果对每个存储服务器只是同时发送一个读取指令,由存储服务器上单个线程完成读取,读取效率较低,一定程度上降低了通信传输带宽的使用率。对于较大的数据样本文件,如果分片也较大,在同一个读取指令中读取和传输较大的数据片段,也会造成读取传输效率低下。此外,对存储服务器来说,每次读取不同大小的数据块意味着每次需要申请不同大小的内存,增加了服务器端内存管理的难度,降低了读取效率。在此情况下,一种更高效合理的数据存取模式显得尤为重要。


技术实现思路

1、针对现有技术中存在的上述缺陷,本发明提供一种基于分布式存储的异步io高速存取方法及其装置,通过将同一个存储服务器上多个片段读取指令组合为一个固定大小的批量读取,保证每个请求读取的数据量均匀,实现分布式存储系统中异步io的多线程批量读取模式,以及存储服务器内存统一管理。

2、本发明是通过以下技术方案达到上述目的:一种基于分布式存储的异步io高速存取方法,包括存储步骤和读取步骤,存储步骤包括:

3、(1)数据文件均价分片;

4、(2)数据片段按顺序存储;

5、(3)保持数据片段存储标记信息。

6、读取步骤包括:

7、(4)发出数据文件异步读取指令,其中包括需要读取数据文件名;

8、(5)解析数据片段存储标记信息,获取该文件对应的数据片段存储标记信息;

9、(6)数据片段存储标记信息整合后,向对应的数据存储单元发送批量数据读取请求;

10、(7)多线程数据读取;

11、(8)批量发送数据片段;

12、(9)批量接收原始数据片段,根据存储标记信息将数据片段按顺序依次拼接,得到完整数据文件。

13、作为优选,存储片段标记信息包括数据文件名称、数据文件大小、数据片段名称、分片大小、数据片段所在的存储单元及数据片段存储位置。

14、作为优选,步骤(1)中数据文件按一定大小分割成大小相同的数据片段,对于有n个存储单元的集群系统,一个数据文件切割后的得到n个片段,其切割大小应尽可能实现n≥n。

15、作为优选,步骤(2)中,将n个存储单元做一次随机排列顺序打乱,再将数据片段按顺序存放在对应的存储单元中,对单个数据文件,切割后得到n个片段,第a个片段存入第a%n个存储单元中,a%n表示a对n做求余运算;下一个数据文件存放前,再进行一次n个存储单元做一次随机的排列顺序打乱。

16、作为优选,步骤(6)中,根据数据片段存储标记信息,分别向n个存储服务器同时发送批量读取请求:数据片段中编号对n取余结果相同的数据片段,存放在同一个数据存储单元中,将该存储单元的读取请求组合成为一个批量请求,发送到对应的存储单元;集群系统中所有批量数据请求所对应的读取数据需要组成一个数据读取块,所述数据读取块是由多个数据片段的组成的,大小为一个固定值,一个数据读取块为一次数据批量读取请求从一个存储服务器中获取的。

17、作为优选,所述的数据片段大小范围为512kb-2mb。

18、一种应用上述方法的基于分布式存储的异步io高速存取的装置,包括操作单元、解析单元,及n个存储单元,所述的操作单元与解析单元相连,所述的存储单元与操作单元相连。

19、作为优选,所述的操作单元为用户使用的客户端,所述解析单元为元数据库。

20、作为优选,所述的存储单元为存储服务器,存储单元包括存储介质,所述存储介质为ssd。

21、本发明的有益效果在于,通过将同一个存储服务器上多个片段读取指令组合为一个固定大小的批量读取,保证每个请求读取的数据量均匀,实现分布式存储系统中异步io的多线程批量读取模式,以及存储服务器内存统一管理。本发明极大提高了io读取效率,有效提高了网络传输资源利用率,减少了读取带宽波动造成的多余内存开销和网络拥塞,提高了大规模集群中计算节点侧的数据读取性能。



技术特征:

1.一种基于分布式存储的异步io高速存取方法,其特征在于,包括存储步骤和读取步骤,其中,存储步骤包括:

2.根据权利要求1所述的一种基于分布式存储的异步io高速存取方法,其特征在于,读取步骤包括:

3.根据权利要求1-2所述的一种基于分布式存储的异步io高速存取方法,其特征在于,存储片段标记信息包括数据文件名称、数据文件大小、数据片段名称、分片大小、数据片段所在的存储单元及数据片段存储位置。

4.根据权利要求1-3所述的一种基于分布式存储的异步io高速存取方法,其特征在于,步骤(1)中数据文件按一定大小分割成大小相同的数据片段,对于有n个存储单元的集群系统,一个数据文件切割后的得到n个片段,其切割大小应尽可能实现n≥n。

5.根据权利要求1-3所述的一种基于分布式存储的异步io高速存取方法,其特征在于,步骤(2)中,将n个存储单元做一次随机排列顺序打乱,再将数据片段按顺序存放在对应的存储单元中,对单个数据文件,切割后得到n个片段,第a个片段存入第a%n个存储单元中,a%n表示a对n做求余运算;下一个数据文件存放前,再进行一次n个存储单元做一次随机的排列顺序打乱。

6.根据权利要求1-3所述的一种基于分布式存储的异步io高速存取方法,其特征在于,步骤(6)中,根据数据片段存储标记信息,分别向n个存储服务器同时发送批量读取请求:数据片段中编号对n取余结果相同的数据片段,存放在同一个数据存储单元中,将该存储单元的读取请求组合成为一个批量请求,发送到对应的存储单元;集群系统中所有批量数据请求所对应的读取数据需要组成一个数据读取块,所述数据读取块是由多个数据片段的组成的,大小为一个固定值,一个数据读取块为一次数据批量读取请求从一个存储服务器中获取的。

7.根据权利要求1-3所述的一种基于分布式存储的异步io高速存取方法,其特征在于,所述的数据片段大小范围为512kb-2mb。

8.一种应如权利要求1-7任一权利所述方法的一种基于分布式存储的异步io高速存取的装置,其特征在于,包括操作单元、解析单元,及n个存储单元,所述的操作单元与解析单元相连,所述的存储单元与操作单元相连。

9.根据权利要求8所述的一种基于分布式存储的异步io高速存取的装置,其特征在于,所述的操作单元为用户使用的客户端,所述解析单元为元数据库。

10.根据权利要求8所述的一种基于分布式存储的异步io高速存取的装置,其特征在于,所述的存储单元为存储服务器,存储单元包括存储介质,所述存储介质为ssd。


技术总结
本发明涉及一种基于分布式存储的异步IO高速存取方法,包括存储步骤和读取步骤,其中,存储步骤包括:(1)数据文件均价分片;(2)数据片段按顺序存储;(3)保持数据片段存储标记信息。读取步骤包括:(4)发出数据文件异步读取指令;(5)解析数据片段存储标记信息,获取该文件对应的存储标记信息;(6)数据片段存储标记信息整合后,向对应的数据存储单元发送批量数据读取请求;(7)多线程数据读取;(8)批量发送数据片段;(9)批量接收原始数据片段,根据存储标记信息将数据片段按顺序依次拼接,得到完整数据文件。本发明的装置包括操作单元、解析单元,及n个存储单元。本发明提高了IO读取效率,减少了多余内存开销和网络拥塞。

技术研发人员:熊一梁,张毅超,聂小涛
受保护的技术使用者:宁波积幂信息科技有限公司
技术研发日:
技术公布日:2024/3/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1