数据缓存系统

2024-09-20

数据缓存系统(精选8篇)

数据缓存系统 篇1

随着互联网的飞速发展,应用于企业管理的Web在线系统也得到了广泛的应用。对于在线服务平台而言,在服务器硬件性能一定的前提下,当系统用户同时登陆和使用时,系统的并发性有时显得不那么尽如人意。如何提升整个Web在线系统的响应速度、符合能力和并发性等方面性能是业界开发人员所关注的焦点。本文将从数据缓存的角度出发,设计出一种改进算法来解决这方面的问题。

MMF,全称Memory Mapped Files,从宏观上看,它是一种数据内存映射的技术。微软MSDN中,Randy Kath这样定义了MMF:Memory-mapped files(MMFs)offer a unique memory management feature that allows applications to access files on disk in the same way they access dynamic memory-through pointers。从微观上看,MMF是具有以下特性:MMF是windows的对象,可以被任何进程、线程所访问,具有进程间共享的特性。因为MMF的所有存取操作均在内存中进行,所以具备快速的特点。

基于以上特点,MMF的所有操作均可通过Windows API获得,使得DNA架构下COM可以跨进程访问数据。利用MMF可以将数据库端业务数据缓存到应用服务器段或客户端的MMFs减少频繁的数据库开销,极大的提高系统访问的性能。在java的jdk1.4的NIO规范下,可以在FileChannel和ByteBuffer类的文档中找到FileChannel对象具有映射文件到内存的功能,也就是前文的MMF。

因此,我们可以利用MMF来这样搭建整个系统:系统每次启动时,程序访问数据库,获取表中数据,通过一系列步骤将缓存应用到服务器端的MMFs,客户端请求数据时,直接访问应用服务器端MMFs,同时将数据缓存到客户端。

整个系统架构采用客户端/APP服务器/数据库模式进行设计。在客户端,可以采用CSR和Web Server(IIS)方式,对客户框架和Gui模式结合与APP服务器端进行交互。在APP服务器端,主要采用COM+技术,对客户对象和商业对象进行操作。同时,利用CA、XML等技术搭建辅助服务。同时,在服务器端和数据库直接利用Server Cache创建Business Rules,作为他们的中间件。利用这样的设计模式,可以保证系统的合理性和数据操作的有效性。

在这种系统架构下,当处理缓存端数据时,如何保证缓存中数据的正确性和时效性,以及保证大数据量吞吐时缓存的效率是我们需要考虑的重要问题。在现有缓存算法的基础上,设计了价值度权衡因子的数据缓存算法可以有效提高效率。

算法的解决思路如下:用户提出访问请求时,调用相应的决策引擎进行数据分析并产生响应的结果集。当结果集请求进入相应的缓存空间时,如果缓存空间已满,则需对空间中每个查询数据做出判断。数据di的价值度Valued(di)地的被替换,为新的结果集提供空间,同时对缓存数据的空间进行管理。

算法设计如下:

定义:数据缓存C表示如下:C=(Q(d),P(d)),d∈D D为数据集合。D={d1,d2,…,dn}。

Q(d)为数据对应的查询集合。Q(d)={Q(di)|di∈D},Q(di)={q1,q2,…,qm}。

P(d)为数据的属性集合。P(d)={pd(di)|di∈D},pd(d)=(flag(di),vd(di),μ(di),σ(di),fd(di),dud(di),sized(di),timed(di),rfd(di),Valued(di))。

其中:

Tmd(di)为数据的上次修改时间。

Tud(di)为数据的下次更新时间。

Flagd(di)为缓存数据的类型,包括立方体缓存数据和块缓存数据两种。

timed(di)为缓存数据的时间集。timed(di)={Tu(di),Tm(di),Tn(di)}。vd(di)为缓存数据di的被访问次数。

fd(di)为缓存数据di的被访问频率。fd(di)=vd(di)/Σv(di),Σv(di)为所有数据被访问次数之和。

μd(di)为缓存数据di的获取时间。

dud(di)为获取数据di的获取代价,dud(di)=μ(di)/Σμ(di),Σμ(di)为所有数据的获取时间。

σd(di)为缓存数据di所占空间的大小。

sized(di)为缓存数据did的空间代价,sized(di)=σ(di)/Σσ(di),Σσ(di)为所有缓据所占的空间之和。

Tnd(di)为当前时间。

rfd(di)为缓存数据的剩余寿命,rf(di)=(Tu(di)-Tm(di)/(Tn(di)-Tu(di))。

valued(di)为缓存数据价值度。缓存数据价值度和访问频率、剩余寿命、数据获取代价、数据空间代价越小成正比。故Valued(di)=fd(di)×rfd(di)/costd(di)×sized(di))。

由以上定义得出:

Valued=fd(d)×rfd(d)/sized(d)

Rfd(d)=(Tud(d)-Tmd(d))/(Tn-Tu(d))

本文以本项目的信息在线服务系统为例,将研究结果应用其中。由于本系统数据处理量大,实时要求高,在系统硬件服务器固定的条件下,采用新的算法可以有效改进系统性能。

将原系统和采用MFF新架构算法后的系统利用LoadRunner进行测试,测试时间设置了30分钟。虚拟用户逐渐增加时,每秒处理的事务数是0.687个;录制的完整脚本运行时,每秒处理的事务数为1.256个;释放虚拟用户时每秒处理的事务数是0.687个。

由前后系统性能的比较可以看出,采用MMF架构应用数据缓存新算法可以大幅度提高系统性能。当然,随着数据缓存的大量使用,势必会出现某种程度上的数据差错、数据同步机制以及与平台相关性等方面的问题。但无可否认,这种新算法的应用可以大幅度的提高系统的性能,值得我们做进一步的探讨和研究。

参考文献

[1]李华银.控制系统性能评估算法与应用研究.浙江大学,2010年硕士论文.

[2]唐金鹏,李玲琳.提升Web应用系统性能研究.企业技术开发,2007(01).

数据缓存系统 篇2

关键词:校园网 网络缓存 网络结构 教育网 流量

中图分类号:TP393.18 文献标识码:B 文章编号:1673-8454(2009)01-0036-03

一、概述

1.互联网访问存在的问题

近年来,随着许多高校校园网网络规模的迅速扩大,上网用户爆炸性增加,校园网网络带宽及Web服务器处理能力的增长速度永远处于巨大的压力下,这种供需双方的不平衡发展带来诸多的问题,出现了骨干链路拥塞、服务器过载以及响应时间过长等现象。用户普遍反映校园网网速慢,希望提高网络访问速度的要求越来越强烈。可以说,网络访问速度已经成为影响高校数字化建设的一项重要指标。

从整体上看,校园网用户得到的响应慢是由以下几个因素造成的:

(1)网站服务器的延时

当某个服务器收到多个并发HTTP请求时,会产生排队延时。由于响应一个HTTP请求,往往需要多次访问本地硬盘,所以即使是一台负载并不大的服务器,也可能产生几十或几百微秒的延时。

(2)由路由器、网关、防火墙引起的延时

通常在客户端和服务器之间的路径上会存在多个网络设备,如路由器、网关、防火墙等。它们对经过的IP包都要做存储/转发的操作,于是会引入排队延时和处理延时。在网络拥堵时,这些设备甚至会丢弃数据包,此时会寄希望于客户端和服务器通过端到端的协议来恢复通信。

(3)不同通信链路上的数据传输速度

在广域网中,从一个网络设备到另一个网络设备间的数据传输速度是决定往返时间的一个重要因素。但基本带宽所起的作用并不像人们想象的那么重要,一项测试表明,当网站采用T3速率接入Internet时,也仅有2%的网页或对象能以64kbps的速度提供给客户端。这显然表明,带宽在网络性能上不是最关键的因素。

(4)互联网上新业务发展带来的挑战

随着宽带平台的建设完成与互联网的发展,互联网上的新业务层出不穷,其中开展最好的主要有互动游戏与视频服务。网络游戏的运营不会对校园网络产生太大的影响。而视频服务作为目前校园网的主要业务之一,基于流媒体协议,具有时序性、连续性、低延时性的特点,同时在网络上传输的数据量较大,校园网络的延时往往会影响用户的访问质量。

