一种基于网卡运行时环境的数据库查询处理方法与流程
本发明涉及分布式数据库,尤其涉及一种基于网卡运行时环境的数据库查询处理方法。
背景技术:
1、随着云计算和大数据技术的快速发展,分布式数据库系统得到了越来越广泛的应用。为应对海量数据存储和高并发访问的需求,分布式数据库普遍采用计算与存储分离的架构,即计算节点负责结构化查询语言sql的解析、查询优化和计划生成,存储节点负责数据存储和基础的数据扫描,两者之间通过高速网络进行通信。这种架构能够实现计算和存储资源的独立弹性伸缩,降低了系统的运维成本和硬件门槛。然而,计算与存储分离也带来了新的性能瓶颈——查询执行过程中,存储节点需要将大量原始数据通过网络传输至计算节点,由计算节点完成过滤、聚合、投影等计算操作。随着数据规模持续增长,网络传输开销已成为制约分布式数据库查询性能的关键因素之一。
2、为缓解网络传输压力,现有技术普遍采用谓词下推技术,即将计算节点产生的过滤条件(如比较运算、逻辑运算等)下发给存储节点,由存储节点的主机中央处理器在数据扫描过程中先行执行过滤,仅将符合条件的数据通过网络返回给计算节点。然而,在过滤条件选择性不高或数据量本身极为庞大的场景下,谓词下推能够减少的数据量有限,网络带宽瓶颈和高延迟问题依然突出。同时,存储节点的主机中央处理器需要承担下推的过滤逻辑的执行工作,在高并发查询场景下,主机中央处理器可能成为制约系统整体性能的另一个瓶颈。
3、远程直接内存访问(remote direct memory access, rdma)技术能够绕过操作系统内核和主机中央处理器,实现存储节点与计算节点之间的低延迟、高带宽数据交换,已在分布式数据库领域得到应用。现有方案主要将远程直接内存访问作为高效的数据传输通道,用于加速节点间的数据搬运或内存数据读写操作。尽管远程直接内存访问协议的原子操作已被证明具备图灵完备性,理论上能够在网络接口卡上执行通用计算,但相关技术中尚未有效利用这一能力来卸载数据库查询中的计算任务,数据库的过滤、聚合等核心计算逻辑仍然依赖主机中央处理器完成。受限于此,现有分布式数据库系统在查询延迟、网络吞吐量和中央处理器负载等方面仍有较大的优化空间。
技术实现思路
1、本发明提供了一种基于网卡运行时环境的数据库查询处理方法,以解决现有分布式数据库系统在计算与存储分离架构下,因需将大量原始数据传输至计算节点进行处理而导致的网络传输开销大、查询延迟高以及存储节点主机中央处理器负载重的问题。
2、根据本发明的一方面,提供了一种基于网卡运行时环境的数据库查询处理方法,应用于分布式数据库系统中的存储节点,所述存储节点配置有远程直接内存访问网络接口卡,所述网络接口卡上运行有远程直接内存访问运行时环境,所述方法包括:
3、接收计算节点发送的中间表示代码以及查询参数值,所述中间表示代码由所述计算节点根据数据库查询计划中的计算逻辑编译生成,所述中间表示代码包括参数化的过滤条件和/或聚合逻辑;
4、通过所述运行时环境将所述中间表示代码转换为所述网络接口卡可执行的计算指令并执行,以根据所述查询参数值对所述存储节点的内存数据进行过滤、聚合和/或列选取计算,生成计算结果;
5、将所述计算结果写入结果缓冲区,并向所述计算节点发送执行完成通知,以供所述计算节点读取所述计算结果。
6、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的基于网卡运行时环境的数据库查询处理方法。
7、根据本发明的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本发明任一实施例所述的基于网卡运行时环境的数据库查询处理方法。
8、本发明实施例通过存储节点上远程直接内存访问网络接口卡中运行的运行时环境,将计算节点下发的中间表示代码转换为网络接口卡可执行的计算指令并在网络接口卡上执行,将过滤、聚合等数据库查询计算任务从存储节点所在主机的中央处理器卸载至存储节点的远程直接内存访问网络接口卡上执行,仅将计算结果而非原始数据返回计算节点,从而减少了节点间的网络数据传输量,降低了查询响应延迟,同时避免了存储节点主机中央处理器参与查询计算过程,减轻了主机中央处理器的计算负载,提升了分布式数据库系统在高并发查询场景下的整体吞吐量。
9、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种基于网卡运行时环境的数据库查询处理方法,其特征在于,应用于分布式数据库系统中的存储节点,所述存储节点配置有远程直接内存访问网络接口卡,所述网络接口卡上运行有远程直接内存访问运行时环境,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述通过所述运行时环境将所述中间表示代码转换为所述网络接口卡可执行的计算指令,包括:
3.根据权利要求1所述的方法,其特征在于,所述通过所述运行时环境将所述中间表示代码转换为所述网络接口卡可执行的计算指令并执行,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:通过所述解释器在执行过程中维护虚拟寄存器、程序计数器和临时变量,根据所述程序计数器的指向依次执行指令,并在遇到所述条件跳转操作或所述循环跳转操作时修改所述程序计数器的值以实现控制流跳转;
5.根据权利要求1所述的方法,其特征在于,在所述通过所述运行时环境将所述中间表示代码转换为所述网络接口卡可执行的计算指令并执行之前,还包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述查询参数值,对所述存储节点的内存数据进行过滤、聚合和/或列选取计算,生成计算结果,包括:
7.根据权利要求1所述的方法,其特征在于,所述计算结果仅包括满足所述过滤条件和/或聚合逻辑的数据;所述计算结果的表现形式包括数据行标识符、位图和/或聚合结果。
8.根据权利要求2-5中任一项所述的方法,其特征在于,向所述计算节点发送执行完成通知之后,还包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-8中任一项所述的基于网卡运行时环境的数据库查询处理方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的基于网卡运行时环境的数据库查询处理方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com