请求处理方法、装置、电子设备及存储介质与流程

文档序号:37314385发布日期:2024-03-13 21:06阅读:45来源:国知局
请求处理方法、装置、电子设备及存储介质与流程

本技术涉及信息处理,更具体地,涉及一种请求处理方法、装置、电子设备及存储介质。


背景技术:

1、在传统的存在协调节点的分布式数据库中,所有数据的读取和写入都通过协调节点进行转发。具体过程为:用于发起读取、写入等处理请求的请求端连接协调节点,发送查询sql语句到协调节点,协调节点对sql进行解析并生成执行计划。通过生成的执行计划,协调节点连接需要的数据节点,发送数据读写请求给数据节点,数据节点读取或者写入数据,返回结果或者数据给协调节点,协调节点最后返回数据给用户。由于控制流和数据流都需要通过协调节点转发,在高并发的情况下,协调节点的负载会变的很高,资源消耗变大,在一定层度上会降低了协调节点的性能,从而造成查询的延迟。


技术实现思路

1、有鉴于此,本技术实施例提出了一种请求处理方法、装置、电子设备及存储介质,能够有效提升数据查询处理效率。

2、第一方面,本技术实施例提供了一种请求处理方法,应用于数据库系统中的协调节点,所述数据库系统还包括多个数据节点,不同的数据节点上存储了不同的数据分片;所述方法包括:接收请求端发送的第一数据请求,所述第一数据请求包括查询语句;对所述查询语句进行解析,得到所述查询语句的执行计划,所述执行计划指示了所述第一数据请求所请求访问的目标数据;若确定所述查询语句的执行计划不需要分布式事务支持,计算按照第一访问方式访问目标数据与按照第二访问方式访问目标数据的代价差异;所述第一访问方式是指由所述请求端直接访问数据节点的方式,所述第二访问方式是指由所述请求端通过所述协调节点访问数据节点的方式;若根据所述代价差异确定按照第一访问方式访问目标数据的代价小于按照第二访问方式访问目标数据的代价,基于所述目标数据所在目标数据分片的目标分片标识信息,生成直连访问报文;向所述请求端发送所述直连访问报文,以使所述请求端根据所述直连访问报文中的目标分片标识信息建立与所述目标数据分片所在目标数据节点之间的通信连接,并访问所述目标数据节点上目标数据分片中的目标数据以获得数据访问处理结果。

3、第二方面,本技术实施例提供了一种请求处理方法,向数据库系统中的协调节点发送第一数据请求,所述第一数据请求包括查询语句;所述数据库系统还包括多个数据节点,不同的数据节点上存储了不同的数据分片;接收所述协调节点返回的直连访问报文,所述协调节点在解析所述查询语句确定所述查询语句的执行计划不需要分布式事务支持,且确定按照第一访问方式访问目标数据的代价小于按照第二访问方式访问目标数据的代价的情况下,发送所述直连访问报文;所述直连访问报文包括所述目标数据所在目标数据分片的目标分片标识信息,所述目标数据是指所述第一数据请求所请求访问的数据;所述第一访问方式是指由所述第一数据请求的发起方直接访问数据节点的方式,所述第二访问方式是指由所述第一数据请求的发起方通过所述协调节点访问数据节点的方式;根据所述目标分片标识信息确定所述目标数据分片所在的目标数据节点;建立与所述目标数据节点的通信连接,并向所述目标数据节点发送针对所述目标数据的第二数据请求;接收所述目标数据节点响应于所述第二数据请求返回的数据访问处理结果。

