[发明专利]一种多GPU并行处理的数据库主动防御方法有效
申请号: | 201610098118.1 | 申请日: | 2016-02-23 |
公开(公告)号: | CN107102897B | 公开(公告)日: | 2019-08-23 |
发明(设计)人: | 秦明;尹立东;谢东辉 | 申请(专利权)人: | 深圳市知穹科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 深圳市康弘知识产权代理有限公司 44247 | 代理人: | 胡朝阳;孙洁敏 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 并行 处理 数据库 主动 防御 方法 | ||
本发明公开了一种多GPU并行处理的数据库主动防御技术方法。该方法将所有GPU的显存虚拟化成共享显存,创建为GPU端的全局数组,并在CPU中开设一个共享缓冲区,当共享缓冲区的网络数据包达到启用GPU处理的判断阈值时,把共享缓冲区的数据包同步到GPU端的全局数组中,然后由CPU调度多个GPU的内核处理函数对网络数据包进行处理。本发明在数据库主动防御系统面对高并发网络流量时,采用多GPU加速处理,从而获得整体的性能提升,解决了此时CPU面临的高速率和低延迟的问题。
技术领域
本发明涉及访问数据库的网络数据包并行处理技术,尤其涉及一种多GPU并行处理的数据库主动防御方法。
背景技术
随着互联网网速的高速发展,人们对高速率和低延迟的网络访问提出了更高的要求,一方面在CPU上由于随之引入的多线程间通信开销和同步开销,性能提升较小,甚至出现不升反降的现象;另一方面提升CPU处理性能的成本太高。现有利用CPU线程技术实现的数据库主动防御系统面对高并发网络流量时已经难以满足数据处理的需求。
发明内容
本发明的目的是针对上述现有技术存在的缺陷,提供一种多GPU并行处理的数据库主动防御方法。
本发明采用的技术方案是,一种多GPU并行处理的数据库主动防御方法,包括下列步骤:
步骤1, 初始化:
1.1 根据CPU的处理能力,计算启用GPU处理网络数据包的阀值;
1.2 对所有GPU的计算能力进行分类:预处理GPU组,TCP流重组GPU组,数据库协议解析GPU组,SQL语法解析GPU组,策略匹配GPU组和结果处理GPU组,以便后续的任务调度策略调度;
1.3 将所有GPU 的显存虚拟化成共享显存,通过共享的全局地址空间来实现节点间GPU-to-GPU 通信,并通过内部透明的CPU 端临时全局数组和GPU端全局数组来维护数据一致性,保证通信数据的正确性,而且部分通信操作可以直接与GPU 端全局数组进行传输,减少了内存与显存间的数据传输开销,从而提供一个多GPU 上直接的GPU-GPU 通信接口;
1.4 对GPU的硬件体系结构进行建模,并初始化任务调度策略的相关辅助算法所需资源;
步骤2,启动对网络数据包的分析处理;具体步骤如下:
2.1 判断CPU工作线程判断共享缓冲区中的网络数据包的数量是否达到启用GPU的判定阈值;
2.2 如果共享缓冲区中的网络数据包的数量未达到判定阈值,则由CPU中的工作线程对网络数据包进行预处理、计算处理和结果处理;
2.3 如果共享缓冲区中的网络数据包的数量达到判定阈值,则由CPU中的工作线程从缓冲区取出阈值数量的网络数据包拷贝到预先分配的共享显存,并调用任务调度策略分配预处理任务,并启动预处理GPU组;
2.4 预处理GPU组从全局共享缓存区获取网络数据包,分别对数据包进行协议识别、TCP协议头部解析,并判断数据包中是否含有受保护的数据库的应用层协议和数据,若有,则由任务调度策略分配TCP流重组任务,并启动TCP流重组GPU组;若无,则由任务调度策略直接分配结果处理任务,并启动结果处理GPU组;
2.5 TCP流重组GPU组从全局共享缓存区获取经过预处理的网络数据包,根据所属流的索引号对网络数据包进行流重组,并判断当前流中的网络数据包是否有需要进行数据库协议解析处理的数据包,若有,则由任务调度策略分配数据库协议解析任务,并启动数据库协议解析GPU组;若无,则由任务调度策略直接分配结果处理任务,并启动结果处理GPU组;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市知穹科技有限公司,未经深圳市知穹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610098118.1/2.html,转载请声明来源钻瓜专利网。