本技术属于计算机,尤其涉及一种数据处理方法、系统、装置、设备及可读存储介质。
背景技术:
1、现有数据库管理系统普遍基于共享内存机制,以此来实现对业务逻辑的多进程并行处理。因为进程可运行于任一中央处理器核心,也可能访问任一位置的内存,所以,在主机为非统一内存访问架构的情况下,将大概率发生中央处理器核心跨节点访问内存的问题,进而造成访问延迟的问题。
技术实现思路
1、本技术实施例提供一种数据处理方法、系统、装置、设备及可读存储介质,能够缩减跨numa节点访问所可能触发的访问延迟。
2、第一方面,本技术实施例提供一种数据处理方法,数据处理方法应用于数据库管理系统,数据库管理系统包括多个动态数据库子系统,动态数据库子系统包括同一节点下的cpu和内存模块,数据处理方法包括:
3、获取用户的请求指令;
4、根据请求指令中携带的信息,从第一动态数据库子系统中查询是否包含执行请求指令的数据库对象,第一动态数据库子系统为当前的动态数据库子系统;
5、在第一动态数据库子系统中未包含执行请求指令的数据库对象的情况下,从预先建立的全局数据字典映射表中,查询执行请求指令的数据库对象所在的第二动态数据库子系统的地址,第二动态数据库子系统为与第一动态数据库子系统不同的动态数据库子系统;
6、根据第二动态数据库子系统的地址,向第二动态数据库子系统发送请求指令;
7、基于第二动态数据库子系统中的数据库对象,执行请求指令。
8、在一个可能实现的实施例中,数据库管理系统还包括控制协调模块和根数据库子系统;在获取用户的请求指令之前,方法还包括:
9、控制协调模块写入配置文件;
10、根数据库子系统读取控制协调模块中的配置文件进行初始化。
11、在一个可能实现的实施例中,根数据库子系统读取控制协调模块中的配置文件进行初始化,具体包括:
12、根数据库子系统根据配置文件,创建控制协调模块的共享内存段和根数据库子系统的共享内存段;
13、根数据库子系统逐个启动各个动态数据库子系统;
14、动态数据库子系统绑定对应节点的cpu,并创建共享内存,以及绑定动态数据库子系统的共享内存基址;
15、动态数据库子系统将自身持有的数据库对象登记至全局数据字典映射表之中。
16、在一个可能实现的实施例中,请求指令中携带的信息包括数据库对象的标识信息,标识信息包括数据库对象的名称和数据库对象的id中的至少一者;
17、根据请求指令中携带的信息,从第一动态数据库子系统中查询是否包含执行请求指令的数据库对象,具体包括:
18、根据标识信息,从第一动态数据库子系统中查询是否包含与标识信息对应的数据库对象;
19、当第一动态数据库子系统中包含与标识信息对应的数据库对象时,确定第一动态数据库子系统中包含执行请求指令的数据库对象;
20、当第一动态数据库子系统中未包含与标识信息对应的数据库对象时,确定第一动态数据库子系统中未包含执行请求指令的数据库对象。
21、在一个可能实现的实施例中,第二动态数据库子系统的地址包括第二动态数据库子系统的共享内存基址;
22、根据第二动态数据库子系统的地址,向第二动态数据库子系统发送请求指令,具体包括:
23、根据第二动态数据库子系统的地址,向第二动态数据库子系统的通信区中写入请求指令。
24、在一个可能实现的实施例中,在基于第二动态数据库子系统中的数据库对象,执行请求指令之后,方法还包括:
25、将执行请求指令的目标结果写入第一动态数据库子系统的通信区;
26、第一动态数据库子系统从第一动态数据库子系统的通信区中获取目标结果,并将目标结果反馈给用户。
27、在一个可能实现的实施例中,方法还包括:
28、当全局数据字典映射表中未查询到第二动态数据库子系统的地址时,向用户返回错误信息。
29、第二方面,本技术实施例提供了一种数据库管理系统,包括根数据库子系统、控制协调模块、多个动态数据库子系统和多个动态数据库子系统的通信区,每个动态数据库子系统包括同一节点下的cpu和内存模块,其中:根数据库子系统用于与控制协调模块相配合,管理多个动态数据库子系统;动态数据库子系统的通信区用于实现不同的动态数据库子系统的数据交互。
30、第三方面,本技术实施例提供了一种数据处理装置,该装置应用于数据库管理系统,数据库管理系统包括多个动态数据库子系统,动态数据库子系统包括同一节点下的cpu和内存模块,数据处理装置包括:
31、获取模块,用于获取用户的请求指令;
32、第一查询模块,用于根据请求指令中携带的信息,从第一动态数据库子系统中查询是否包含执行请求指令的数据库对象,第一动态数据库子系统为当前的动态数据库子系统;
33、第二查询模块,用于在第一动态数据库子系统中未包含执行请求指令的数据库对象的情况下,从预先建立的全局数据字典映射表中,查询执行请求指令的数据库对象所在的第二动态数据库子系统的地址,第二动态数据库子系统为与第一动态数据库子系统不同的动态数据库子系统;
34、发送模块,用于根据第二动态数据库子系统的地址,向第二动态数据库子系统发送请求指令;
35、执行模块,用于基于第二动态数据库子系统中的数据库对象,执行请求指令。
36、第四方面,本技术实施例提供了一种电子设备,电子设备包括:
37、处理器以及存储有计算机程序指令的存储器;
38、处理器执行计算机程序指令时实现上述任意一项的在数据处理方法。
39、第五方面,本技术实施例提供了一种计算机存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述任意一项的数据处理方法。
40、第六方面,本技术实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任意一项的数据处理方法。
41、本技术实施例的数据处理方法、系统、装置、设备及可读存储介质,获取用户的请求指令;根据请求指令中携带的信息,从第一动态数据库子系统中查询是否包含执行请求指令的数据库对象,第一动态数据库子系统为当前的动态数据库子系统;在第一动态数据库子系统中未包含执行请求指令的数据库对象的情况下,从预先建立的全局数据字典映射表中,查询执行请求指令的数据库对象所在的第二动态数据库子系统的地址,第二动态数据库子系统为与第一动态数据库子系统不同的动态数据库子系统;根据第二动态数据库子系统的地址,向第二动态数据库子系统发送请求指令;基于第二动态数据库子系统中的数据库对象,执行请求指令。如此各个动态数据库子系统利用同一节点下的中央处理器和内存模块实现数据管理,可以尽可能地避免跨非统一内存访问节点访问硬件资源的情况出现,对于跨非统一内存访问节点访问,通过全局数据字典映射表查询第二动态数据库子系统,能够高效地在各动态数据库子系统之间传送数据,将跨非统一内存访问节点访问所可能触发的访问延迟大幅缩减。