2.网络缓存解决的问题

高校校园网正以迅猛的速度发展,在全国高校中,99%以上的高校有自己的Web地址,80%以上的高校已实现了校园网,并在公用Internet上存放图文并茂的数据。在未来的几年里,校园网用户数量将进一步增长。Web访问需求不可控制的增长将导致人们为满足带宽需求付出巨大的努力。

Web的流量是惊人的,但其中绝大部分是冗余的,即一个位置上的多个用户要访问大量相同的内容,这意味着在广域网上日复一日地传输大量相同的内容。消除这些大量的重复传输,就可以大大降低通信成本,从而为校园网管理部门和用户节约大量的费用。Web缓存实现了Web内容的本地存储,为校园网用户的访问提供了快捷的服务,而不用在广域网上重复传递访问请求和结果。

网络缓存技术正是基于这样一个事实:校园网用户访问Internet的数据中,有很大一部分是重复的。通过使用网络缓存技术,可以在缓存设备中缓存用户访问过的对象,这样对相同对象的访问就无需再占用服务器处理能力或者主干的出口带宽。同时,由于校园网用户对服务器的请求可以由校内的缓存设备立即响应,因此可以极大地提高校园网用户访问的响应速度,减少互联网延时对校园网用户的影响。

二、用户需求

高校校园网用户在使用中国教育和科研计算机网(CERNET,以下简称教育网)的过程中,发现访问网站页面速度比较慢。这主要是由于教育网的出口在清华大学,校园网用户访问网站页面时需要绕到清华大学出口,用户的数据包绕经多台网络设备,每台设备都需要对IP包进行排队转发,造成了较大的网络延迟。为了减少IP包在网络中的延迟时间,提高用户打开网页的速度,各高校校园网管理者希望通过网络缓存系统解决目前的问题。

各高校由于没有自身的Internet网络出口,为了向其用户提供上网服务,需要使用教育网的线路。教育网与其他网络运营商之间的互联互通会引起网络的较大时延,直接导致用户的访问效果不佳,而更为重要的是:对于国际流量各高校需要按照网络流量向教育网支付相关的费用。通过建立网络缓存系统,能够有效地节约各高校的国际访问流量,降低系统运行费用,同时改善用户的访问效果。

1.未部署网络缓存系统前的网络拓扑结构

我校未部署网络缓存系统前的网络拓扑结构如图1所示。

我校的校园网网络采用双核心结构,通过在两个校区设置的核心交换机来承载全校的数据流量,并通过各自连接的一条千兆光纤接入教育网。核心节点之间采用双链路连接,两个核心之间互为冗余。校内各楼宇通过交换机分别连接两个核心节点,流量在两条链路上实现负载分担和冗余。

2.缓存系统建设要求

缓存系统的建设既要符合对当前系统应用的考虑,又要面向未来数字化校园发展的需求。其建设原则主要有以下几点:

(1)实用性和先进性

采用成熟的技术满足当前的业务需求,采用先进的网络技术以适应更高的数据、多媒体信息的传输需要,整个系统在一段时期内能保持技术的先进,并具有良好的发展潜力,以适应未来业务的发展和技术升级的需要。

(2)灵活性与可扩展性

随着业务量的发展,能够通过对缓存设备的扩容、分散部署,扩大网络容量,提高网络各层次节点的功能。缓存系统应具备支持多种通信媒体的能力,提供技术升级、设备更新的灵活性,从而适应数据业务的迅速发展。

(3)可管理性

采用智能化、可管理的缓存设备,能够实现监控、监测整个网络的运行状况,合理分配网络资源、动态配置网络负载,可以迅速确定网络故障等。

本期工程主要是对校内用户进行Web加速,需要在校园网出口处布置网络缓存(Cache)设备。Cache设备的部署采用透明代理的方式,即Cache设备对用户是透明的,避免用户端改动配置。考虑到用户需求增长得很快,为了满足今后的扩容及Cache资源的最大化利用,布置Cache设备时需要考虑到流量在多台Cache设备间的负载均衡及灵活方便地增加Cache设备数量。

三、方案建议与实施

在当前的网络结构中,推荐采用四层交换设备部署网络缓存系统。该方式是在校园网的出口处外挂四层交换机。通过核心路由器和四层交换机配合完成用户数据的重定向,四层交换机实现对Cache设备的负载均衡和健康检测。

1.方案部署结构

部署网络缓存系统后的网络拓扑结构如图2所示。

如图2所示,在本方案中两台核心交换机各采用一条链路连接到一台四层交换机,该四层交换机再通过以太网接口下连Cache设备。四层交换机可以布置在核心机房,通过光纤同时连接到两台核心交换机上。

在核心交换机上配置策略路由,将端口号是80(HTTP)、21(FTP)、554(RTSP)、1755(MMS)的数据包转发到四层交换机上。四层交换机对Cache设备进行健康检测,并将两台核心交换机转发来的数据包在多台Cache设备上进行负载均衡。

2.数据访问流程

下面,我们以核心交换机1为例,说明校园网用户进行HTTP数据访问的具体流程:

(1)校内用户的HTTP请求到达核心交换机1后,其按照在连接校内用户的端口上所作的基于TCP 80端口的策略路由,将用户请求重定向到四层交换机;

(2)四层交换机根据数据包的目的地址,把HTTP请求重定向到某台Cache设备中;

(3)如果Cache设备中已经存储了用户请求的相关内容,Cache设备将直接响应用户请求,Cache通过四层交换机与核心交换机1的互连端口将回应数据包转发到核心交换机1,由核心交换机1将数据转发到用户端;

(4)如果Cache设备中没有保存用户所请求的内容,Cache会代替用户向Web服务器发起HTTP请求,数据包通过四层交换机转发到核心交换机1,再由核心交换机1发送到Web服务器上获取相关数据,并返回到Cache设备保留备份。同时Cache利用保存的内容响应用户的请求。

如果某台Cache设备发生了宕机,会被四层交换机的健康检测及时发现。宕机的Cache设备将不会再被分发数据包,四层交换机会将后继的数据包转发到其他可用的Cache设备上。如果所有的Cache设备都宕机了,四层交换机会把核心交换机1转发来的用户请求再转发回核心交换机1,核心交换机1再把请求发送到Web服务器,由Web服务器直接响应用户请求。这样就避免了由于Cache设备不可用造成的用户Web服务中断。

另外,四层交换机还可以根据Cache设备的性能,在Cache设备间按比例分布流量,实现每台Cache设备资源的最大化利用。对于今后的扩容,管理员可以方便地将新的Cache设备挂接到四层交换机下,稍做配置即可实现容量的扩容。

核心交换机1也有一定的健康检测功能,可以对四层交换机进行健康检测。若连接四层交换机的链路断掉或交换机宕机,都可以被核心交换机1检测到,并取消向四层交换机路由的重定向,数据包被直接转发到Web服务器,从而保证了用户可以正常上网。

核心交换机1的路由重定向可以根据TCP端口进行转发,并能限定数据包源IP地址、目的IP地址和进出路由器方向。根据这些特性,我们在核心交换机1上只对校园网内部节点的用户进入核心交换机1的数据包进行路由重定向(如根据源IP地址)。来自校园网外、Cache设备、其它地点和流出核心交换机1的数据包,核心交换机1不进行路由重定向,因此不会形成数据环路。

3.优化的流量

Cache设备接入到我校的校园网后,优化了带宽的流量有以下几种:HTTP、FTP、Streaming(RTSP、MMS)。

根据部署前后所做的对比测试,对HTTP流量,达到30%的带宽节省效果,通过策略对一些Web对象进行优化后,最高可达40%以上的带宽节省效果。

对FTP流量,所有匿名FTP的访问,Cache设备都能对其进行缓存,具体节省带宽的大小取决于当前校园网网络中FTP流量的总量。增加Cache设备对FTP Data通道的流量进行缓存,时间稍长后,节省的带宽将有明显改善。

