本申请公开了一种数据库网络负载性能的加速框架、加速方法及设备,框架包括:用户态网络协议栈、数据库网络架构、数据库多线程架构,数据库网络架构包括数据库网络线程,数据库多线程架构包括数据库业务线程。用户态网络协议栈用于接收网卡设备发送的初始数据,并通过TCP/IP协议栈进行解析得到第一数据;数据库网络线程用于获取第一数据;数据库多线程架构用于通过数据库多线程架构与数据库网络架构之间的通信控制收发接口读取第一数据,以执行对应业务。本申请用用户态网络协议栈替换内核态网络协议栈,实现操作系统内核旁路,这种纯软技术不依赖新型网络设备,可控性友好。并且加速框架将数据库与用户态网络协议栈解耦,可应对用户态网络高并发。对用户态网络高并发。对用户态网络高并发。
【技术实现步骤摘要】
一种数据库网络负载性能的加速框架、加速方法及设备
[0001]本申请涉及数据库领域,尤其涉及一种数据库网络负载性能的加速框架、加速方法及设备。
技术介绍
[0002]数据库(database,DB)是按一定结构组织并长期存储在计算机内的、可共享的大量数据的有机集合。数据库系统(database system,DBS)则是实现有组织的、动态地存储大量关联数据、方便多用户访问的计算机软件、硬件和数据资源组成的系统。影响数据库网络负载性能的主要因素包括网络负载时延、中央处理器(central processing unit,CPU)使用率、磁盘输入/输出(input/output,I/O)、内存使用效率以及数据库内核技术。当前加速数据库网络负载性能的技术主要包括:软件层面深挖数据库内核技术、软硬结合CPU、新型存储介质上。
[0003]网络协议及数据库之间的通信是影响数据库系统性能的重要因素。为此,基于网络协议及数据库之间的通信改善数据库系统性能的方式有:1)阿里OceanBase(一个支持海量数据的高性能分布式数据库系统)提出的通过高性能Libeasy网络框架加速联机事务处理过程(on
‑
line transaction processing,OLTP)的负载性能,该网络框架基于内核态网络协议栈的事件驱动模型Libev实现,其使用协程来管理任务调度。2)阿里PolarDB(阿里云自研的云原生关系型数据库)基于新型硬件技术搭建基于远程直接数据读取(remote direct memory access,RDMA)的数据库内核引擎,通过RDMA直接将本机的内存写入另一台机器的内存地址,中间的通讯协议编解码、重传机制都由RDMA网卡来完成,不需要CPU参与。
[0004]然而,上述方式1会带来用户态与内核态之间的频繁切换、内核态协议栈数据多次内存拷贝等,造成系统资源损耗和网络负载时间延迟,从而损失数据库性能;上述方式2虽然利用RDMA交互实现数据库旁路操作系统(operating system,OS)内核实现负载性能加速,但其依赖RDMA网卡硬件设备,属于一种硬件新型技术。在实际应用场合中需要端到端的物理硬件配合,灵活性和通用性差,同时在软件层面,RDMA协议的实现对于应用层数据库内核而言,需要大量复杂适配修改才能保证其可用性。
技术实现思路
[0005]本申请实施例提供了一种数据库网络负载性能的加速框架、加速方法及设备,该加速框架用用户态网络协议栈替换内核态网络协议栈,实现操作系统内核旁路,这种纯软技术,不依赖新型网络设备,可控性友好。并且,该框架将数据库与用户态网络协议栈解耦,以应对用户态网络高并发;将传统数据库的业务与通信解耦,降低了系统开销。
[0006]基于此,本申请实施例提供以下技术方案:
[0007]第一方面,本申请实施例首先提供一种数据库网络负载性能的加速框架,可用于数据库领域中,本申请实施例所提供的数据库网络负载性能的加速框架是运行在计算机设备上的,计算机设备由硬件和软件构成,而其中软件主要包括操作系统和数据库。本申请实
施例提供的加速框架通过网卡设备实现客户机(是指不同于该计算机设备的其他设备)到该计算机设备的数据收发,利用用户态网络协议栈和数据库软件提供数据库数据增、删、改、查等服务。该加速框架包括:用户态网络协议栈、数据库网络架构(也可称为数据库网络通信框架)、数据库多线程架构,数据库网络架构包括至少一个数据库网络线程,数据库多线程架构包括至少一个数据库业务线程,数据库多线程架构与数据库网络架构之间通过通信控制收发接口连接,数据库网络架构与数据库多线程架构均包含于数据库内核中。当对端设备通过网卡设备向计算机设备发送数据(可称为初始数据)时,用户态网络协议栈,用于接收由该网卡设备发送的初始数据(如,对端设备发送的一个或多个初始数据包),并通过其内的TCP/IP协议栈解析该初始数据,得到第一数据;数据库网络架构包括的至少一个数据库网络线程,用于获取该第一数据,并指示数据库多线程架构从数据库网络架构中读取该第一数据;数据库多线程架构,用于通过数据库多线程架构与数据库网络架构之间的通信控制收发接口读取该第一数据,以执行该数据库中与该第一数据对应的业务(可称为第一业务)。
[0008]在本申请上述实施方式中,加速框架用用户态网络协议栈替换内核态网络协议栈,由于用户态网络协议栈处于操作系统的用户态上,从而可实现操作系统内核旁路,这种纯软技术,不依赖新型网络设备,可控性友好。并且,该加速框架将数据库与用户态网络协议栈解耦,可应对用户态网络高并发。此外,数据库多线程架构与数据库网络架构中的数据库网络线程之间的交互方式使得传统数据库的业务与通信解耦(数据库网络线程与数据库业务线程互为消费者和生产者)了,从而降低了系统开销。
[0009]在第一方面的一种可能的实现方式中,该加速框架还可以包括用户态网络配置模块,用户态网络配置模块,用于通过创建守护进程对用户态网络协议栈进行配置。
[0010]在本申请上述实施方式中,加速框架还可以包括用户态网络配置模块,负责使能计算机设备当前的操作系统使其拥有用户态网络协议栈的能力,从而实现对用户态网络协议栈的自动化部署,配置过程更加便捷。
[0011]在第一方面的一种可能的实现方式中,用户态网络配置模块,具体用于至少执行以下一种配置操作:设置数据平面开发套件(data plane development kit,DPDK)用户态驱动、设置大页内存(huge pages)、设置定时任务、设置内核虚拟网卡(kernel nic interface,KNI)、设置用户态组件的控制权限等。其中,定时任务负责管控用户态网络协议栈的配置环境,保证数据库在使用用户态网络协议栈期间的高可用。
[0012]在本申请上述实施方式中,具体阐述了用户态网络配置模块进行的配置操作可以包括哪些方面,具备可操作性以及灵活性。
[0013]在第一方面的一种可能的实现方式中,当数据库多线程架构执行完计算机设备上数据库的上层业务(可称为第二业务)后,得到的数据可称为第二数据,该数据库多线程架构,还可以用于通过数据库多线程架构与数据库网络架构之间的通信控制收发接口将第二数据向数据库网络架构发送。数据库网络架构中的至少一个数据库网络线程,就用于将该第二数据进一步向用户态网络协议栈发送。
[0014]在本申请上述实施方式中,具体阐述了当处于计算机设备上的数据库写数据的情形时,数据库多线程架构与数据库网络架构中的数据库网络线程之间的交互过程,将传统数据库的业务与通信解耦(数据库网络线程与数据库业务线程互为消费者和生产者),从而
降低了系统开销。
[0015]在第一方面的一种可能的实现方式中,该用户态网络协议栈包括用户态进程(也可称为Ltran进程)以及网络协议栈组件(也可称为动态库Lstack.so),也就是说,用户态网络协议栈在软件层面体现为用户态空间的Ltran进程以及动态库Lstack.so。在这种情况下,用户态网本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据库网络负载性能的加速框架,其特征在于,所述框架部署于计算机设备,所述计算机设备上部署有操作系统以及数据库,所述框架包括:用户态网络协议栈、数据库网络架构以及数据库多线程架构,所述数据库网络架构包括至少一个数据库网络线程,所述数据库多线程架构包括至少一个数据库业务线程,所述数据库多线程架构与所述数据库网络架构之间通过通信控制收发接口连接;所述用户态网络协议栈,用于接收由网卡设备发送的初始数据,并通过TCP/IP协议栈解析所述初始数据,得到第一数据;所述至少一个数据库网络线程,用于获取所述第一数据,并指示所述数据库多线程架构从所述数据库网络架构中读取所述第一数据;所述数据库多线程架构,用于通过所述通信控制收发接口读取所述第一数据,以执行所述数据库中与所述第一数据对应的第一业务。2.根据权利要求1所述的框架,其特征在于,所述框架还包括:用户态网络配置模块,用于通过创建守护进程对用户态网络协议栈进行配置。3.根据权利要求2所述的框架,其特征在于,所述用户态网络配置模块,具体用于至少执行以下一种配置操作:设置数据平面开发套件DPDK用户态驱动、设置大页内存、设置定时任务、设置内核虚拟网卡KNI、设置用户态组件的控制权限。4.根据权利要求1
‑
3中任一项所述的框架,其特征在于,所述数据库多线程架构,还用于:通过所述通信控制收发接口将第二数据向所述数据库网络架构发送,所述第二数据为所述至少一个业务线程执行所述数据库中的第二业务后得到的数据;所述至少一个数据库网络线程,还用于将所述第二数据向所述用户态网络协议栈发送。5.根据权利要求1
‑
4中任一项所述的框架,其特征在于,所述用户态网络协议栈包括:用户态进程以及网络协议栈组件,其中,所述用户态进程以及所述网络协议栈组件共享内存;所述用户态网络协议栈,具体用于:通过所述用户态进程接收由网卡设备发送的初始数据,并存放于所述内存;通过所述网络协议栈组件在所述内存内基于TCP/IP协议栈解析所述初始数据,得到第一数据,所述第一数据存放于所述内存。6.根据权利要求4所述的框架,其特征在于,所述用户态网络协议栈包括:用户态进程以及网络协议栈组件,其中,所述用户态进程以及所述网络协议栈组件共享内存;所述至少一个数据库网络线程,具体用于将所述第二数据向所述网络协议栈组件发送;所述用户态网络协议栈,具体用于通过所述网络协议栈组件将所述第二数据存放于所述内存。7.根据权利要求1
‑
6中任一项所述的框架,其特征在于,所述数据库网络架构还包括:数据共享缓冲器buffer,用于存储来自所述用户态网络协议栈的所述第一数据。
8.根据权利要求4、6中任一项所述的框架,其特征在于,所述数据库网络架构还包括:数据共享缓冲器buffer,用于存储来自所述数据库多线程架构的所述第二数据。9.根据权利要求1
‑
8中任一项所述的框架,其特征在于,所述至少一个数据库网络线程,具体用于:获取所述第一数据并存储于所述数据共享buffer;指示所述数据库多线程架构从所述数据共享buffer中读取所述第一数据。10.一种数据库网络负载性能的加速方法,其特征在于,包括:计算机设备通过用户态网络协议栈从网卡设备获取初始数据,并通过TCP/IP协议栈解析所述初始数据,得到第一数据;所述计算机设备通过至少一个数据库网络线程从所述用户态网络协议栈获取所述第一数据,并指示数据库多线程架构从所述数据库网络架构中读取所述第一数据,所述数据库网络线程属于数据库网络架构,所述数据库多线程架构包括至少一个数据库业务线程;所述计算机设备通过所述数据库多线程架构,经由所述数据库多线程架构与所述数据库网络架构之间的通信控制收发接口读取所述第一数据,并根据所述第一数据执行数据库中...
【专利技术属性】
技术研发人员:梁家琦,吕温,钟舟,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。