当前位置:首页 期刊杂志

基于动态反馈的多源数据库缓存冲突处理仿真

时间:2024-05-04

马亚军,孔令信

(重庆工商大学派斯学院,重庆 401520)

1 引言

现阶段,网络信息传输[1]业务得到广泛应用和快速发展,在为人们带来更多方便的同时,也给该技术的应用平台和限制因素带来了新的技术考验。社会对网络的依赖性越来越高,从工作琐事到日常所需,网络已经无处不在,同时海量的数据也加重数据库传输存储负担,容易产生缓存冲突[2]、数据失效等问题,影响网络正常运行。

在数据传输的过程中,当有两个或两个以上数据包在相同的传输信道上[3],同时进行传输指令,那么就会产生数据缓存冲突包。传统的解决方法是根据光缓存策略[4],通过在一定程度上对缓存冲突包的暂时存放,从而达到缓解数据缓存冲突带来的影响及损失。配置了光缓存核心节点的同时,还可以在一定程度上大幅度降低冲突包的数据丢失几率。此方法虽然能够完好的解决缓存冲突的问题[5],但从根本上来说,光缓存策略没有考虑到数据传输优化问题,导致数据库缓存冲突消除率较低。

张吉赞[6]等人针对带有冲突感知总线的嵌入式多源结构,提出了一种基于bank-column缓存划分的访存请求冲突延迟上限优化方法,根据bank冲突次数与冲突延迟上限间的关系,通过优化bank的核映射来减少bank冲突发生次数,从而减小冲突延迟上限和WCET估算值。该方法的冲突数据包丢失率较高,降低了多源数据库缓存冲突处理精度。

因此,本文提出基于动态反馈的多源数据库缓存冲突处理方法,该方法在传统方法的基础上,针对缓存冲突的数据包进行分割调整,根据反馈机制可以有效对冲突的缓存数据进行传输信道分配,从根本上减少冲突的情况出现,以达到传输流畅、效率高的目的。

2 多源数据库缓存冲突分析

现阶段,网络世界日新月异,需要存储的信息急速增长,导致多源数据库缓存时常会出现冲突现象。根据冲突报告,数据库内部将会更新冲突的缓存数据,以达到数据基本的一致性。一般可以将缓存冲突分成无状态策略和状态策略两种。

(1)无状态策略:是指数据库内部不需要对缓存状态进行特殊检测,在数据缓存发生冲突的时候,会有固定的冲突报告,数据库将根据冲突报告来解决其缓存问题。

传统的无状态策略算法具有时间戳[7],该算法的特征是数据缓存传输较为容易,缺陷是在数据库繁杂的情况下,不能够很好的将数据缓存,导致众多数据缓存冲突失效。

(2)状态策略:每一个数据库终端都会有数据缓存记录,根据缓存记录即可得知该数据缓存的基本状态。

传统的状态策略是异步态算法[8],由于数据库终端具有针对缓存的记录功能,所以在数据缓存过程中会根据记录,在一定程度上避免缓存冲突失效的情况出现。

这种方法被认为是一种在不需要特殊媒介缓存情况下,用来解决其缓存冲突的措施。当有一种数据在进行缓存输出时,又有一个数据做出了同样的指令工作,这样就会使两个数据之间指令发生冲突,进而导致两个数据流缓冲冲突,造成失效的结果。详细冲突原理图如图1所示。

图1 冲突原理图

3 基于动态反馈机制的冲突处理

3.1 动态反馈机制建立

动态反馈是在网络服务器的基础上,反馈出某时间段内网络运行负载与执行的情况,并且根据服务器的整体状况对请求指令进行比例调整。在此基础上,针对反馈的结果进行及时处理,以防止部分服务器出现过于负载但仍不断接受指令请求的状况,进而从根本上提高网络数据的缓存传输效率。

动态反馈的原理图如图2所示。

图2 动态反馈模型图

根据图2动态反馈原理图可以得知,数据权值的调整是在f(W(i)),L(i))的基础上完成的,f(W(i)),L(i))根据每个不同服务器节点的总体负载值L(i)和当前数据权值W(i),计算出另一组数据权值W′(i)。如果另一组数据权值W′(i)与当前数据权值W(i)间的数值高于总阈值fa,那么就会出现另一组数据权值W′(i)替换当前数据权值W(i)的情况。假设新数据权值数值不大于设定阈值,那么就保持原来的数据权值不变;如果新数据权值数值大于设定阈值,且在不替代原来权值的情况下,就会出现数值差过大,导致失误现象发生。