RTSP、MMS直播/点播流量在校园网呈上升趋势,仅CCTV就有11个网上频道有直播和点播。例如:在进行十七大网上直播的高峰时段,CCTV在我校网络缓存设备节点上650Mbps的直播流量中,服务器端流量仅不到10Mbps;没有直播时,该节点上点播流量达155Mbps,服务器端流量仅不到5Mbps。

RTSP、MMS流媒体流量的带宽节省取决于实际的流量总量。但从比例上讲,视频点播(静态流媒体文件)业务经过一段时间运行后,带宽节省率应在该项总量的60%左右,直播业务带宽节省率应该在该项总量的90%左右。

这里需要说明的是,PPLive/QQLive/PPStream的播放虽然基于WMS(Windows Media Services),但其采用P2P方式获取数据,且没有使用RTSP或MMS来建立Client与Server之间的控制通道,因此Cache设备无法对这些流量进行标准流媒体的分流(Streaming Splitting)。

四、结束语

通过网络缓存系统的部署,有效地优化了我校校园网几种主要业务的网络带宽,减少了校园网出口的流量,节省了网络运营开销,成功地改善了我校校园网网络拥塞的状况,得到了广大校园网用户的认可。

参考文献:

[1]郭琳,李欣,陈志军,苏群,程懋泰,赵宇明.网络缓存技术[J].计算机系统应用,2002 (8).

[2]乐德广,郭东辉,吴伯僖. 网络缓存技术及应用的研究[J].计算机系统应用, 2003 (5).

[3]黄慧,李建华. 网络缓存性能的研究[J].信息安全与通信保密,2004(11).

[4]王昭,郭成城,晏蒲柳.一个面向站点的Web缓存系统[J].计算机工程, 2005 (7).

[5]赵玉伟.WWW中缓存机制的应用研究[D].武汉:武汉理工大学,2006.

数据缓存系统 篇3

将数据存储在缓存中能够显著地提高应用的速度, 因为缓存能够降低数据在应用和数据库中的传输频率。 Apache Ig- nite允许用户将常用的热数据储存在内存中, 它支持分片和复制两种方式, 让开发者可以均匀地将数据分布式到整个集群的主机上。 同时, Ignite还支撑任何底层存储平台, 不管是RDBMS、 No SQL, 又或是HDFS。 在集群配置好之后, 数据集增加只需在Ignite集群中增加节点而不需要重启整个集群。 节点数目可以无限增加。

Ignite的配置上有下面这几个选项可供选择: (1) 在Write- Through模式中, 缓存中的数据更新会被同步更新到数据库中。 Read-Through则是指请求的数据在缓存中不可用时, 会自动从数据库中拉取。(2) Ignite还提供了一种叫做Write-Behind Caching的数据库异步更新模式。 Write-Through中每一次更新都会对数据库发起一次请求。 如果使Write-Behind Caching后写, 对缓存的更新会整合成批次然后再发送给数据库。 这对改删频繁的应用来说可以达到相当的性能提升。(3) Ignite提供了易用的schema映射工具, 从而系统可以自动地与数据库整合。 这可以自动地连接数据库, 并生成所有需要的XML OR-mapping配置以及Java域模型POJOs。 (4) 查询Ignite缓存很简单, 使用的就是标准的SQL。 Ignite支持所有的SQL函数、 聚合和group操作, 甚至支持分布式SQL JOINs。

数据缓存系统 篇4

电网调度自动化系统对电力系统的安全、经济运行起着不可或缺的作用。现阶段,地县调电网之间的相互依赖和耦合程度越来越高,实现地县一体化运行和电网统一协调控制是迫在眉睫的需求,特别是一些大型地区调度系统,这部分的需求显得尤为突出[1,2]。目前,绝大部分地调自动化系统和县调自动化系统均独立建设,这2个系统通过数据转发实现电网生产数据共享。为了适应智能电网发展的需求,合理利用调度自动化系统建设资金,优化配置二次系统运行维护资源和技术资源,地县一体化调度自动化系统(以下简称“一体化系统”)就此孕育而生。一体化系统可以适应电网发展及管理理念的提升,促进调度自动化技术的发展。

一体化系统的主系统设置在地调,县调子系统采用广域分布式采集模式接入地调主系统。由于地调与县调之间地理位置分布较广,因此,地、县调网络通信故障的风险较大,当县调与地调系统之间网络出现故障时,县调系统将从主系统中解列并处于独立运行状态。当一体化系统出现分区解列运行后,必将导致这2个独立运行系统的数据不同步。如何将县调系统在解列期间的数据进行有效缓存,并且能够在县调系统由解列运行恢复到一体化并列运行后各数据同步到主系统,以保证一体化系统数据的实时性和完整性,是一体化系统实现系统可用性及易用性中需要着重解决的问题。本文提出了一体化系统进入解列状态后的数据缓存技术以及由解列状态恢复到正常运行后的数据快速恢复方法。

1 一体化系统中的数据缓存技术

1.1 数据缓存的必要性

一体化系统在正常情况下,地、县调分布式应用系统通过主干网相联,县调子系统各应用通过网络远程获取主系统应用服务从而实现应用功能。若出现县调无法获取地调主系统应用服务的情况,如主系统应用异常或地县调联网中断,则县调子系统处于分区解列独立运行状态。图1所示为一体化系统联网示意图。

一体化系统进入分区解列运行状态后,每个解列的县调单独升为应用主系统,从而保持系统基本监视控制功能正常运行。但因县调侧此时处于独立运行,因此,仍存在下列问题:①所管辖厂站的量测历史数据无法保存;②解列子系统的告警历史数据无法保存;③解列子系统的人工操作无法保存。

为了避免解列期间县调子系统应用数据丢失,保证系统恢复运行后能够保持全系统数据的完整性,必须将解列期间系统应用中的一些重要数据进行缓存,以便系统恢复运行后可以将这些数据同步到主系统中,以保证电网安全运行。

1.2 数据缓存的类型

一体化系统中某个县调系统进入分区解列运行状态后,根据数据类型不同,需要采取不同的数据缓存策略和方法。解列区域县调子系统上需要缓存的重要数据类型包括历史采样数据、历史告警记录、人工操作数据3类。

1.2.1 历史采样数据缓存策略和方法

1)历史采样数据缓存策略

只采集本区域所管辖厂站的历史数据,只保留数据状态质量正常的实时数据。因此,当县调系统处于解列运行状态后,需要过滤出解列县调所管辖厂站的历史采样数据点进行采样,同时,为了进一步保证采集到的数据的准确性,对采集数据的通道质量进行判定,只有当采集数据通道状态正常时,所采集的数据才认为是有效的,否则将采集的数据丢弃。

2)历史采样数据缓存方法

将历史采样数据形成结构查询语言(SQL)语句后以文件缓存方式缓存到本地系统。当系统处于解列运行状态时,无法获取相关的数据库服务,系统采用写文件队列的方法,也就是将提交给商用库服务的SQL语句缓存到本地系统文件中,当解列系统恢复并列运行后再将这些文件重新提交。

1.2.2 历史告警记录缓存策略和方法

1)历史告警记录缓存策略

所有解列期间发生的告警均保存,但需要在告警内容后追加“解列”标记。为了保证一体化系统恢复并列运行后系统数据的完整性,系统出现分区解列运行后必须将解列县调子系统的历史告警信息完整保存,并且为了能区分哪些告警属于解列县调子系统运行期间的告警记录,在保存解列系统告警记录时,在告警内容中追加“解列”标记。这样既有利于监控值班人员知道当前系统处于解列运行状态,也为后期正确分析事故原因提供有效帮助信息。

2)历史告警记录缓存方法

将历史告警记录形成SQL语句后以文件缓存方式缓存到本地系统,当解列系统恢复并列运行后再将这些文件重新提交。

1.2.3 人工操作数据缓存策略和方法

1)人工操作数据缓存策略

只缓存部分重要操作信息。重要操作信息是指能够改变系统运行方式的操作信息,其中包括量测封锁操作数据、告警抑制操作数据、置牌操作数据。

2)人工操作数据缓存方法

