数据处理系统、文件访问方法、装置及相关设备与流程

摘要: 本技术涉及存储,尤其涉及一种数据处理系统、文件访问方法、装置及相关设备。背景技术:1、目前,诸如服务器等计算节点,通常会采用缓存页(pagecache)机制,提...
数据处理系统、文件访问方法、装置及相关设备与流程

本技术涉及存储,尤其涉及一种数据处理系统、文件访问方法、装置及相关设备。

背景技术:

1、目前,诸如服务器等计算节点,通常会采用缓存页(page cache)机制,提高数据读写的性能,所读写的数据例如可以是文件类型的数据。其中,page cache,也可称之为页面缓存,是一种用于加速访问持久化存储介质(如磁盘等)的缓存机制。

2、在图1所示的计算节点中,在处理器读取持久化存储介质中的数据之前,该数据可以预先被预取至内存中的page cache中,从而处理器可以先检查page cache中是否存在所需读取的数据,如果是,则处理器能够直接从内存中访问得到数据,这相比于处理器从持久化存储介质中访问数据的方式而言,能够有效提高处理器读取数据的效率。并且,在数据写入过程中,处理器将数据写入内存中的page cache,即可视为数据写入成功,后续该pagecache中的数据会在合适的时机(如内存资源低于阈值等)被刷写至持久化存储介质,以此提高处理器写入数据的效率。

3、实际应用场景中,数据处理系统通常会包括多个计算节点,即使数据处理系统中的每个计算节点均采用page cache机制进行数据访问,数据处理系统整体的数据访问性能仍然可能处于较低的水平,并且,数据处理系统也容易出现内存资源浪费的问题。

技术实现思路

1、本技术提供了一种数据处理系统,以提高数据处理系统中的文件访问效率,以及提高数据处理系统中内存资源的利用率。此外,本技术还提供了对应的文件访问方法、文件访问装置、计算设备、计算机可读存储介质以及计算机程序产品。

2、第一方面,本技术提供一种数据处理系统,该数据处理系统包括第一计算节点、第二计算节点、共享内存池以及存储节点,该存储节点包括文件系统,并且,第一计算节点包括第一应用(如数据库应用等)、第一内存以及文件系统提供的第一客户端,第二计算节点包括第二内存,共享内存池包括多个缓存页,该多个缓存页包括位于第一内存中的缓存页以及位于第二内存中的缓存页。第一客户端,用于接收来自第一应用的文件访问请求,该文件访问请求用于请求访问文件系统中的第一文件,并且,第一客户端还用于响应该文件访问请求,查询该多个缓存页对应的索引,确定该多个缓存页中的第一缓存页,该索引例如可以是xarray(扩展数组)等,能够用于在共享内存池中对缓存页进行定位,该第一缓存页存储有第一客户端所需访问的第一文件。并且,第一客户端,还用于访问共享内存池中的第一缓存页,以获得所需访问的第一文件,并将该第一文件返回给第一应用,以满足第一应用对于第一文件的需求。

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、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。