4、第三方面,本技术实施例提供了一种请求处理装置,应用于数据库系统中的协调节点,所述数据库系统还包括多个数据节点,不同的数据节点上存储了不同的数据分片;所述装置包括:请求接收模块、语句解析模块、代价差异计算模块、报文生成模块以及报文发送模块。请求接收模块,用于接收请求端发送的第一数据请求,所述第一数据请求包括查询语句;语句解析模块,用于对所述查询语句进行解析,得到所述查询语句的执行计划,所述执行计划指示了所述第一数据请求所请求访问的目标数据;代价差异计算模块,用于若确定所述查询语句的执行计划不需要分布式事务支持,计算按照第一访问方式访问目标数据与按照第二访问方式访问目标数据的代价差异;所述第一访问方式是指由所述请求端直接访问数据节点的方式,所述第二访问方式是指由所述请求端通过所述协调节点访问数据节点的方式;报文生成模块,用于在根据所述代价差异确定按照第一访问方式访问目标数据的代价小于按照第二访问方式访问目标数据的代价时,基于所述目标数据所在目标数据分片的目标分片标识信息,生成直连访问报文;报文发送模块,用于向所述请求端发送所述直连访问报文,以使所述请求端根据所述直连访问报文中的目标分片标识信息建立与所述目标数据分片所在目标数据节点之间的通信连接,并访问所述目标数据节点上目标数据分片中的目标数据以获得数据访问处理结果。

5、在一种可实施方式中,所述代价差异计算模块包括第一代价确定子模块、第二代价确定子模块以及代价差异确定子模块,第一代价确定子模块,用于根据所述请求端与所述协调节点之间的通信代价、以及所述请求端直接与所述数据节点进行通信的通信代价,确定按照第一访问方式访问目标数据的第一代价;第二代价确定子模块,用于根据所述请求端与所述协调节点之间的通信代价、所述协调节点与所述数据节点之间的通信代价、以及所述协调节点的数据转发代价,确定按照第二访问方式访问目标数据的第二代价;代价差异确定子模块,用于基于所述第一代价和所述第二代价,确定所述代价差异。

6、在一种可实施方式中,所述代价差异确定子模块,还用于计算所述第二代价与所述第一代价的比值,得到代价比例;根据所述协调节点上的资源利用比例,对所述代价比例进行修正,得到所述代价差异,其中,所述代价差异与所述资源利用比例正相关。

7、在一种可实施方式中,所述装置还包括:计划发送模块和结果转发模块。计划发送模块用于若确定所述查询语句的执行计划需要分布式事务支持,或者根据所述代价差异确定按照第一访问方式访问目标数据的代价不小于按照第二访问方式访问目标数据的代价,向所述目标数据节点发送所述查询语句的执行计划;结果转发模块用于接收所述目标数据节点通过执行所述查询语句的执行计划而获得的数据访问处理结果,并向所述请求端发送所述目标数据节点返回的所述数据访问处理结果。

8、在一种可实施方式中,所述直连访问报文还包括所述数据库系统的拓扑信息;所述装置还包括拓扑信息发送模块,所述请求接收模块,还用于接收所述请求端发送的拓扑信息请求,所述拓扑信息请求是在请求端在接收到目标数据返回的异常提示信息时生成,所述异常提示信息为所述目标数据节点在第一哈希值与根据所述协调节点向所述目标数据节点同步的拓扑信息得到第二哈希值不一致时生成,所述第一哈希值为所述请求端基于所述协调节点向其同步的数据库系统的拓扑信息进行哈希计算得到;拓扑信息发送模块,用于响应于所述拓扑信息请求,向所述请求端发送所述数据库系统的新的拓扑信息,以使所述请求端所述新的拓扑信息进行哈希计算得到第三哈希值,向所述目标数据节点发送包括该第三哈希值的第三数据请求,并接收目标数据节点响应于所述第三数据请求返回的数据访问处理结果,所述目标数据节点在确定所述第三哈希值与所述第二哈希值相同的情况下,在所述目标数据分片中访问所述目标数据,以获得所述数据访问处理结果。