将人工操作数据缓存到本地实时库中。当系统处于解列运行状态时,仍然可以实现正常的监视和控制功能,可以对设备进行相关的操作,但是,当解列系统恢复并列运行后将会通过网络获取到主系统应用服务,而此时主系统中缺失了解列期间的部分操作数据。为了避免主系统丢失解列期间解列系统上的重要操作信息,系统将解列期间一些重要操作信息缓存到本地实时库中,以便系统恢复并列运行后将这些操作数据恢复到主系统中,从而保持一体化系统全网数据的完整性。利用本地实时库可以以表格的形式提供比较详细的信息记录方法。例如人工封锁操作,可以详细记录人工封锁值、操作时间、操作人等信息;又如标志牌操作,不仅需要记录操作的设备,还需要记录标志牌本身的属性信息(告警抑制、遥控闭锁、量测封锁等属性),而实时库中本身就已经存在这些基本的参数信息。因此,通过实时库记录操作信息,对系统恢复并列运行后进行操作信息同步到主系统会带来更大的便利。

2 一体化系统中的数据同步技术

一体化系统处于解列运行状态下解列县调子系统独立运行,这期间一些重要数据则缓存在本地系统中,当一体化系统故障解除后,解列县调子系统立刻恢复并列运行状态。为了保证一体化系统由解列运行状态到恢复并列运行状态后的数据完整性,需将解列子系统在解列运行期间的数据同步到主系统中。需恢复的解列子系统数据主要包括:所管辖厂站的量测历史数据、告警历史数据、人工操作数据。

一体化系统由分区解列运行到恢复并列运行后的数据同步是以解列运行状态下数据缓存方法为基础进行的。只有在分区解列运行状态下对需要恢复的数据进行缓存,才可能在系统恢复并列运行后将缓存的数据按照不同的类型采用不同的数据同步方法同步到主系统中。本文第1节针对3种不同类型的数据进行了缓存,其中历史采样数据和历史告警记录采用缓存文件的方法,人工操作数据采用缓存本地实时库的方法。针对系统数据同步也根据这2种不同的数据缓存方法设计了2种方法。

2.1 历史采样数据、告警记录同步方法

历史采样数据、告警记录是以文件方式进行的缓存,并且在数据缓存机制中已经对历史采样数据和告警记录分别进行了数据可靠性处理。系统中设计了一个历史采样数据、告警记录同步的模块。该模块在系统由解列运行恢复到并列运行后,立刻搜索解列区域系统本地缓存的历史采样/历史告警数据文件,然后解析数据文件,获取解列期间的历史采样和告警数据,重新将这些数据提交给主系统数据库服务;主系统数据库服务接收到相关请求后,将相关历史采样/历史告警数据存储到商用库中,保证解列期间历史采样数据和告警数据不丢失。

2.2 人工操作数据同步方法

人工操作数据同步的目的是将解列系统在解列期间所做的重要操作同步到主系统中,保证一体化系统的设备状态与实际运行状态一致,保证全网数据的完整性。人工操作数据以记录的方式缓存在本地实时库系统中,因此,当系统恢复并列后,需要在解列系统上启动人工操作数据同步模块,该模块负责提取解列期间保存的人工操作数据,并根据不同的操作采取不同的恢复方法来完成数据的同步。其中操作类型主要分为以下3类。

1)量测封锁操作同步

同步主系统中对应设备的状态,将该状态增加封锁状态,修改对应设备量测值为封锁记录中的封锁值;还需要在系统中增加对应设备的封锁记录。

2)设备告警抑制操作同步

同步修改系统中对应设备的状态,将该状态增加告警抑制状态;还需要在系统中增加对应设备的告警抑制操作记录信息。

3)设备挂牌操作同步

从主系统实时库中获取标志牌定义表中该类型标志牌属性信息,根据标志牌属性信息同步主系统中对应设备挂牌后的设备或量测状态;还需要在系统中增加对应设备的挂牌记录。

充分考虑到一体化系统存在多个安全的多机、多应用冗余配置,以上所有人工操作信息的同步工作不仅在系统应用主机上同步,也在系统应用备机上完成同步操作,从而保证全系统各应用主机数据的一致性和准确性。

3 结语

一体化系统由于其具有的各种优越性,目前在国家电网和南方电网都得到了高度重视。尤其对于自动化维护力量相对薄弱的县局,一体化系统的建设将会迅速提升其生产调度的自动化水平。对于日益城市化的珠三角、长三角等发达地区,由于其管理职能的逐步一体化,调度自动化系统的一体化也顺应了其管理需求,提高了整个地区的电力调度水平[3,4]。本文提出的一体化系统中解并列状态下数据缓存与同步方法能够提高整个系统的易用性,使用户在一体化系统出现解列运行恢复后不用对地调系统和县调系统进行手工数据维护工作,同时保证解列期间全系统重要数据不丢失。该技术方法已应用于工程实践中,并取得了预期的效果,为地县一体化调度自动化系统推广提供了良好的基础。

摘要:为了使地县一体化调度自动化系统出现解列运行后全系统重要数据不丢失,提出了一种地县一体化调度自动化系统解并列状态下的数据缓存和同步方法。该方法采用缓存文件和缓存实时库2种方式对一体化系统出现解列运行后针对解列侧系统进行数据缓存,并在解列侧系统恢复一体化运行后利用缓存的数据进行全系统数据同步。该方法已应用于南通地县一体化调度系统中。

关键词:调度自动化系统,地县一体化,解并列运行,数据缓存,数据同步

参考文献

[1]姚建国,杨胜春,高宗和,等.电网调度自动化系统发展趋势展望[J].电力系统自动化,2007,31(13):7-10.YAO Jianguo,YANG Shengchun,GAO Zonghe,et al.Development trend prospects of power dispatching automationsystem[J].Automation of Electric Power Systems,2007,31(13):7-10.

[2]陈赤培.地区电网调度自动化系统集成建设[J].电力系统自动化,2000,24(15):66-68.CHEN Chipei.Intergrated suppliers of SCADA/EMS/DMS inregional dispatching center[J].Automation of Electric PowerSystems,2000,24(15):66-68.

[3]肖世杰.构建中国智能电网技术思考[J].电力系统自动化,2009,33(9):1-4.XIAO Shijie.Consideration of technology for constructingChinese smart grid[J].Automation of Electric Power Systems,2009,33(9):1-4.

分布式数据缓存技术研究 篇5

随着Web技术的不断发展,应用系统业务访问量与日俱增,众多频繁的数据访问,对应用服务器和数据库要求越来越高,如何合理提高数据访问效率且对服务器不产生过多压力,成为提升系统性能的关键,在服务器与数据库之间增加缓存可以解决这个问题。

1 数据缓存

1.1 缓 存

在计算机系统中,缓存就是开辟一个用来保存数据的空间,使用缓存,就不需要频繁地访问存储在内存或硬盘中的数据。当执行一个操作,将操作结果放入缓存中后,可以很迅速的重复访问这些数据。

使用缓存技术的目的是为了提高数据利用率和检索效率。系统将访问过的数据放入缓存,当用户多次访问系统时,避免每次都查询数据库,直接在缓存中获取所需要的数据。缓存按照应用领域不同,主要有存储器缓存技术、磁盘缓存技术、WWW服务器缓存技术和数据缓存技术等几种。

1.2 数据缓存

现今,很多的系统都使用了数据缓存技术,典型的数据检索系统,将数据检索技术和数据缓存技术结合起来,极大地提高了检索效率。

数据缓存系统大概分为三类[1]:客户端数据缓存系统、集中式数据缓存系统和分布式数据缓存系统。客户端数据缓存系统指在网络中接受数据的一方即客户端建立数据缓存区,对接受的数据进行缓存。集中式数据缓存系统是在某个关键节点上设置数据缓存区,依据设置数据缓存区的位置不同分为服务器端数据缓存系统和网关代理级的数据缓存系统。服务器端数据缓存系统主要是在服务器上设有数据缓存区,适用于局域网。而网关代理级的数据缓存系统主要是在处理数据频繁的网关和代理服务器上设有数据缓存区,适于局域网和远程网。分布式数据缓存系统是在网络数据传输中的网络节点对数据进行缓存,这种节点不仅包含服务器,也包含各个客户机。

2 分布式数据缓存

