[发明专利]一种多GPU并行处理的数据库主动防御方法有效
申请号: | 201610098118.1 | 申请日: | 2016-02-23 |
公开(公告)号: | CN107102897B | 公开(公告)日: | 2019-08-23 |
发明(设计)人: | 秦明;尹立东;谢东辉 | 申请(专利权)人: | 深圳市知穹科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 深圳市康弘知识产权代理有限公司 44247 | 代理人: | 胡朝阳;孙洁敏 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 并行 处理 数据库 主动 防御 方法 | ||
1.一种多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组;
2.6 数据库协议解析GPU组从全局共享缓存区获取经过TCP流重组的网络数据包,对数据包携带的数据部分进行解析,对包含的SQL语句进行还原,并判断当前网络数据包携带的数据部分是否对包含的SQL语句组装完成,若是,则由任务调度策略分配SQL语法解析任务,并启动SQL语法解析GPU组;若不是,则由任务调度策略直接分配结果处理任务,并启动结果处理GPU组;
2.7 SQL语法解析GPU组从全局共享缓存区获取经过数据库协议解析的数据缓存,对其进行SQL语法解析,并判断解析结果是否正确,若是,则由任务调度策略分配策略匹配任务,并启动策略匹配GPU组;若不是,则由任务调度策略直接分配结果处理任务,并启动结果处理GPU组;
2.8 策略匹配GPU组从全局共享缓存区获取经过SQL语法解析的数据缓存,与预匹配的策略规则进行匹配,并将匹配结果写入全局数据缓存中;由任务调度策略分配结果处理任务,并启动结果处理GPU组;
2.9 结果处理GPU组从全局共享缓存区获取经过处理的数据包的数据缓存,对网络数据包结果处理的转发标志位进行判断,是对当前数据包进行转发还是中止;如果数据包的处理标志位为转发,则由GPU结果处理线程对当前处理数据包直接进行转发处理;如果数据包的处理标志位为中止,则由GPU结果处理线程对发送当前数据包的数据库连接进行阻断;进一步的,GPU结果处理线程对网络数据包结果处理的日志记录标志位进行判断,判断是否记录相关日志。
2.如权利要求1所述的方法,其特征在于,步骤1.2 中,对所有GPU的计算能力进行分类的策略是根据任务的并行度高低、输入规模大小、负载大小三个关键参数将其划分成基本的六类任务类型:
高度的并行性,较小规模的输入数据和较小的负载;
高度的并行性,较大规模的输入数据和较大的负载;
中等程度的并行性,较小规模的输入数据和较小的负载;
中等程度的并行性,较大规模的输入数据和较大的负载;
有限的并行性,较小规模的输入数据和较小的负载;
有限的并行性,较大规模的输入数据和较大的负载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市知穹科技有限公司,未经深圳市知穹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610098118.1/1.html,转载请声明来源钻瓜专利网。