数据库防火墙关键特性系列之二丨高性能和可扩缩性

作为一个技术人,对于文字的造诣远不及对代码的掌控,笔者不擅长用华丽的辞藻表达数据库防火墙所背负的重任,在大部分人眼中,它只是一个冰冷的盒子,但笔者依然希望依靠有限的语言能力,用技术人的思维把这样一个盒子的自我进阶之路讲给你们听。

实现了高可用性,解决了最基本的能不能串接部署的问题,数据库防火墙的“人生”可以说成功了一小半,下一个人生挑战随之而来:高性能和可扩缩性。

在这里,我们还是有必要先介绍一下数据库防火墙和传统网络防火墙的根本性差异:

一、关于深度协议解析和内容分析的复杂性挑战

传统网络防火墙:通常只分析网络层的包头和部分协议特征,不会对通讯包进行深度分析,一般不会对应答包进行分析。

数据库防火墙:需要对数据库通讯协议的请求包和应答包(双向包)进行深度分析:

1、对于请求包,需要解析出包中的SQL语句、参数化语句、参数值、跟踪语句游标。

2、对于应答包,需要解析出返回字段信息、结果集、应答信息等。

3、对于SQL语句,需要进行词法和语法分析(下一篇文章会介绍为什么需要进行语法分析,而不是简单的关键词匹配)。

4、对于参数值,和结果集,需要进行格式转换,并根据策略进行必要的内容过滤。

很明显,二者对通讯包的处理工作量存在很大差异。面对这样的工作强度,我们必须赋予数据库防火墙一颗强大的“心”,对其进行专门的处理逻辑优化和性能优化,能够实现低延迟,保证数据库操作的高吞吐量要求。

二、核心业务数据库的高吞吐量和扩缩性挑战

在以银行、保险、电信为代表的大型企业,以税务、海关、航空为代表的行业,和以快递业为代表的新兴领域中,相比大规模的WEB应用服务器集群,数据库服务器基本上采用的是少量高端设备支撑大规模的核心应用,无论采用的是RAC集群还是分布式数据库集群,核心业务场景多数都是采用非常高端的小型机来搭建,动辄上百甚至几百个CPU,几百GB的内存,高端磁盘阵列,支撑起强大的数据库事务吞吐量(TPS)。

在这种场景下,对于串联接入的数据库防火墙,面临“小马拉大车”的局面,高吞吐量和可扩缩性挑战有多严峻?下面两个实例充分体现:

首先,介绍一个数据库防火墙的实际经典案例:

数据库防火墙经典案例 拓扑图

在这个经典案例中,业务系统采用两套RAC节点进行负载均衡(双活)运行,常规稳定运行的情况下,单套RAC节点的性能指标需求如下:

当有一路网络环境出现故障,原来分散在2套RAC节点上的的压力将集中在一个数据库防火墙上,也就是说,异常情况下,单台数据库防火墙面临的是支撑2倍的吞吐量和会话量压力,同时通讯包的延迟仍然需要保持在50微秒以内。

另外一个想拿来说说的案例,是截止到目前,数据库防火墙面临的最高端性能案例:

数据库防火墙高端案例 拓扑图

在这个案例中,整体的数据库集群的性能需求是:

折合到单个DBFirewall设备,考虑到设备故障情况,需要支撑的性能指标:

三、高性能和可扩缩性解决方案

通过介绍这两个经典案例和高端案例,相信不用多说,大家已经能够感受到数据库防火墙必须具备怎样一颗强大的心:低延迟、高吞吐量、高可扩缩性能力。

我们确立了这一目标,下一步要做的是制定具体的解决方案,核心技术点有四:

1.极小化每个SQL操作的处理过程

众所周知,SQL语法分析非常耗时,需要专门进行优化:基于词法和语法分析,对业务系统的SQL语句进行抽象化处理,形成软解析结果,并对SQL语句进行序列化、标签化,这样就只需要对语法特征不一样的SQL语句进行解析,而应用系统中SQL语法特征不一样的SQL语句是有限的,这样,就能够极大的减少应用系统SQL语句的语法解析量。

2.无锁化设计,支撑高并发下的线性性能

随着系统并发量的增加,互斥锁会成为主要的性能瓶颈点;无锁化的实现方式是必然,必要时可以通过异步处理来提升吞吐量。

3.低延迟网络处理技术

随着吞吐量的增加,串联的网络处理开销会成为主要的延迟;推荐采用基于Intel DPDK的透明网卡通讯包处理技术,跳过操作系统内核协议栈的处理,实现低延迟。

4.推荐采用经典的多进程机制

在关系型数据库领域中,最经典的设计要数Oracle数据库的多进程架构,每个数据库的连接会话对应一个独立的Oracle进程来处理,这样的机制为数据库带来了两个典型优势:

高可扩缩性:随着硬件性能的提升,可以实现接近线性的处理性能提升。

高安全性:一个会话(进程)的处理异常,不影响其他会话(进程)。

安华金和数据库防火墙,正是基于以上四点核心技术设计开发的一款成熟的数据库防火墙产品,且已经经过了社保,金融,运营商等高端行业的验证。

至此数据库防火墙的自我修养之二——高性能和可扩缩性介绍完毕,欢迎广大用户继续关注数据库防火墙的自我修养系列文章。

名词术语解释