数据缓存的意义在于将大量的数据拉到应用程序层,将大部分的访问在应用程序层拦截掉。在访问经常使用的数据时缓存能够成数量级的减少潜在的访问时间。这样的结果,大大提高了应用程序的速度,也减少了数据库服务器的负载,将时间集中在业务处理上,使数据库服务器的访问性能大大提高。缓存技术和服务器集群结合起来使用,这就是分布式缓存。

3 分布式缓存研究

关于分布式缓存技术,目前国内外文献中研究的比较多[3,4],存在多种缓存工作模型,但这些缓存模型大多属于从集中式向分布式的一种过渡,如图1所示。从严格意义上讲,它们更趋向于集中式数据缓存系统,不能归为分布式数据缓存系统。这些数据缓存系统的工作思路是:在客户端和服务器中也都建立了属于它们自己的本地数据缓存区,这些本地数据缓存区只为自己服务,互相之间没有联系,或者仅和服务器的数据缓存区之间存在着一种点到点的联系。

3.1 拓扑结构

P2P:多台服务器配置成一个缓存组,服务器两两之间都建立了连接,每台服务器既是客户端也是服务端;Client/Server拓扑:服务器被分成服务端和客户端两种角色。客户端的缓存层会主动去连接服务端。

3.2 数据分布模式

分布式缓存特点之一是通过不同的方法把数据分布在多个服务器上。三种数据分布模式分别是Replicated Cache:每个节点都复制了完整的相同的缓存数据;Partitioned Cache:将缓存数据通过分区算法分布在集群的各个节点上;Near Cache:在Partitioned Cache之前加上一个本地的缓存来存储最近访问和最常访问的数据。

3.3 数据同步模式

TTL模式:定义了对象在缓存中的存活时间,每次从数据库中取出对象保存到缓存中时,都会给对象加上信息;客户端轮询模式:客户端客户或者缓存服务器定期询问主服务器,检查缓存对象的有效性;每次轮询模式:每次对象被访问的时候都要向主服务器询问数据的有效性;服务器端失效模式[2]:服务器端负责跟踪监测所有客户端的缓存数据,适用于Client/Server分布式系统中;客户端失效模式:每个缓存服务器负责把更新数据通知给其他所有的缓存服务器。适用于没有中心服务器概念的P2P分布式环境。

3.4 缓存替换算法

缓存替换算法指明了当缓存需要额外的存储空间时,如何选择被替换的缓存数据项。传统的缓存替换算法主要利用对数据块的访问频率或者最近的访问时间为标准,判断数据块在本次替换操作中是否应该被替换掉。缓存替换算法按照层次可以划分为单级缓存算法和多级缓存算法[5],主要有MRU、LRU、LFU、LRU-K、FIFO、LRFU、ARC、MQ/2Q和TQ、DEMOTE等。

3.5 当今分布式缓存技术

一些分布式缓存的模式,已经在现有的产品中体现出来了,其中包括开源产品和商业应用产品,如OSCache、JCS、Ehcache、Memcached、JCache、JBossCache等。

4 分布式数据缓存模式设计

4.1 缓存思路

