一种缓存控制方法、装置和计算机设备与流程

文档序号:37311104发布日期:2024-03-13 21:00阅读:9来源:国知局
一种缓存控制方法、装置和计算机设备与流程

本技术涉及数据处理,特别涉及一种缓存控制方法、装置和计算机设备。


背景技术:

1、数据处理单元(data processing unit,dpu)是最新发展起来的专用处理器的一个大类,是继中央处理器(central processing unit,cpu)、图形处理器(graphicsprocessing unit,gpu)之后,数据中心场景中的第三颗重要的算力芯片,能够为高带宽、低延迟、数据密集的计算场景提供计算引擎。随着dpu的快速发展,目前业界广泛采用dpu卸载来降低算力消耗和在数据路径上进行io随路加速,从而,dpu加速系统从“以cpu为中心”向“以数据为中心”的演进。

2、例如,在一些设计中,通过虚拟机卸载到dpu直通盘框的方式,来卸载主机的文件系统客户端以及为主机提供第四代扩展文件系统(fourth extended file system,ext4)卸载,可以节省主机侧的计算资源消耗,并且实现主机无盘化。

3、然而,这种方式会导致端到端io路径变长,增大io时延也带来较大的性能问题。同时,主机侧采用的标准内核的缓存控制逻辑也不再满足性能要求。


技术实现思路

1、本技术实施例提供一种缓存控制方法、装置和计算机设备,有助于计算节点根据业务实现缓存控制逻辑的实时、快速的切换,尽量满足极致性能的目标。

2、第一方面,本技术实施例提供了一种缓存控制方法,该方法包括:计算节点在内核态获取缓存访问请求,所述缓存访问请求指示对待处理数据的缓存需求;所述计算节点在所述内核态对所述缓存访问请求进行处理时,调用所述缓存访问请求关联的缓存控制逻辑的机器指令,并在运行所述缓存控制逻辑的机器指令时,与所述计算节点的后端存储节点交互,以从所述后端存储节点读取所述待处理数据,或者向所述后端存储节点写入所述待处理数据的镜像数据。

3、上述方法可以适用于涉及文件存储缓存系统的计算机设备,适用于需要实现缓存控制逻辑与缓存数据分离、同时对性能较高要求的场景中,包括但不限于linux内核的页面缓存(page cache)系统、分布式存储的集群文件缓存系统等。进一步的,该方法适用于计算节点将本地文件系统卸载至dpu的场景中,计算节点在访问存储节点时,可以通过dpu实现存储相关的计算,而不必消耗计算节点cpu的计算资源。由于计算节点可以通过网络与存储节点连接,而目前的存储节点中又可以设置有存储控制器,因此,计算节点在访问存储节点时,除了可以通过dpu实现存储相关的计算,也可以通过存储节点中的存储控制器实现存储相关的计算。应理解,本技术实施例的缓存控制方案主要是对计算节点侧与缓存控制相关的算法的改进,对于计算节点如何与后端存储节点、或者如何通过cpu与后端存储节点进行交互不做限定,相关实现可以参考现有相关设计,在此不再赘述。

4、通过上述方法,可以将缓存控制逻辑与数据分离,在需要的情况下,通过在内核态即时、动态地加载所需的缓存控制逻辑的通用字节码并进行编译和运行,能够在不中断业务的情况下,使得计算节点在内核态使用多种ai算法或者io业务模型,同时不存在跨态穿越的开销,也不存在跨内核态/用户态通信的性能问题,能够满足控制逻辑与数据分离场景下的性能要求。

5、结合第一方面,在一种可能的设计中,所述方法还可以包括:所述计算节点在内核启动时,将所述缓存控制逻辑的通用字节码从用户空间加载至内核空间;所述计算节点在内核态将所述缓存控制逻辑的通用字节码编译为所述缓存控制逻辑的机器指令;所述计算节点在所述内核空间存储所述缓存控制逻辑的机器指令。

6、通过上述方法,计算节点可以在内核启动时,实现所需的缓存控制逻辑的通用字节码的动态加载。

7、结合第一方面,在一种可能的设计中,所述方法还包括:所述计算节点在用户态获取多个缓存控制模型的源代码,每个缓存控制模型关联一种缓存控制逻辑;所述计算节点在所述用户态将所述多个缓存控制模型的源代码编译为相应的通用字节码;所述计算节点在用户空间存储所述多个缓存控制模型的通用字节码。在一个可选的实现中,所述多个缓存控制模型可以关联不同的人工智能ai算法或者输入输出io业务模型。

8、通过上述方法,计算节点可以在用户态获取不同缓存控制模型的源代码并编译为通用字节码。该方法可以将算法的配置或升级与用户态解耦,使得计算节点可以在内核态使用多种ai算法或者业务模型的控制逻辑,在涉及算法升级时,无需重启业务或者重启操作系统,有助于保障业务连续性。