[1]DPDK:全称Data Plane Development Kit,是intel开发的x86芯片上用于高性能网络处理的基础库;是一款数据包转发处理套件;适合网络数据包分析,处理等操作;对于大数据包的转发,多核操作有一定的性能提升。

作者:杨海峰

来源:51CTO

时间: 2024-08-28 06:22:43

数据库防火墙关键特性系列之二丨高性能和可扩缩性的相关文章

云计算关键技术系列之二——GFS

由于搜索引擎需要处理海量的数据,所以Google的两位创始人Larry Page和Sergey Brin在创业初期设计一套名为"BigFiles"的文件系统,而GFS(全称为"Google File System")这套分布式文件系统则是"BigFiles"的延续. 技术概览 首先,介绍它的架构,GFS主要分为两类节点:其一是Master节点,其主要存储与数据文件相关的元数据,而不是Chunk(数据块).元数据包括一个能将64位标签映射到数据块的

Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程

原文:Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程 Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程 Red Gate系列文章: Red Gate系列之一 SQL Compare 10.2.0.1337 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source Cont

综论数据库防火墙的自我修养系列之一:高可用性

DT时代的到来,正在逐渐改变人类的行为模式.数据,这个时代最巨量的产物,从未如今天这般珍贵而无价.也因此我们看到,越来越多的企业和政府部门开始将安全的关注重点从传统的边界安全转移到数据安全,保存核心数据资产的数据库系统,毫无疑问的成为防护的关键. 数据库防火墙,作为数据库的最后一道防御工事,自然获得了更多的关注,近年已越来越多的应用在关键系统的数据库安全防护中.所谓能力越大.责任越大,这句话用来形容数据库防火墙也许应该反过来理解,因其肩负数据库防护重任,人们对于他的要求也更加严苛. 我们在说数据

WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现

原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现         去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有其它途径.但鉴于咱是搞 .NET技术的,首先其冲想到的微软WPF方面,之前对WPF的了解与学习也只是停留在比较浅的层面,没有进一步深入学习与应用.所以在项目接来以后,也就赶

谁说数据库防火墙风险大?可能你还不知道应用关联防护

近年来,作为高效而直接的数据库防御工事,数据库防火墙已被越来越多的用户关注,应用在关键系统的数据库安全防护中,以保护核心数据资产安全.实现危险行为过滤,数据库防火墙必需串联部署,才能形成数据库的安全屏障.这要求其既要发挥抵御威胁行为的功能,同时又不能影响正常的应用访问,造成业务中断. 有人说:数据库防火墙风险大,一不小心你的应用就瘫痪了!真是这样吗? 事实上,满足如此严苛要求的关键在于如何实现精准的应用关联防护,能够在不中断业务访问的基础上,精准定位威胁行为并拦截,从而达到精确而无副作用的防护效

数据库防火墙风险大?那是你还不知道应用关联防护

本文讲的是 数据库防火墙风险大?那是你还不知道应用关联防护,近年来,作为高效而直接的数据库防御工事,数据库防火墙已被越来越多的用户关注,应用在关键系统的数据库安全防护中,以保护核心数据资产安全.要实现危险行为的过滤,数据库防火墙必需串联部署,才能形成数据库的安全屏障.这要求其既要发挥抵御威胁行为的功能,同时又不能影响正常的应用访问,造成业务中断. 有人说:数据库防火墙风险大,一不小心你的应用就瘫痪了!真是这样吗? 事实上,满足如此严苛要求的关键在于如何实现精准的应用关联防护,能够在不中断业务访问

mongoDB简介及关键特性

mongoDB是一个介于关系数据库和非关系数据库之间的开源产品,是最接近于关系型数据库的NoSQL数据库.它在轻量级JSON交换基础之上进行了扩展,即称为BSON的方式来描述其无结构化的数据类型.尽管如此它同样可以存储较为复杂的数据类型.本文对其进行简要描述以及列出其关键特性. 一.什么是mongoDB 开源的NoSQL数据库 用于存储非结构化数据 SQL中的绝大多数操作有对应的方式来实现 采用BSON描述数据类型 二.有哪些逻辑概念 mongoDB与SQL数据库脚本上大同小异,常见的逻辑对象通

数据库防火墙、数据库加密、数据库脱敏真的可用吗?

数据库是所有信息系统的核心,数据库的安全通常是指其中所存数据的安全,是网络安全.信息安全的重要组成部分.目前有很多相关性产品,如数据库加密.数据库防火墙.数据库脱敏.数据库审计等.     一.数据库防火墙 数据库防火墙系统:一种基于网络和数据库协议分析与控制技术的数据库安全防护系统,基于主动防御机制,实现对数据库的访问行为权限控制.恶意及危险操作阻断.可疑行为审计.通过对SQL协议分析,根据预定义的黑.白名单策略决定让合法的SQL操作通过执行,让可疑的非法违规操作禁止,从而形成一个数据库的外围

ASP.NET企业开发框架IsLine FrameWork系列之二--命名空间与契约

ILFW框架以最底层为基础,层层堆叠,上层一依赖于下层提供的服务,并实现其派发的接口,形成完 整的FrameWork,不过由于时间原因,有些Provider之间的聚合偏高,例如AppLogProvider在使用数据库 做为记录介质时,已经和DataProvider绑定,并不能使用第三方的数据引擎. ILFW共有18个命名空间,分别管理着这些Provider的主要方法以及各种类库.接口,每个命名空间并 非独立,正如上图表示的一样,所以如果你希望使用ILFW的某一个Provider,可能需要引入几个