当总体负载值L(i)呈现出服务器较忙的状态时,新的数据权值W′(i)与其当前数据权值W(i)相比,当前数据权值W(i)要小,这样分配到该服务器的数据缓存指令就会相对少一些;当总体负载值L(i)呈现出该服务器利用率低的情况时,新的数据权值W′(i)与当前数据权值W(i)相比,当前数据权值W(i)要大,这样就会有增加分配的请求。

动态反馈机制可以在一定程度上提高网络整体传输效率,因为在网络运行的过程中,动态反馈可以很好的反馈出某阶段网络负载能力,根据反馈出的情况,进行合理的传输与分配。

3.2 多源数据库负载情况评估

在此基础上,根据数据库负载情况得到数据相关的概念理论:服务器的集合点S{s1,s2,…,sn};相对应的集群节点权值集合W(si)={W(s1),W(s2),…,W(sn)};负载集合L(si)={L(s1),L(s2),…,L(sn)}。

在对数据传输运行进行反馈时,其中最重要的一个参数值就是当前网络整体的负载承受力,因为随着该参数的变化,即会直接对整个服务器造成影响。所以在这种情况下,对于整体环境的负载承受力评估就很重要,同时也因为这一因素,得知了对负载参数的影响。

在这其中,综合的负载又可以分为输入型指标和服务型指标,服务器i在固定的时间间隔内,接收到的连接数为Ni,那么就可以根据接收到的连接数Ni,写出服务器的具体输入指标L(Ni),其表达式为:

(1)

式中,n表示服务器总数。由于服务类型不同,所以不同指标对负载的影响也不尽相同。在这种情况下,即可根据实时情况的权值来调节每个指标在负载中所担任的地位。

针对当前的负载情况、数据权值,计算出需要改变的数据权值大小。当服务器在传输时,会根据指令在传输初始设定一个当前数据权值W(i),假设这个数据值不等同于零,那么会出现每间隔一个时间周期的输出时间T,并对节点负载数据进行检测,根据检测结果,评估出整体负载的情况。

3.3 冲突数据包丢失现象

通过上述动态反馈机制以及多源数据库负载情况评估可以得知,当数据缓存发生冲突的时候,内部核心的调度器会针对冲突数据包进行分割,让冲突的数据包具有一定的缓存时间,根据调度原则[9],计算出原来要进行缓存传输的数据包,然后选取所需要的延迟线[10]单元数量Nb,使缓存可以为冲突的数据包争取出一个与输出时间T最靠近的时间点T′=bNb,假设T′>T,那么即可把这个数据包的整体延迟时间变长。

根据最长延迟时间,可以将缓存数据库看作为一个M/M/K/D的排队模型,在该模型中D表示为在缓存过程中可以提供的最大容量,即可以容纳最大数据冲突包的数量,其公式可以表示为

D=L(Ni)+L(Ni)N

(2)

在上述公式中,N表示全部延迟线(FDL)的总数量,这样根据M/M/K/D模型,计算冲突丢失数据包PFDL,其表达式为

PFDL=ρP0/kD

(3)

其中,P0表示核心多源数据库中没有冲突数据包传输的概率,ρ表示网络负荷,可以表示为λ/μ,k表示信道数量。

3.4 BS冲突处理策略

根据上述动态反馈机制可知,在网络运行的传输信道负载情况下,当某一条信道接收的传输指令超负荷于本身的负载能力时,就会间接导致数据缓存冲突的产生。

本文采用了基于BS[11]的分割策略,当数据在缓存的过程中发生冲突时,就可以运用分割策略对其数据进行分割,让部分冲突的数据可以得到传输,从而提升传输效率,并且基于BS方法解决冲突数据包丢失的现象,具有较好的冲突处理效果。由于冲突数据包发生了冲突而被分割后,其它的数据就会被分配到另一个数据包所在的信道中,一起进行传输。

假设在正常k个信道之外,还有着无数个虚拟信道[12],这就进一步可以认为分割后的冲突数据包并没有交换到正常信道中进行传输,而是交换到了一条虚拟信道,进行单独的数据传输。

根据上述情况,采用基于BS的分割策略对冲突数据包进行分割,则分割后的冲突数据包传输信道状态信息PBS可表示为

PBS=E⎣L」/PFDLK

(4)

(5)

其中,P(k+1)是属于上述M/M/∞模型中的k+j个虚拟信道全部被占用的概率值,从根本上讲,P(k+j)完全服从Poisson分布,则根据分配后的冲突数据包对多源数据库缓存冲突进行处理,其表达式为:

(6)

4 实验分析

4.1 实验环境