本文设计的缓存思路如下:为每个表设立三个缓存Map(key=value键值对),第一个Map是对象缓存A,key是数据库表的id,Value是数据库对象(也就是一行数据);第二个Map是通用列表缓存B,B的最大长度一般为1000左右,key是查询条件拼出来的String(如start=0,length=15#active=0#state=0),Value是该条件查询下的所有id组成的List;第三个Map是散列缓存C,key是散列的字段(如根据userId散列的话,其中某个key就是userId=109这样的String)组成的String,value是一个和B类似的HashMap,其中列表缓存B中的Map是需要遍历的。举例如图2所示。

这种缓存思路一般用数据库表的索引键做散列,且最散的字段放前面先散列,可以存储大规模的列表和长度,缓存命中率很高,因此可以承受超大规模的应用。

4.2 缓存策略

根据ID获取记录,首先从本机缓存即内存中查询并获取数据,如果没有则转向Memcached Server获取,如果Memcached Server也没有才从数据库中获取,从数据库中获取数据后放入Memcached缓存和本地缓存,这样可以大大减轻数据库服务器的压力。

创建一个数据库记录,直接把对象放入本机缓存和Memcached缓存。而数据更新策略分即时更新和非即时更新,即时更新用到UDP报文,更新数据库,同时重设本地缓存和Memcached缓存。非即时更新用在更新比较频繁但又不影响排序的时候,比如一个帖子的点击和回复次数。

数据删除缓存的时候,实现了分布式删除,通过发送UDP报文通知其他服务器自动删除缓存,列表缓存的key必须是由字段名称=字段值组成,如#boardId=1#threadId=3#state=1#,所以删除时只要利用要删除的对象的字段值组成一个条件字符串,看key中的条件是否满足这些条件决定是否要删除这些缓存List。

Memcached缓存中存的不是List而是由#分开的id列表,第一步从Memcached缓存中查找,先从公共缓存区RECORDS_LIST_CACHE开始,然后到二级散列缓存HASH_LIST_CACHE中查找。第二步到数据库中进行查询,对照放入List或者Hash中。

缓存替换算法采用最为广泛的经典LRU衍变算法,加入其他因子如被引用次数,最近一次被引用后经历的时间,存活时间等分配不同的权重。缓存同步是当数据更新时通过服务器发送UDP报文通知其他服务器和客户端保证数据一致性。

5 缓存系统性能应用与测试

分布式数据缓存应用广泛,特别适用于具有高并发、高访问量的读多写少和更新不是很频繁的系统中。本文将分布数据缓存技术应用于某社区平台开发,系统主要使用轻型J2EE框架设计,构建在Hibernate之上,采用分布式解决方案,相当于在Memcached上做了两级缓存,模式采用Client/Server拓扑结构、较为简单有效的Replicated Cache、与Client/Server拓扑结构相对应的服务器端失效模式。

首先用一台普通计算机对社区进行压力测试,配置为内存2G,2个Intel P4 CPU,Linux AS4系统,数据库Mysql5.0,apache2.0.63/resin3.1.8/jdk5.0的环境,对帖子列表页面进行压力测试,测试结果如表1所示,Mysql5.0的CPU占用率都在20%以下,Java进程的CPU占用比较高,为50%左右。

然后用分布式缓存环境进行性能测试,3台服务器和1台数据库服务器Intel P4 2.8G,内存2G,操作系统是Linux AS4,1台客户端测试机Intel P4 2.8G,内存2G,操作系统是Window Server 2000。为简便起见,测试并发情况下查看和搜索纯JSP页面的帖子使用分布式缓存技术前后的整体性能。

第一组数据是测试查看帖子的速度,第二组数据是测试搜索帖子的速度。测试数据和性能结果如表2-表3和图3-图4所示。

由第一组数据表2和图3可以看出,查看帖子在有数据缓存的情况下,帖子的列表缓存和长度缓存都起了很大的作用,当并发数为20的时候,曲线上升的趋势已经开始有明显区别,缓存的效果比较明显。第二组数据表3和图4效果更为明显,搜索帖子用到了数据缓存中的数据库对象缓存、列表缓存和长度缓存,并发用户多的事情下,搜索相同数据的可能性增加,数据缓存的功能也体现出来,从图中可以看出,使用分布式数据缓存的情况下,系统性能提升很多。

6 结 语

分布式数据缓存模式越来越广泛被应用到各类系统中,大规模的企业级应用可以使用集群来保证,中小规模的部门级应用可以使用轻型J2EE框架来实现。数据缓存可以减少数据库访问量,提高数据命中率,分布式模式可以均衡服务器的压力,进一步提升系统的性能。分布式缓存模式将是未来缓存的研究重点。

参考文献

[1]Kataoka Mikio,Toumura Kunihiko,Okita Hideki.Distributed CacheSystem for Large-Scale Networks[C]//2006 International Multi-Con-ference on Computing in Global Information Technology(ICCGI'06),IEEE computer society,2006.

[2]Xin Yu.A distributed adaptive cache update algorithm for the dynamicsource routing protocol[C]//Proceedings IEEE INFOCOM,2005:730-739.

[3]Tewari R,Dahlin M.Design Considerations for Distributed Caching onthe Internet[C]//9th IEEE International Conference on DistributedComputing Systems,1999:273-284.

[4]黄世能,奚建清.分布数据缓存体系[J].软件学报,2001,12(7):1094-1107.

一种自适应的数据库缓存模型 篇6

现在的信息系统大多要用到数据库技术,一般在网络上运行,采用C/S、B/S甚至N层体系结构。数据库技术和这些体系结构的应用,使得开发、部署和集成信息系统有了前所未有的方便和灵活,但同时也带来了运行效率比较低的问题。

使用缓存技术是提高系统效率的一个方法。缓存可以缩短数据传输的距离,减少数据处理的层次,从而缩短系统的响应时间,减少网络流量,提高系统的效率。显然,缓存越靠近用户一端、缓存的数据越多,则发挥的作用越大;但另一方面,缓存的数据越多、越靠近客户端,为了保证数据一致,当对数据进行更改时所付出的额外开销也越大。因此,必须在这两方面取得平衡。系统在运行中,其对数据使用的情形是变化的。根据系统使用数据的情形,缓存的数据也应该相应改变,以取得动态平衡,从而提高系统的性能。

1缓存结构与性能分析

对于一个在客户端进行缓存的系统,假设只有一个服务器,而有n个客户端。假设每个客户端缓存的数据量为服务器端数据总量的h,缓存在客户端的数据在查询时一般比其它数据有更高的命中率,设命中率为f(>1),有hf≤1。每一个客户端的对数据的查询指令数为λq,客户端处理一个查询的平均时间为tqc。而总的对数据进行更改的指令数为λu,所有的更改指令直接由服务器进行处理。服务器处理一个更改指令的平均时间为tus,服务器处理一个查询指令的平均时间为tqs。服务器更改数据之后,如果这个数据被缓存在客户端,则要将更改后的数据广播到所有客户端,服务器广播数据更改到所有客户端的平均时间为tb,而客户端进行数据更改的平均时间为tuc。为了讨论的简单起见,我们假设所有的消息在网络上的传输时间是一样的,为tr。

可以认为λq、λu到来符合泊松分布,而客户机和服务器则为M/G/1排队系统。客户机单位时间到达的处理请求:hfλq个查询、hλu个更改。而服务器单位时间到达的处理请求:(1-hf)nλq个查询、λu个更改、hλu个广播。一个客户端查询所需的时间为[1,2]:

Rq=hf(twc+tqc)+(1-hf)(2tr+tqs+tws) (1)

其中,twc为在客户机等待的时间,tws为在服务器等待的时间。根据排队论知识,可以得到:

undefined (2)

undefined (3)

使用表1中的参数值,可以画出图1。可以看到Rq在λu小于一定数值(330)时,随着h的增大而减小;而随着λu的增大(335、340),Rq随着h的增大先降而后升;当λu增大到一定值(345)之后,Rq随着h的增大将一直增大。这一结果与直观的看法是一致的,即当λu增加到比较大的数值后,在客户端进行查询所节省的时间已经比需要广播更改结果而额外耗费的时间小,从而导致性能下降。

2缓存调整

为此,当λu增大到一定水平之后,应当将h适当减小。计算出使Rq最小的h的一般算法非常复杂,而且f难以测量,因而没有现实的意义。这里需要找到一个使变更广播尽量小,而h尽量大的算法。由于广播发生在服务器端,广播的直接结果是使tws和twc变大,从式(2)和式(3)中可以看出,广播(即hλu)使tws和twc以高阶指数增加。特别是tws,因为服务器的负担此时非常重,即使很小的广播也使其急剧增加。为此,使tws最小的解是使Rq最小的近似最优解。直观地看,使tws最小也近似于将更多的工作交给客户机进行本地处理。

仔细分析缓存,参见图2,缓存中的数据有不同的种类,它们的查询频率和被更改的频率并不相同。假设第i类缓存在整个缓存中占的大小比例为中hi,并有Σhi=1;而λqi为第i类缓存的查询频率,有Σλqi=hfλq;λui为第i类缓存的更改频率,有Σλui=hλu。如果要将第i类数据从缓存中清除,有:

undefined

式中,λqi=hihfλq。如果式(5)成立,则tws为最小。

令c=tb/tqs,由于c、tb、tqs为常数,式(5)可转化为:

考虑到tqs<<1,并考虑它们在tws中的作用,式(7)的解就是上式的近似解。

min(λqi-cλui) (7)

max(λqi-cλui) (8)

当需要增加缓存时,分析与上面类似,增加的是使式(8)成立的第i个在客户端尚未缓存的数据。

需要注意的是,当服务器需要全部客户机清除某类缓存时,服务器以某种算法(如在线时间长短、繁忙程度或随机)指定一客户机计算出需要清除的数据类别;当服务器需要全部客户机增加某类缓存时,服务器根据服务器端的缓存情况进行计算。客户机仅仅清除自己缓存中某类数据时,是根据客户端的缓存情况进行计算;客户机仅仅增加自己缓存中的数据时,将随机选择某一类数据进行缓存。

无论是服务器和客户机,其缓存的容量都是有限的。缓存数据达到容量极限时,可采用LRU方法来替换缓存中的数据。

3调整时机

根据上节的分析,如何确定调整时机及调整方向(向上调整还是向下调整),还是要针对服务器的等待时间进行分析。当查询的影响大于更改时,缓存应该向上调整;反之则向下调整。为此,定义式(9)为影响因子,ε为影响水平。当e大于ε时,调整方向为向上,反之则调整方向为向下。

undefined (9)

服务器中有消息队列,如果在队列中等待的消息不多(小于队列长度的一个百分比值,如60%),则认为服务器空闲;如果在队列中等待的消息很多(大于队列长度的一个百分比值,如60%),甚至出现消息丢失,则认为服务器繁忙。显然,服务器繁忙时必须进行调整。

当e与ε的差很大时,表明查询与更改的相对影响发生了重大变化,此时也要进行调整。引入s(s<1)为稳定水平,称域[(1+s)ε,(1-s)ε]为稳定域。如果e在稳定域之外,则必须进行调整。

综上所述,调整时机算法描述如下:

IF (服务器空闲AND e∈[(1+s)ε,(1-s)ε]) THEN不调整;

IF (服务器繁忙 AND e>ε) THEN向上调整直至服务器空闲为止;

IF (服务器繁忙 AND e<=ε) THEN向下调整直至服务器空闲为止;

IF (服务器空闲 AND NOT(e∈[(1+s)ε,(1-s)ε])) THEN

{

IF(e>ε) THEN向上调整直至e<=(1+s)ε;

IF(e<ε) THEN向下调整直至e>=(1-s)ε;

在式(9)中,n(1-hf)λq就是服务器消息等待队列中查询消息的个数。服务器只需选取1或多个队列长度的消息进行统计,就可以确定n(1-hf)λq和λu。参数ε、s、α、β为经验值常数。

4模拟检验

为了验证以上算法,我们编制了模拟程序进行了验证。验证程序对四种缓存的响应时间进行比较:无缓存(h=0)、最优缓存(使响应时间最小的缓存比例)、自适应缓存(缓存在0~0.19之间)、固定缓存(h=0.15)。自适应缓存选取的最大比例为0.19,是考虑现实中hf很难达到1。

模拟程序中,缓存系统参数仍然采用表1中的参数,ε、s、α、β的值分别是0.2、0.3、1.1、0.8。程序中自适应缓存消息长度大于20则认为系统繁忙,而最优缓存、固定缓存的队列长度则为无穷大。

图3、图4是模拟程序的两个运行结果,图中竖轴为响应时间,单位为秒。从图中可以看出,虽然自适应缓存会发生抖动,但在大多数情况下其性能要好于固定缓存。对其它负载情况进行模拟,包括λq固定、逐渐上升、逐渐下降、随机及λu固定、逐渐上升、逐渐下降、随机等15种负载模式(其中两者都固定不作讨论),这些负载情况下的模拟结果都支持上述结论。限于篇幅,不在此给出其它的模拟结果。

5相关工作及未来工作

文献[1,2]对本文使用的缓存结构进行了比较详细的描述,但是他们没有讨论自适应的问题。文献[3,4]讨论了缓存数据无效规则及无效规则的优化。

通过对缓存系统的性能模型进行分析,缓存的数据不一定是越大越好。当缓存的数据越多时,缓存系统节省的查询时间可能小于更改带来的广播时间,从而导致系统性能下降。因此,缓存应当随着系统的不同情况进行自适应。确定缓存调整时机和如何进行调整的算法都相对比较简单,因而较容易实现。

为了尽量不增加缓存系统的额外负担,这里给出的调整算法和确定调整时机的算法都是比较简单的,它们是一种次优的算法。是否还存在更简单易行的算法,或者计算量大致相同而更优化的算法,可以作更进一步的研究。

文中调整算法对确定了一类数据后,在缓存中对整类数据进行增加或清除,这一方法非常简单,但被处理的缓存数据块的粒度较大,可能使缓存的性能急剧降低到与无缓存时相若。在确定一类数据要进行增加或清除后,不将这类数据全部增加或清除,而是根据某种算法确定其缓存块的大小,这一算法也值得深入研究。

摘要:缓存可以提高应用系统的性能。但应用系统使用数据的情形是动态变化的,特别当数据更改数量大时,固定缓存会使应用系统的性能急剧下降。为了取得更好的性能,缓存应该根据应用系统的动态变化相应动态改变其数据和大小。缓存中的各类数据的查询、更改的频率是不同的,根据这一特点,提出了一种调整缓存的算法。当应用系统繁忙或负载情况发生重大变化时,则进行缓存调整。算法相对比较简单,容易实现。对各种负载情况进行模拟实验证明,这一自适应的缓存算法比固定缓存具有更好的性能。

关键词:自适应缓存,调整算法,调整时机算法

参考文献

[1]Stamatelopoulos F,Maglaris B.Performance and Efficiency in Distribu-ted Enterprise Management.Journal of Network and Systems Manage-ment,Special Issue on Enterprise Network and Systems Management,1999,7(1).

[2]Rafael Alonso,Daniel Barbara,Hector Garcia molina.Data Caching Is-sues in an Information Retrieval System.ACMTransactions on DatabaseSystems,1990:15(3):359-384.

[3]Daniel Pfeifer,Hannes Jakschitsch.Method-based Caching in Multi-Tiered Server Applications.Technical Report#2003-11.http://www.ipd.uka.de/~pfeifer/publications/techreport_2003_11.pdf.

内存数据库在高速缓存方面的应用 篇7

自改革开放以来, 我国计算机网络技术进入了飞速发展阶段, 随着高速缓存技术的发展, 互联网接入网速度得到了显著的提升, 同时由于主干带宽不断扩容, 用户规模不断扩大, 有关宽带用户认证计费管理方面的问题也随之显现出来。内存数据库进入高速缓存系统, 虽然能够提高计算机网路应用的综合性能, 但其装置成本也会大大提高[1]。目前, 我国拥有的网络用户数量庞大, 所以互联网运营商为了维护企业的切实利益, 逐渐加大了宽带用户认证计费力度, 其目的在于让高速缓存技术在突破网络服务器承载力局限性的同时, 扩大网络运营宽带用户认证计费系统的影响力, 以维护计算机网络工程和互联网运营企业的均衡发展。

在互联网工程中引入高速缓存技术, 将传统的互联网服务器扩展为互联网内存数据库, 这种技术维护, 有效的解决了磁盘数据库中CPU和磁盘之间的矛盾。目前我国应用的高速缓存技术的内存数据库设计简单, 且性能高效, 在减少互联网服务器负载的同时, 提高了网络服务器传输信息的响应速度, 对互联网综合性能的发展具有重要意义[2]。

2 内存数据库在高速缓存方面的应用

Cache即高速缓冲存储器, 其应用性能是提高网络服务器CPU和内存之间的缓存速度。在互联网运行过程中, 由于网络信息交流量巨大, 其主服务器CPU经常会出现信息输出延迟现象, 这种延迟等待是为了给网络内存数据库分析信息的时间, 当网络信息浏览量超过极限值时, 系统会因CPU数据交流信息过大而崩溃。应用高速缓存储存器的网络系统, 其信息数据缓存速度很快, 作为一种缓存介质, Cache很好的完成了系统设定的任务。

Cache主要分为本地缓存和远端缓存两大类, 其应用性能, 主要表现在以下几个方面: (1) 本地缓存, 是安装在互联网前端的前置机, 网络用户发出信息检索指令之后, 这个前置机会代替网络服务器接受用户请求, 并自动处理请求信息, 使网络信息数据内存与网络服务器保持自动同步更新状态; (2) 远端缓存, 这种缓存装置是安装在网络应用程序中的, 是一个计算机应用缓存组件。将内存数据信息与网络服务器应用紧密耦合。到目前为止, 仍有很多Cache内存数据模型不能完全设定主存, 会受到物理内存的限制, 这是所有内存数据库共同的限制。但还是可以将大量数据尤其是热点数据置于主存, 仍然可以充分发挥内存数据库的优势[3]。

3 基于内存数据库的应用探讨宽带用户认证计费相关内容

引进高速缓存技术后的互联网, 必须有一个完善的宽带用户认证机制作做支撑, 传统的网络用户认证模式和计费系统存在很多问题, 网络运营商无法实时掌握网络用户的计费收费情况, 所以建立一个集中式的宽带用户认证系统对网络运营企业至关重要, 其系统结构如图1所示。

通常情况下, 互联网采用以SHCP技术为核心的宽带用户认证系统, 因为DHCP技术的应用性能很好, 能够保证系统在复杂网络环境下安全、稳定的运行。从目前互联网环境下来看, 宽带用户认证系统不仅能够为网络运营商提供坚实的资金基础, 还能通过网络计费的方式将网络IP地址分配给各省市地区, 做到互联网系统的集中控制、分级管理。

计费中心能对所有互联网宽带用户进行统一管理、集中维护, 通过对互联网各系统业务的统一分析, 可以让网络运营商实时掌控宽带用户资费信息。与此同时, 宽带用户认证系统还可以支持分权分级, 各省市的网络用户开户、维护、收费等操作, 都需要宽带用户认证系统来完成。用户上网认证和授权由计费中心进行统一处理, 其资费信息会记入系统历史账单, 每月计费中心会通过核查这些历史账单, 检验其宽带用户认证系统是否完善, 是否存在漏洞。由此可见, 要想实现网络内存数据库的应用价值, 必须在创建高速缓存系统的同时, 维护宽带用户认证系统, 两者协调发展, 才是推动网络高速发展的主要动力[4]。

结论:本文通过研究Cache高速缓存技术和SHCP用户认证系统可知, 虽然Cache能够满足高响应速度的缓存需求, 但是随着缓存技术的不断发展, 内存数据库的应用形式会发生很大的改变, 要想使其不影响正常的网络运营, 保证网络运营的经济效益, 就必须建立一个完善、稳定的宽带用户认证系统。

摘要:近年来, 随着计算机网络技术的不断发展, 互联网内存数据库的缓存承载能力有了显著的提高, 扩展网络服务器的访问距离, 是提高网络运营稳定性的重要解决方案。Cache内存数据库是目前被广泛应用的内存数据库缓存技术, 其综合应用性能非常好。基于此, 本文对内存数据库在高速缓存方面的应用进行深入分析。

关键词:内存数据库,高速缓存,应用与研究

参考文献

[1]杨艳, 李炜, 王纯.内存数据库在高速缓存方面的应用[J].现代电信科技, 2011, 11 (11) :111-116.

[2]王心妍.Mencacahed和Redis在高速缓存方面的应用[J].无线互联科技, 2012, 11 (09) :134-145.

[3]牛晓晴.海量数据实时分析技术的研究与应用[D].北京邮电大学, 2013 (3) :145-156.

数据缓存系统 篇8

在P2P研究领域中,稀有优先调度策略由于其能将备份量小的片段迅速在网络中扩散,避免了节点动态性对数据传输的影响,稀有优先调度在BitTorrent[1]、emule[2]中得到了广泛的应用。

然而,在P2P流媒体系统中,由于各个节点的缓冲区重叠度并不尽相同,最稀有的数据片段往往是最新的数据片段,而在带宽不足的情况下,优先请求这些稀有片段将会导致那些较小序号的数据片段在播放截止时间前不能到达,不能满足流媒体固有的实时性要求,从而导致用户节点的播放流畅度大为降低。同时,由于现有的应用稀有优先调度策略流媒体系统[3,4]其简单按照片段在系统中的备份数量计算片段的稀有度,未考虑到片段生命周期的问题,使得一些稀有片段因为滑出节点缓冲区而丢失,从而导致其他节点必须向服务器调度这些片段以满足播放需求,因此导致服务器带宽压力较大。

本文在对稀有优先调度数据调度策略研究的基础上,提出了一种基于缓存生命周期的稀有优先数据调度策略RFMLC(RarestFirstbasedonMaxLifeCycle),仿真结果显示,RFMLC调度策略能够比传统的稀有优先数据调度方式取得更好的调度效果。

2 相关工作

BitTorrent[1]是一个典型的文件共享系统,该系统采用了稀有先取(RarestFirst,RF)的数据调度策略。

CoolStreaming[5]是一个典型的P2P直播系统,该系统基于无结构网络的数据驱动协议,采用稀有优先策略,并优先向剩余带宽最多的节点请求。

BiTos[6]是一个基于BitTorrent的直播系统。在BiTos中,节点的缓冲区按照片段优先权的大小被分为A、B两个部分,两个部分中的数据片段优先权大小分别为p和1-p。当低优先权区的片段播放时间靠近时,该片段的优先权自动变高。BiTos在两部分分区中均分别使用了稀有优先的调度策略。

3 带宽自适应的调度策略

3.1 多源协同数据调度模型

本文所讨论的数据调度策略针对于网状拓扑系统,从系统中的某一节点角度分析,数据调度可以抽象成在满足特定的下载速度控制条件和不超出服务节点服务能力的情况下,使总体片段优先权最大化的调度,因此可以表示如下:

其中,hkj∈{0,1},若为1则表示服务节点k有片段j,否则表示k没有片段j;xkj∈{0,1},为1表示本节点决定从服务节点k中调度片段j,否则为0;x为本次调度需要调度的数据总量(即片段数);λk为服务节点k对本节点的服务能力;pj为片段j的优先权大小。

3.2 稀有优先数据调度策略分析

稀有优先来源于BT等文件共享系统,这种策略的优点在于能够数据片段在系统中的备份数量,避免节点因为数据片段缺失而导致下载不全或者向种子节点请求而加重种子节点的负载。

为了适应高动态网络环境变化,CoolStreaming[5]将该思想用于P2P流媒体系统,数据片段按照节点局部视图的稀有度进行排序,按照稀有度的顺序进行数据片段的请求。这种策略在一定程度上发挥着类似于文件共享系统中的作用.

3.2.1 稀有优先策略的不足

在由于其对数据分发仍然存在一定的不确定性,因此在实时性要求较高的情况下,该策略很难保证每个数据块在播放截止时间前到达[7]。同时该策略在流媒体应用中还存在如下两点不足:

(1)未考虑片段在缓冲中的生命周期问题。

值得注意的是该稀有度的计算为,Ni为拥有片段i的邻居节点个数;同样,文献[8]将该思想用于了流媒体点播系统,同样将稀有度设置为稀有优先思想的本质在于使得数据片段在系统中的备份数尽可能均匀,以避免节点离开带来的数据片段缺失问题。然而,这些研究均没有考虑到的实时流媒体业务与文件下载业务的不同:实时流媒体业务中,节点需要按照一定的时序进行数据获取。由于节点的行为是独立的,数据片段在网络中为独立同分布,生存周期越长的片段,其在网络中被传播的概率越高。因此,对于一个节点而言,生存周期越短的片段往往具有越高的全局稀有度。节点在从局部计算稀有度的同时,应该充分考虑全局的稀有度,即考虑其所能获知的系统中生存周期越短的数据片段的备份数。

(2)未考虑相同稀有度下的负载均衡问题。

如图1所示,节点A、B分别按照稀有优先的方式进行数据调度,由于最新的片段其稀有度往往最高,所以A、B均同时向节点S调度最新的片段,从而造成S的负载过大,同时A、B的合作性很差。

3.3 基于缓存生命周期的稀有优先调度策略

为了解决上述问题,我们提出了一种基于缓存生存周期的稀有优先策略,RFMLC(RarestFirstbasedon MaxLifeCycle)。

3.3.1 相关假设及系统参数

设节点缓存为B,缓冲区大小为m个片段;Bkj为节点j缓存的第k个数据片段。B k0为节点k的播放点;对于一个请求节点i,设n为请求节点的合作节点数;在RFMLC中,节点i中片段j的优先级设置为

其中,δ为一个很小的正实数,称为抖动系数,为了避免相同优先级的数据片段过于集中向某个服务节点请求,导致服务节点负载过重的问题。式(2)中,为数据片段j在节点i中的生存周期比,即片段j的生存周期占整个缓冲区片段播放时长的比例。越小,表示片段j在i中的生存周期越短,总生存周期越短的片段,其受到请求的优先级越高,特别地,当片段j在节点i的准静态缓存中时,则设j的生存周期为

4 实验分析

本文将传统稀有优先和RFMLC两种策略在P2P点播系统中的性能进行了仿真。试验中,服务器带宽100Mbit/s,节点间的平均延迟为80ms,数据片段大小为1024B,调度周期为1s,1000个节点按照强度为λ的泊松过程加入系统。节点按带宽分为四种类型:ADSL 512、ADSL 1500、SDSL 512、DSL 2000,分别占25%、35%、30%、10%,见表1所示。

实验结果如图所示。

如图2所示,RFMLC由于在考虑数据片段稀有度的同时,充分考虑了数据片段在缓存中的生存周期的因素,使得生存周期越短的片段获得的请求率越高,相比于传统RF调度策略,进一步促进了片段在系统中的扩散,RFMLC的平均服务器带宽消耗比RF下降了11.6%。

如图3所示,由于RFMLC所考虑的缓存生存周期因素,主要是为了进一步提高片段在系统中的备份数,与RF策略一样,并没有对播放质量方面做进一步处理。因此,其播放流畅度和节点的启动延迟与RF基本一致(如图4所示),依然存在播放流畅度较低,节点启动延迟较大的问题。

5 结束语

本文在对稀有优先调度策略在P2P点播系统中应用方面进行了深入研究,揭示了稀有优先策略的本质,指出其应用在点播业务中存在的两个不足,并提出了一种基于缓存生命周期的稀有优先调度策略,根据数据片段在节点中的缓存生命周期确定优先级,从而保证了数据片段在系统中的总体生命周期,降低了服务器负载仿真实验表明该策略与传统的稀有优先调度策略相比较具有较低的服务器上行带宽耗费

参考文献

[1]Cohen B.Bittorrent:http://www.bittorrent.com[J].2009.

[2]Kulbak Y.,Bickson D.The emule protocol specification[J].eMule project,http://sourceforge.net.2009.

[3]Dana C.,Li D.,Harrison D.,等.BASS:BitTorrent assisted streaming system for video-on-demand[C],2005:1-4

[4]Lv J.,Cheng X.,Jiang Q.,等.LiveBT:Providing video-on-demand streaming service over BitTorrent systems[C],2007:501-508

[5]Susu Xie,Bo Li,Keung G.Y.,等.Coolstreaming:Design,Theory,and Practice[J].Multimedia,IEEE Transactions on.2007,9(8):1661-1671

[6]Vlavianos A.,Iliofotou M.,Faloutsos M.BiToS:Enhancing BitTorrent for supporting streaming applications[C],2006:1-6

[7]Zhang M.,Xiong Y.,Zhang Q.,等.On the optimal scheduling for media streaming in data-driven overlay networks[C],2006,2006

上一篇:微笑着去唱生活的歌谣下一篇:流量清洗设备