Research of Maintaining Cache Consistency
after Mobile Clients Reconnect
XU Caiyun SHAO Huangfang XU Yuxiang
(Guangsha College of Applied Construction Technologer,Dongyang 322100,Zhejiang)
Abstract: In mobile computing environment,In order to improve average responding time,reduce the usage of network bandwidth ,mobile clients usually cache part of the data locally.How to keep cache consistent is an critical problem. In this paper, Based on lots of data in the database are classified,According to the different nature of the data to the client cache is divided into fixed sized blocks of data, The same data block for storing the same data type data,checking update conflict after reconnecting. The server uses variant periods broadcast strategy. By performance analysis, results show that the method can better maintain the mobile computing environment cache consistency 。
Key words: mobile computing; data blocks;cache consistency;data broadcast
0 引言
在移动计算环境中,移动客户机(Mobile Client)为了提高平均响应速度和数据的访问效率、节约有限电能、减少对网络带宽的争用和通信费用,通常使MC与服务器处于断连状态,MC并在本地缓存一部分数据[1]。当客户机重新连机后进行数据更新,此时缓存在MC中的数据很可能部分甚至全部失效,如何保证移动客户端和服务器端数据的一致性成为移动环境中的一个关键问题。
由于移动计算环境的移动性、频繁断接性、网络通信不对称性、资源有限性等特性,使传统维护数据一致性的方法不能适用于移动数据库管理中。
为了保证移动环境下缓存数据一致性,国内外学者做了许多研究,主要研究成果有:
文献[2]中提出了“事务缓存一致性维护算法”,它在传统的C/S数据库系统中很容易实现,由于移动计算机的移动性和频繁的断连使得这种方法很难实现。
文献[3]D.Barbara提出了基于广播失效报告的方法来维护MC中缓存的一致性,称为广播时间印方法(TS)。但移动客户机为了节约电能可能长时间处于断连状态而错失了失效报告IR(InvaliDation Report,简称IR),这使本地缓存不能与服务器保持一致性。
为了有效维护MC缓存中数据的一致性,本文通过研究周期广播策略提出实时变周期广播策略。在客户端,通过对移动用户和应用程序所访问的数据进行分类,根据数据类型的不同,把MC缓冲区分成固定大小的数据块,多个数据块可以组成一个区,分别为私有数据缓冲区、公共数据缓冲区及共享数据缓冲区。在执行更新操作时对于更新频率高及数据的有效访问时间短的公共数据可以直接丢弃所在的数据块,对于更新频率低的私有数据和共享数据不需要替换整个数据块的内容,查找要更新的数据项进行替换,达到最终的数据一致。在服务器上采用实时变周期数据广播的方法。
1 数据项分类思想
数据库服务器存有大量的移动用户和应用程序所访问的数据,把这些数据分成三类:私有数据、公共数据、共享数据。
定义1 (私有数据 private data) 单个用户享有数据的所有权及使用权,其他用户无权访问,如用户的个人信息、电话簿以及约会提醒等。
定义2 (公共数据 public data) 所有用户都可以使用这些数据,但只有单一用户享有数据更新的权限,如新闻、天气预报、股票信息等。
定义3 (共享数据 sharing data) 多个用户共同享有对数据进行读写操作的权利,如公司内产品的库存数据、产品的销售信息、某校的课程设置信息等。
服务器上的每个数据项都设置一个数据访问计数器P(或称为访问次数,初值为0)和一个更新计数器U(或称为更新次数,初值为0),移动客户端每访问一次数据项,访问计数器P的值加1。服务器每更新一次数据项对应的更新计数器U的值加1,计数器值大的数据项,则说明它在过去的一段时间内被频繁更新或访问[4]。同时在服务器上设置一个事务等待队列Query,当服务器接收到客户端的发起事务时让该事务进入Query排队等待处理,并检查该事务中是否存在更新事务,如果存在则要更新数据项的U值为1。在移动用户访问数据时,服务器不仅将数据结果发送到该移动用户,而且将该数据项中相关的信息子集也发送到该用户。依据数据项的P和U的值,则数据项的访问概率F=单个数据项的访问次数/所有数据项访问次数的和,假设数据项访问次数的阀值W(用户根据实际情况可自行定义其值),可以给出三种结果:
(1)当P>W,U>1时,说明该数据项在过去的时间内被频繁访问同时也被服务器频繁更新,则定义为公共数据,记作D∈PUD。
(2)当P (3)当F->0,U≤1时,说明在过去的时间内该数据项很少被访问更新,则定义为私有数据,记作D∈PRD。
算法1
u表示事务对数据项D的更新频率。
p表示事务对数据项D的访问概率。
F表示数据项D的访问概率。
w设为数据项访问次数的阀值。
D(u,p)表示含有访问概率和更新频率的数据项。
Query表示存储客户端发起读(Read(D))写(Write(D))数据项D的事务对列。
3 服务器端
当移动客户机重连后,要求服务器处于有知状态,有知状态就是固定服务器能够知道当前哪些移动客户机活动在它的范围内和它们缓存数据的状态。这时服务器基于数据项更新频率的高低,采用实时变周期方法进行广播更新报告。 3.1 实时变周期广播更新报告
在实际应用中,数据库中的私有数据、共享数据的更新频率很低,但这些数据又是客户端迫切需要的,如果服务器根据更新频率变周期的广播,客户端从发起数据访问到收到结果将长时间等待,也会占用大量网络资源。为了缩短延迟时间,我们在变周期数据广播技术的基础上,在服务器设置一个同时设置一个更新事务队列Query用来存放客户端发起的更新事务。当更新队列不为空时,服务器要立即处理并及时广播更新报告。做到实时的动态更新。这些数据的更新操作大多来自客户端,客户端先本地缓存操作更新后,向服务器预提交更新请求,服务器检查无冲突则正式更新数据项,否则该更新操作溢出并宣告夭折。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)