9、结合第一方面,在一种可能的设计中,所述方法还可以包括:所述计算节点在内核空间的缓存模块建立钩子函数,所述钩子函数用于所述缓存模块调用所述缓存控制逻辑的机器指令。

10、通过上述方法,作为示例,计算节点可以在内核空间的缓存模块上建立钩子,以便在内核空间注入不同的缓存控制模型,从而满足多种模型的缓存控制要求。

11、结合第一方面,在一种可能的设计中,在所述缓存访问请求为读请求时,所述缓存控制逻辑包括以下至少一项:面向缓存数据的刷盘控制逻辑;面向缓存数据的淘汰控制逻辑;或者,面向所述后端存储节点的数据预取控制逻辑。

12、结合第一方面,在一种可能的设计中,在所述缓存访问请求为写请求时,所述缓存控制逻辑包括以下至少一项:面向缓存数据的刷盘控制逻辑;面向缓存数据的淘汰控制逻辑;面向缓存数据的告警管理控制逻辑;面向所述后端存储节点的镜像控制逻辑;或者,面向缓存数据的数据回滚控制逻辑。

13、应理解,此处仅是对缓存访问请求为读请求或者写请求时,可能涉及的缓存控制逻辑的示例说明而非任何限定。

14、结合第一方面,在一种可能的设计中,所述计算节点基于数据处理单元dpu卸载本地文件系统,所述计算节点与所述计算节点的后端存储节点交互,包括:所述计算节点通过所述dpu直通所述后端存储节点。

15、通过上述方法,计算节点可以是使用dpu进行能力卸载场景中的计算节点,该计算节点使用本技术实施例的缓存控制方法后,可以通过dpu实现与后端存储节点的交互。

16、第二方面,本技术实施例提供了一种缓存控制装置,包括:获取单元,用于在内核态获取缓存访问请求,所述缓存访问请求指示对待处理数据的缓存需求;处理单元,用于在所述内核态对所述缓存访问请求进行处理时,调用所述缓存访问请求关联的缓存控制逻辑的机器指令,并在运行所述缓存控制逻辑的机器指令时,与计算节点的后端存储节点交互,以从所述后端存储节点读取所述待处理数据,或者向所述后端存储节点写入所述待处理数据的镜像数据。

17、结合第二方面,在一种可能的设计中,所述处理单元还用于:在内核启动时,将所述缓存控制逻辑的通用字节码从用户空间加载至内核空间;在内核态将所述缓存控制逻辑的通用字节码编译为所述缓存控制逻辑的机器指令;所述装置还包括:存储单元,用于在所述内核空间存储所述缓存控制逻辑的机器指令。

18、结合第二方面,在一种可能的设计中,所述处理单元还用于:在用户态获取多个缓存控制模型的源代码,每个缓存控制模型关联一种缓存控制逻辑;在所述用户态将所述多个缓存控制模型的源代码编译为相应的通用字节码;所述装置的存储单元用于在用户空间存储所述多个缓存控制模型的通用字节码。

19、结合第二方面,在一种可能的设计中,所述多个缓存控制模型关联不同的人工智能ai算法或者输入输出io业务模型。

20、结合第二方面,在一种可能的设计中,所述处理单元还用于:在内核空间的缓存模块建立钩子函数,所述钩子函数用于所述缓存模块调用所述缓存控制逻辑的机器指令。

21、结合第二方面,在一种可能的设计中,在所述缓存访问请求为读请求时,所述缓存控制逻辑包括以下至少一项:面向缓存数据的刷盘控制逻辑;面向缓存数据的淘汰控制逻辑;或者,面向所述后端存储节点的数据预取控制逻辑。

22、结合第二方面,在一种可能的设计中,在所述缓存访问请求为写请求时,所述缓存控制逻辑包括以下至少一项:面向缓存数据的刷盘控制逻辑;面向缓存数据的淘汰控制逻辑;面向缓存数据的告警管理控制逻辑;面向所述后端存储节点的镜像控制逻辑;或者,面向缓存数据的数据回滚控制逻辑。

23、结合第二方面,在一种可能的设计中,所述缓存控制装置基于数据处理单元dpu卸载本地文件系统,所述处理单元与计算节点的后端存储节点交互,包括:所述处理节点通过所述dpu直通所述后端存储节点。

24、第三方面,本技术实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有计算机程序;所述处理器用于调用所述存储器中存储的计算机程序,以执行如上第一方面以及第一方面任一可能设计所述的方法。

25、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如上第一方面以及第一方面任一可能设计所述的方法。

26、第五方面,本技术实施例提供一种计算机程序产品,包含有计算机可执行指令,该计算机可执行指令用于使计算机执行如上第一方面以及第一方面任一可能设计所述的方法。

27、上述第二方面至第五方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1