9、第四方面,本技术实施例提供了一种请求处理装置,所述装置包括:请求发送模块,用于向数据库系统中的协调节点发送第一数据请求,所述第一数据请求包括查询语句;所述数据库系统还包括多个数据节点,不同的数据节点上存储了不同的数据分片;报文接收模块,用于接收所述协调节点返回的直连访问报文,所述协调节点在解析所述查询语句确定所述查询语句的执行计划不需要分布式事务支持,且确定按照第一访问方式访问目标数据的代价小于按照第二访问方式访问目标数据的代价的情况下,发送所述直连访问报文;所述直连访问报文包括所述目标数据所在目标数据分片的目标分片标识信息,所述目标数据是指所述第一数据请求所请求访问的数据;所述第一访问方式是指由所述第一数据请求的发起方直接访问数据节点的方式,所述第二访问方式是指由所述第一数据请求的发起方通过所述协调节点访问数据节点的方式;数据节点确定模块,用于根据所述目标分片标识信息确定所述目标数据分片所在的目标数据节点;通信连接建立模块,用于建立与所述目标数据节点的通信连接,并向所述目标数据节点发送针对所述目标数据的第二数据请求;结果接收模块,用于接收所述目标数据节点响应于所述第二数据请求返回的数据访问处理结果。

10、在一种可实施方式中,所述直连访问报文还包括分片映射表,所述分片映射表包括各数据节点与其上所存储数据分片之间的对应关系;数据节点确定模块,还用于根据所述目标分片标识信息和所述分片映射表中各数据节点与其上所存储数据分片之间的对应关系,确定与所述目标数据分片对应的目标数据节点。

11、在一种可实施方式中,所述直连访问报文还包括所述数据库系统的拓扑信息;所述通信连接建立模块,还用于建立与所述目标数据节点的通信连接;对所述拓扑信息进行哈希计算,得到第一哈希值;向所述目标数据节点发送包括第一哈希值的第二数据请求,以使所述目标数据节点在接收到第二数据请求后根据所述协调节点向所述目标数据节点同步的拓扑信息得到第二哈希值,并在第一哈希值与第二哈希值相同的情况下,在所述目标数据分片中访问所述目标数据,以获得所述数据访问处理结果。

12、在一种可实施方式中,所述装置还包括:拓扑信息接收模块和哈希计算模块,所述请求发送模块,还用于向所述协调节点发送所述拓扑信息请求;拓扑信息接收模块,用于接收所述协调节点响应于所述拓扑信息请求返回的所述数据库系统的新的拓扑信息;哈希计算模块,用于对所述新的拓扑信息进行哈希计算,得到第三哈希值;请求发送模块,还用于向所述目标数据节点发送针对所述目标数据且包括所述第三哈希值的第三数据请求;结果接收模块,还用于接收所述目标数据节点响应于所述第三数据请求返回的数据访问处理结果,所述目标数据节点在确定所述第三哈希值与所述第二哈希值相同的情况下,在所述目标数据分片中访问所述目标数据,以获得所述数据访问处理结果。

13、第五方面,本技术实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行以实现上述的方法。

14、第六方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。

15、第七方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质获取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。

16、本技术实施例提供的一种请求处理方法、装置、电子设备及存储介质,方法在应用于协调节点时,方法包括:对请求端的第一数据请求中的查询语句解析得到执行计划,若执行计划不需要分布式事务支持,计算按照第一访问方式访问目标数据与按照第二访问方式访问目标数据的代价差异,若基于代价差异确定按照第一访问方式访问目标数据的代价小于按照第二访问方式访问目标数据的代价,则向请求端反馈直连访问报文,以使请求端根据直连访问报文中的目标分片标识信息建立与目标数据分片所在目标数据节点之间的通信连接,并访问目标数据节点上目标数据分片中的目标数据以获得数据访问处理结果。通过采用上述方法,协调节点在确定查询语句的执行计划不需要分布式事务支持,也即,仅由执行计划仅由一个数据节点来执行,通过分析确定在请求端直接访问数据节点的方式产生的访问代价小于请求端通过所述协调节点访问数据节点的方式产生的访问代价时,向请求端发直连访问报文,以使请求端响应于该直连访问报文建立与目标数据节点的通信并访问目标数据节点上目标数据分片中的目标数据以获得数据访问处理结果,从而实现利用直连的方式进行数据访问来提升数据访问效率。避免了采用相关技术中所有控制流和数据流都需要通过协调节点转发,从而在高并发的情况下造成的查询的延迟的问题。

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