操作请求下发方法、装置、计算机设备及存储介质与流程
- 国知局
- 2024-09-05 14:50:51
本发明涉及存储,具体涉及操作请求下发方法、装置、计算机设备及存储介质。
背景技术:
1、随着科技的快速发展,信息量成爆炸式增长,分布式存储系统常用于存储每日产生的大量数据。在分布式存储系统中,一般是使用iscsi(internet small computersystem interface)协议对外提供块存储相关服务。
2、用户可以在客户端登录服务端,在服务端上创建虚拟机、数据库和文件系统等进行使用,使用虚拟机、数据库和文件系统等相关应用存在大量的数据读写操作。一般地,服务端上的tgt(linux scsi target framework)层在接收到来自客户端的数据读写请求后,会直接将数据读写请求下发至分布式存储系统。
3、由于每下发一个数据读写请求就需要访问一次分布式存储系统,因此,在数据读写请求数量较多的情况下,访问次数较多,导致分布式存储系统的压力较大。
技术实现思路
1、有鉴于此,本发明提供了一种操作请求下发方法、装置、计算机设备、存储介质及程序产品,以解决数据读写请求数量较多的情况下,导致分布式存储系统的压力较大的问题。
2、第一方面,本发明提供了一种操作请求下发方法,所述方法包括:
3、从第一缓存队列中获取与第一操作请求对应的操作类型和数据存储范围信息,其中,所述第一缓存队列中存储有多个操作请求,以及与每一个所述操作请求对应的操作类型和数据存储范围信息,所述第一操作请求为所述第一缓存队列中排序最靠前的操作请求;
4、确定所述第一缓存队列中是否存在与所述第一操作请求的操作类型相同的候选操作请求;
5、当确定存在至少一个所述候选操作请求时,根据与所述第一操作请求对应的数据存储范围信息,以及至少一个所述候选操作请求分别对应的数据存储范围信息,从至少一个所述候选操作请求中选取第一目标操作请求集合;
6、当确定存在所述第一目标操作请求集合时,对所述第一操作请求和所述第一目标操作请求集合中的每一个目标操作请求进行合并,生成第一合并操作请求;
7、根据与所述第一操作请求对应的数据存储范围信息,以及与所述第一目标操作请求集合中的每一个目标操作请求对应的数据存储范围信息,确定所述第一合并操作请求的数据存储范围信息;
8、当至少一个所述候选操作请求中除包括所述第一目标操作请求集合中的目标操作请求外,还包括其他所述候选操作请求时,根据与所述第一合并操作请求对应的数据存储范围信息,以及其他所述候选操作请求分别对应的数据存储范围信息,从其他所述候选操作请求中选取第二目标操作请求集合;
9、当确定不存在所述第二目标操作请求集合时,将所述第一合并操作请求下发至目标对象。
10、本发明提供的一种操作请求下发方法,具有如下优点:
11、通过第一缓存队列对接收到的操作请求进行缓存,根据操作请求的操作类型和数据存储范围信息,确定能够合并在一起的操作请求,并生成合并后的操作请求。这样,需要下发的操作请求数量下降,进一步地,对分布式存储系统的访问频率也下降,可以大大降低分布式存储系统的压力。
12、在一种可选的实施方式中,所述数据存储范围信息包括操作数据的起始位置和长度;
13、所述当确定存在至少一个所述候选操作请求时,根据与所述第一操作请求对应的数据存储范围信息,以及至少一个所述候选操作请求分别对应的数据存储范围信息,从至少一个所述候选操作请求中选取第一目标操作请求集合,包括:
14、根据与所述第一操作请求对应的操作数据的起始位置和长度,确定与所述第一操作请求的对应操作数据的结束位置;
15、根据与第一候选操作请求中对应的操作数据的起始位置和长度,确定所述第一候选操作请求中对应的操作数据的结束位置,其中,所述第一候选操作请求为至少一个所述候选操作请求中的任一候选操作请求;
16、根据与所述第一操作请求对应的操作数据的起始位置和结束位置,以及与所述第一候选操作请求对应的操作数据的起始位置和结束位置,确定所述第一操作请求与所述第一候选操作请求是否匹配;
17、当确定出与所述第一操作请求匹配的至少一个目标候选操作请求时,根据与所述第一操作请求对应的操作数据的长度,以及与每一个所述目标候选操作请求对应的操作数据的长度,从所述至少一个所述目标候选操作请求中选取所述第一目标操作请求集合。
18、具体地,通过匹配操作数据的存储范围,可以确定出能够合并的相邻或重叠的操作请求,减少了独立访问存储资源的次数,进而降低i/o操作,节省存储资源和带宽,优化整体资源利用率。
19、在一种可选的实施方式中,当所述操作类型为读操作类型时,所述根据与所述第一操作请求对应的操作数据的起始位置和结束位置,以及与所述第一候选操作请求对应的操作数据的起始位置和结束位置,确定所述第一操作请求与所述第一候选操作请求是否匹配,包括:
20、将与所述第一操作请求对应的操作数据的长度确定为目标冗余读数据长度;
21、根据与所述第一操作请求对应的操作数据的结束位置,以及与所述第一候选操作请求对应的操作数据的起始位置,确定与所述第一操作请求对应的操作数据到与所述第一候选操作请求对应的操作数据的第一距离绝对值;
22、根据与所述第一操作请求对应的操作数据的起始位置,以及与所述第一候选操作请求对应的操作数据的结束位置,确定与所述第一操作请求对应的操作数据到与所述第一候选操作请求对应的操作数据的第二距离绝对值;
23、确定所述第一距离绝对值是否小于与所述目标冗余读数据长度,以及确定所述第二距离绝对值是否小于与所述目标冗余读数据长度;
24、当确定所述第一距离绝对值小于与所述目标冗余读数据长度,或者,确定所述第二距离绝对值小于与所述目标冗余读数据长度时,确定所述第一操作请求与所述第一候选操作请求匹配。
25、具体地,通过识别可以合并的读操作请求,尤其是那些操作数据位置相邻或有重叠的操作,该方案能够显著减少对目标对象的访问次数。一次读取操作可以包含多个原本独立的请求范围,从而减少了磁盘寻道时间和数据传输延迟,提升了数据读取的整体效率。
26、在一种可选的实施方式中,当所述操作类型为写操作类型时,所述根据与所述第一操作请求对应的操作数据的起始位置和结束位置,以及与所述第一候选操作请求对应的操作数据的起始位置和结束位置,确定所述第一操作请求与所述第一候选操作请求是否匹配,包括:
27、确定与所述第一候选操作请求对应的操作数据的结束位置和与所述第一操作请求对应的操作数据的起始位置是否相同;
28、以及,确定与所述第一候选操作请求对应的操作数据的起始位置和与所述第一操作请求对应的操作数据的结束位置是否相同;
29、当确定与所述第一候选操作请求对应的操作数据的结束位置和与所述第一操作请求对应的操作数据的起始位置相同,或者,确定与所述第一候选操作请求对应的操作数据的起始位置和与所述第一操作请求对应的操作数据的结束位置相同时,确定所述第一操作请求与所述第一候选操作请求匹配。
30、具体地,通过仅在写操作请求完全相邻(即一个请求的结束位置紧接着另一个请求的起始位置,或反之)时才进行合并,可以避免数据重复写入或数据遗漏的风险,确保了写入数据的完整性。
31、在一种可选的实施方式中,所述方法还包括:
32、接收第二操作请求;
33、对所述第二操作请求进行解析,得到与所述第二操作请求对应的卷标识,以及与所述第二操作请求对应的操作数据的操作类型和数据存储范围信息;
34、根据与所述第二操作请求对应的卷标识,确定出与所述第二操作请求对应的卷标识匹配的第二缓存队列;
35、将所述第二操作请求,以及与所述第二操作请求对应的操作数据的操作类型和数据存储范围信息添加到所述第二缓存队列中。
36、具体地,缓存队列机制可以作为操作请求调度的前置缓冲区,暂时存储待处理的操作请求,有利于批量处理操作请求。
37、在一种可选的实施方式中,所述将所述第二操作请求,以及与所述第二操作请求对应的操作数据的操作类型和数据存储范围信息添加到所述第二缓存队列中之前,所述方法还包括:
38、确定所述第二缓存队列中的操作请求的数量是否等于预设数量阈值;
39、当确定所述第二缓存队列中的操作请求的数量等于所述预设数量阈值时,将所述第二缓存队列中排序最靠前的第三操作请求直接下发至所述目标对象;
40、将所述第三操作请求,以及与所述第二操作请求对应的操作数据的操作类型和数据存储范围信息从所述第二缓存队列中进行删除。
41、具体地,通过设定队列的最大操作请求数量,可以有效控制内存占用,避免因队列无限增长而导致的内存耗尽问题。
42、在一种可选的实施方式中,所述第一缓存队列中还存储有与每一个所述操作请求对应的接收时间;
43、所述方法还包括:
44、在周期性的触发时刻,检测与每一个所述操作请求对应的接收时长是否大于预设时长阈值;
45、当确定与第四操作请求对应的接收时长大于所述预设时长阈值时,将所述第四操作请求直接下发至所述目标对象,并将所述第四操作请求,以及与所述第四操作请求对应的操作数据的操作类型、数据存储范围信息和接收时间,从所述第一缓存队列中删除,其中,所述第四操作请求为所述第一缓存队列中存储的多个所述操作请求中的任一操作请求。
46、具体地,通过主动识别并处理接收时长过长的操作请求,可以及时响应这些可能被延误的操作,减少用户等待时间。
47、第二方面,本发明提供了一种操作请求下发装置,所述装置包括:
48、获取模块,用于从第一缓存队列中获取与第一操作请求对应的操作类型和数据存储范围信息,其中,所述第一缓存队列中存储有多个操作请求,以及与每一个所述操作请求对应的操作类型和数据存储范围信息,所述第一操作请求为所述第一缓存队列中排序最靠前的操作请求;
49、确定模块,用于确定所述第一缓存队列中是否存在与所述第一操作请求的操作类型相同的候选操作请求;
50、选取模块,用于当确定存在至少一个所述候选操作请求时,根据与所述第一操作请求对应的数据存储范围信息,以及至少一个所述候选操作请求分别对应的数据存储范围信息,从至少一个所述候选操作请求中选取第一目标操作请求集合;
51、合并模块,用于当确定存在所述第一目标操作请求集合时,对所述第一操作请求和所述第一目标操作请求集合中的每一个目标操作请求进行合并,生成第一合并操作请求;
52、所述确定模块,还用于根据与所述第一操作请求对应的数据存储范围信息,以及与所述第一目标操作请求集合中的每一个目标操作请求对应的数据存储范围信息,确定所述第一合并操作请求的数据存储范围信息;
53、所述选取模块,还用于当至少一个所述候选操作请求中除包括所述第一目标操作请求集合中的目标操作请求外,还包括其他所述候选操作请求时,根据与所述第一合并操作请求对应的数据存储范围信息,以及其他所述候选操作请求分别对应的数据存储范围信息,从其他所述候选操作请求中选取第二目标操作请求集合;
54、下发模块,用于当确定不存在所述第二目标操作请求集合时,将所述第一合并操作请求下发至目标对象。
55、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的操作请求下发方法。
56、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的操作请求下发方法。
57、第五方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的操作请求下发方法。
本文地址:https://www.jishuxx.com/zhuanli/20240905/288427.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表