为了验证基于动态反馈的多源数据库缓存冲突处理方法在处理数据缓存冲突中的实际应用性能,进行实验分析。实验环境为CPU双核2.53GHz操作系统,内存为4.0G,64位Windows10,开发环境为MatlabR2010a。图3为多源数据库数据传输终端。

图3 多源数据库数据传输终端

在数据传输终端下,利用远程服务,对多源数据库中的数据进行远程传输。

4.2 冲突数据包丢失率

在数据传输的过程中,根据数据传输反馈出的负载情况,采用本文提出的基于动态反馈的多源数据库缓存冲突处理方法,基于光缓存策略的多源数据库缓存冲突处理方法和基于bank-column缓存划分的访存请求冲突延迟上限优化方法,分别对冲突数据包丢失率进行监测,监测结果如下图4所示。

图4 冲突数据包丢失率对比图

图4是在设定了K=2的前提下获得的实验结果。根据图4可知,随着数据库承受的负载不断增加,冲突数据包丢失控制不稳定。采用本文提出的基于动态反馈的多源数据库缓存冲突处理方法的冲突数据包丢失率在50%以下,而基于光缓存策略的多源数据库缓存冲突处理方法和基于bank-column缓存划分的访存请求冲突延迟上限优化方法的冲突数据包丢失率在100%和90%以下,本文提出的基于动态反馈的多源数据库缓存冲突处理方法的冲突数据包丢失率比基于光缓存策略的多源数据库缓存冲突处理方法和基于bank-column缓存划分的访存请求冲突延迟上限优化方法的冲突数据包丢失率低。

4.3 平均冲突消除率

为了验证本文方法的有效性,采用本文提出的基于动态反馈的多源数据库缓存冲突处理方法,基于光缓存策略的多源数据库缓存冲突处理方法和基于bank-column缓存划分的访存请求冲突延迟上限优化方法,对多源数据库缓存冲突处理效果进行对比分析,对比结果如图5所示。

图5 平均冲突消除率对比

根据图5可知,本文提出的基于动态反馈的多源数据库缓存冲突处理方法的平均冲突消除率最高可达80%,最低为46%;基于光缓存策略的多源数据库缓存冲突处理方法的平均冲突消除率最高可达58%,最低为30%;而基于bank-column缓存划分的访存请求冲突延迟上限优化方法的平均冲突消除率最高只有30%。本文方法的平均冲突消除率比基于光缓存策略的多源数据库缓存冲突处理方法和基于bank-column缓存划分的访存请求冲突延迟上限优化方法的平均冲突消除率高,说明本文方法的多源数据库缓存冲突处理效果较好,是因为本文采用了基于BS的分割策略,当数据在缓存的过程中发生冲突时,就可以运用分割策略对其数据进行分割,让部分冲突的数据可以得到传输,解决冲突数据包丢失的现象,具有较好的冲突处理效果。

4.4 冲突处理精度

为了进一步验证本文方法的有效性,对本文提出的基于动态反馈的多源数据库缓存冲突处理方法,基于光缓存策略的多源数据库缓存冲突处理方法和基于bank-column缓存划分的访存请求冲突延迟上限优化方法的多源数据库缓存冲突处理结果与实际测试的多源数据库缓存冲突处理结果进行误差对比,对比结果如图6所示。

图6 多源数据库缓存冲突处理结果

根据图6可知,本文提出的基于动态反馈的多源数据库缓存冲突处理方法的多源数据库缓存冲突处理结果与实际测试的多源数据库缓存冲突处理结果基本一致,而基于光缓存策略的多源数据库缓存冲突处理方法和基于bank-column缓存划分的访存请求冲突延迟上限优化方法的多源数据库缓存冲突处理结果与实际测试的多源数据库缓存冲突处理结果的误差较大,说明本文方法的多源数据库缓存冲突处理精度较高,处理效果较好。

5 结论

本文提出了一种基于动态反馈的多源数据库缓存冲突处理方法,利用基本缓存冲突原理与动态反馈机制,构建了基于分割策略的冲突的缓存数据处理方法。

动态反馈可以对多源数据库负载承受能力进行实施反馈,根据不同的数据传输信道负载情况,对其缓存信息进行合理分配,从根本上减少冲突的产生。

利用分割策略,在本文动态反馈的基础上,通过对传输信道的反馈得知信道能力。当两个数据包在同一信道发出同时传输的指令时,那么就会产生数据包冲突,根据分割策略,将冲突的数据分割到其它传输信道中,这样就可以有效的减少数据丢失率,提升多源数据库缓存冲突消除率,解决冲突数据包丢失现象,具有较好的冲突处理效果,从根本上增加传输的有效性,提高传输效率。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!