层次化通信网络备份数据库缓存子系统设计
2021-06-18张健
张 健
(成都文理学院 信息工程学院,四川 成都 610401)
0 引 言
如果发生数据保存错误,可以通过备份恢复原始数据,文献[1]在此基础上进行了相关研究,其分析了备份数据库的缓存过程,在备份过程中可以采用如下三种备份策略:去冗余备份、同时备份和冗余备份。构建数据资源需求模型,制订备份策略时,根据数据资源的使用量选择最少的备份时间,这种方式备份时间短,但是备份数据库的开销大;文献[2]采用基于资源效用最大数据库缓存方法,建立数据库缓存该问题评估模型,改善了数据库备份机制,但与此同时也延长了数据库恢复时间。
基于以上问题,本文提出基于空间数据维度划分的层次化通信网络备份数据库缓存子系统设计,其创新之处在于,根据数据在空间维度上的分布情况,确定数据集对应的维度投影,消除网络冗余数据,降低备份数据库缓存时间和成本。
1 系统硬件结构设计
系统硬件结构如图1所示。
由图1可知,系统硬件结构包括四个层次,分别是采集层、分析层、展示层和管理模块与公共服务层。
1)采集层
采集层包括资产收集器、漏洞收集器、威胁收集器以及收集器管理员。采集管理员在系统中统一管理所有采集者,该部门负责接收收集程序收集的数据,向分析层提交[3⁃4]。收集器可部署在网络中的各种设备上,通过扫描或监视获得数据[5]。
图1 系统硬件结构
2)分析层
分析层负责采集数据,并依据该数据评价网络安全状况[6]。通过对所收集的原始主机信息和拓扑信息进行分析,实现了网络资源的动态监测。通过联机分析和离线分析能够确定网络漏洞和威胁事件,并对紧急情况作出反应[7⁃8]。脱机分析也称为两级分析,是指对漏洞、威胁、风险和有关资料进行分析。
3)展示层
展示层是用户与系统交互界面,为用户提供基础安全环境、漏洞分析结果、风险变化趋势、协议安全状态检测结果、安全预警信息[9⁃10]等。
4)管理模块与公共服务层
管理模块与公共服务层可为其他模块提供数据存储服务、数据缓存服务、定时服务以及各子系统之间通信服务等公共基础服务[11]。
1.1 磁带库缓存模块
在实时通信系统中,控制层网络单元需要访问数据中心的用户数据、风险数据和相关的业务控制数据来实现其功能,同时还需要响应大规模、并发的实时事务请求。缓存数据库位于数据中心和通信网络单元之间,一方面,系统提供通信网络组件所需的基本数据库功能,使其能够通过缓存数据库访问数据中心存储的数据;另一方面,根据通信业务的实时性特点,进行实时事务处理以及大规模并发访问控制[2]。一个通信系统中用户数据分层存储磁带库如图2所示。
由图2可知,分布式缓存数据库为用户属性注册应用提供了数据存储和访问服务,并与数据中心的关系数据库绑定,实现数据同步缓存。
1.2 磁盘阵列
单片机冗余阵列是一种将同一数据存储在多个硬盘不同位置的方法。输入和输出操作可以通过将数据放在多个硬盘驱动器上以均衡的方式重叠来提高性能。同时,由于多个硬盘驱动器增加了平均故障间隔时间,存储冗余数据也提高了容错能力。这是一个独立的系统,磁盘阵列直接连接到外部主机或通过网络连接。RAID1和RAID0都存在类似的问题,即数据只能同时写入一个磁盘,并且不能充分利用所有资源。要解决此问题,可以在磁盘映像中创建条带设置,因为这种配置方法结合了条带化和镜像的优点,所以称为0+1,如图3所示。由图3可知,磁盘组有多个端口,可以通过不同的主机或端口连接,主机与数组不同端口连接可以提高传输速度。结合RAID0和RAID1技术,每个磁盘都有自己的物理镜像磁盘,允许一个或更少的磁盘故障,不影响数据可用性,并具有快速读/写能力[12]。
图2 分层存储磁带库
图3 RAID0+1磁盘阵列
1.3 缓存控制模块
缓存控制模块如图4所示。
1.3.1 外部接口
外围设备是应用服务器提供统一的数据接口。这种设计模式可以防止后端数据缓存子系统的变化影响应用服务器的业务逻辑,实现高集成度和低松散匹配。此外,功能实体还将数据访问请求的格式限制为HQL[13],它还封装了一些复杂的数据访问请求(如分页查询),以方便应用服务器。
图4 缓存控制模块
1.3.2 核心控制器
核心控制器为缓存模块提供数据访问空间,通过一致性维护模块接收外界请求,驱动数据缓存。
1.3.3 查询适配层
查询适配层在核心控制器支持下实现以下功能:
1)筛选不合适数据,如数据更新请求和经常修改数据的查询请求,该系统将提供查询规则库。图书馆中的每条规则都代表一种数据查询请求类型,这种类型不适合缓存(使用正则表达式)。只有数据访问请求与库中的所有查询规则不匹配,才可以进入数据缓冲区。
2)查询未经处理的数据,方便系统一致性维护。用已查询请求模板ID和查询参数列表的形式定义数据缓存区域的主键,并将所有查询请求转换成所需格式。
1.3.4 本地缓存控制器
本地缓存控制器应用于本地用户程序服务器,其主要功能是对本地数据进行管理与监测,保证本地缓存区域中数据的正常使用,避免数据更换过程中出现本地数据丢失的现象。
2 软件功能设计
2.1 层次化通信网络冗余数据消除
数据集的对应维数在递阶通信网中进行投影,计算其相对熵,熵值越大,说明数据在空间维度中分布越均匀,计算公式如下:
式中:X表示维度数据划分集合;R(X)表示数据分布熵值;Havg(X)表示数据分布均匀的熵值;T表示维度数据划分后的数据量;d(x)表示通信网络数据在整个数据空间中的比例。
设置相对熵阈值区分冗余数据和非冗余数据,通常情况下,相对熵值小于1的数值为非冗余数据维度阈值,而大于1的数值为冗余数据维度阈值,大于该阈值的则将被删除。
设层次化通信网络数据库数据流为s,其组成的序列为{s1,s2,…,s n},每一项s i分为三个元组,分别是Ta,Re,Ti,分别代表层次化通信网络识别码、数据库识别码、检测通信时间。在该数据流中,冗余数据集合为X,该集合中存在的数据为y,元素与该数据集合表达式为:
式中λ表示相关参数。
当数据流中的X为局部冗余数据时,XRe=Rr(X)⋅y⋅Re;当数据流中X为全局冗余数据时,存在数据y,YRe≠Rr(X)⋅y⋅Re。
在消除数据库冗余数据过程中,出现错误消除的概率为:
式中:nf表示错误数据数量;nt表示正确数据数量。结合该公式,消除层次化通信网络数据如下:
依据式(4)消除通信网络冗余数据。
2.2 缓存流程设计
对缓存控制模块进行功能实体划分和各功能实体责任划分,缓存控制模块工作流程如图5所示。
图5 缓存流程
图5 显示了缓存控制模块初始化过程,其中主要有以下三点:
1)查询记录初始化:读取数据库相关规则,并将这些规则存放于列表之中,并导入数据库等待存储。
2)本地缓存控制器初始化:根据XML配置文件设置,文件配置主要包含本地缓存的一些相关信息,例如:缓存区域的大小、被缓存对象的最大超时时间等。
3)缓存客户端初始化:基于XML配置文件设置,即与远程缓存通信的客户端,主要包含关于缓存客户端的相关信息,比如:缓存客户端服务器的IP地址列表、请求和响应超时时间等。
3 实 验
采用标准C/C++编写,与Oracle数据库接口的OCI编程连接,支持多种操作系统。在该情况下,对设计的层次化通信网络备份数据库缓存子系统进行实验验证分析。
为了验证系统性能,在实验过程中,设计两个不同场景,分别是不存在冗余数据场景1、存在大量冗余数据场景2。
3.1 不存在冗余数据场景1
在场景1下,分别使用文献[1]方法、文献[2]方法和本文方法对数据缓存效果进行对比分析,结果如图6所示。
图6 场景1下三种方法缓存效果对比分析
由图6可知,使用文献[1]方法和文献[2]方法缓存效果始终低于85%,而使用本文方法缓存效果始终高于85%,具有良好的缓存效果。
3.2 存在大量冗余数据场景2
在场景2下,分别使用文献[1]方法、文献[2]方法和本文方法对数据缓存效果进行对比分析,结果如图7所示。
图7 场景2下三种方法缓存效果对比分析
由图7可知,使用文献[1]方法、文献[2]方法受到冗余数据影响,2路集联方式下的数据缓存效果低于80%,而32 KB管道尺寸和64 KB管道尺寸下的数据缓存效果低于60%;使用本文方法缓存效果依然高于85%,具有良好的缓存效果。
4 结 语
基于空间数据维度划分的层次化通信网络备份数据库缓存子系统支持大量数据存储,存储效果良好,并通过实验进行了验证。通过消除冗余数据,能够有效地提高系统整体应用性能。
为进一步优化系统结构,在大型网络中采用数据缓存子系统,某些系统部件可能会出现负载情况,影响整个子系统结构。为此,在后续研究进程中,借用分层控制理念对系统进行改进,使其适应大规模网络应用需求。